X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcoreidentity.cpp;h=2ea428d870773643da97fa75ba1ab689d3338d76;hb=694f9bfbf7f1af19108461c7e00d133e55082bce;hp=dfad2e960e6896a1bb9c4468ee01e3aebe9c0aef;hpb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45;p=quassel.git diff --git a/src/core/coreidentity.cpp b/src/core/coreidentity.cpp index dfad2e96..2ea428d8 100644 --- a/src/core/coreidentity.cpp +++ b/src/core/coreidentity.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,70 +20,119 @@ #include "coreidentity.h" -#include "coresession.h" -#include "coreusersettings.h" #include "signalproxy.h" -CoreIdentity::CoreIdentity(IdentityId id, SignalProxy *proxy, CoreSession *parent) - : Identity(id, parent), - _certManager(new CoreCertManager(this)), - _coreSession(parent) +INIT_SYNCABLE_OBJECT(CoreIdentity) +CoreIdentity::CoreIdentity(IdentityId id, QObject *parent) + : Identity(id, parent) +#ifdef HAVE_SSL + , _certManager(*this) +#endif { - proxy->synchronize(_certManager); - connect(this, SIGNAL(idSet(IdentityId)), _certManager, SLOT(setId(IdentityId))); +#ifdef HAVE_SSL + connect(this, SIGNAL(idSet(IdentityId)), &_certManager, SLOT(setId(IdentityId))); + connect(&_certManager, SIGNAL(updated()), this, SIGNAL(updated())); +#endif } -CoreIdentity::CoreIdentity(const Identity &other, SignalProxy *proxy, CoreSession *parent) - : Identity(other, parent), - _certManager(new CoreCertManager(this)), - _coreSession(parent) + +CoreIdentity::CoreIdentity(const Identity &other, QObject *parent) + : Identity(other, parent) +#ifdef HAVE_SSL + , _certManager(*this) +#endif { - proxy->synchronize(_certManager); - connect(this, SIGNAL(idSet(IdentityId)), _certManager, SLOT(setId(IdentityId))); +#ifdef HAVE_SSL + connect(this, SIGNAL(idSet(IdentityId)), &_certManager, SLOT(setId(IdentityId))); + connect(&_certManager, SIGNAL(updated()), this, SIGNAL(updated())); +#endif } -void CoreIdentity::update(const QVariantMap &properties) { - SyncableObject::update(properties); - save(); + +CoreIdentity::CoreIdentity(const CoreIdentity &other, QObject *parent) + : Identity(other, parent) +#ifdef HAVE_SSL + , _sslKey(other._sslKey), + _sslCert(other._sslCert), + _certManager(*this) +#endif +{ +#ifdef HAVE_SSL + connect(this, SIGNAL(idSet(IdentityId)), &_certManager, SLOT(setId(IdentityId))); + connect(&_certManager, SIGNAL(updated()), this, SIGNAL(updated())); +#endif } -void CoreIdentity::save() { - CoreUserSettings s(_coreSession->user()); - s.storeIdentity(*this); + +void CoreIdentity::synchronize(SignalProxy *proxy) +{ + proxy->synchronize(this); +#ifdef HAVE_SSL + proxy->synchronize(&_certManager); +#endif } -void CoreIdentity::setSslKey(const QByteArray &encoded) { - QSslKey key(encoded, QSsl::Rsa); - if(key.isNull()) - key = QSslKey(encoded, QSsl::Dsa); - setSslKey(key); + +#ifdef HAVE_SSL +void CoreIdentity::setSslKey(const QByteArray &encoded) +{ + QSslKey key(encoded, QSsl::Rsa); + if (key.isNull()) + key = QSslKey(encoded, QSsl::Dsa); + setSslKey(key); +} + + +void CoreIdentity::setSslCert(const QByteArray &encoded) +{ + setSslCert(QSslCertificate(encoded)); } -void CoreIdentity::setSslCert(const QByteArray &encoded) { - setSslCert(QSslCertificate(encoded)); + +#endif + +CoreIdentity &CoreIdentity::operator=(const CoreIdentity &identity) +{ + Identity::operator=(identity); +#ifdef HAVE_SSL + _sslKey = identity._sslKey; + _sslCert = identity._sslCert; +#endif + return *this; } +#ifdef HAVE_SSL // ======================================== // CoreCertManager // ======================================== -CoreCertManager::CoreCertManager(CoreIdentity *identity) - : CertManager(identity->id(), identity), - _identity(identity) +INIT_SYNCABLE_OBJECT(CoreCertManager) +CoreCertManager::CoreCertManager(CoreIdentity &identity) + : CertManager(identity.id()), + identity(identity) { - setAllowClientUpdates(true); + setAllowClientUpdates(true); } -void CoreCertManager::setSslKey(const QByteArray &encoded) { - identity()->setSslKey(encoded); - CertManager::setSslKey(encoded); + +void CoreCertManager::setId(IdentityId id) +{ + renameObject(QString::number(id.toInt())); } -void CoreCertManager::setSslCert(const QByteArray &encoded) { - identity()->setSslCert(encoded); - CertManager::setSslCert(encoded); + +void CoreCertManager::setSslKey(const QByteArray &encoded) +{ + identity.setSslKey(encoded); + CertManager::setSslKey(encoded); } -void CoreCertManager::setId(IdentityId id) { - renameObject(QString::number(id.toInt())); + +void CoreCertManager::setSslCert(const QByteArray &encoded) +{ + identity.setSslCert(encoded); + CertManager::setSslCert(encoded); } + + +#endif //HAVE_SSL