X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=9956cd2b577ebabecd129b13d15d2484ec814183;hp=164375700ecbb7222d939a708ca3f9c4093140f3;hb=7897b8623a42967511e31c68d5c102033a1dcdb9;hpb=f7e987956ef7e469a493a669e2f0c0901f5a7ead diff --git a/src/client/client.cpp b/src/client/client.cpp index 16437570..9956cd2b 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -28,7 +28,7 @@ #include "bufferviewmanager.h" #include "clientbacklogmanager.h" #include "clientirclisthelper.h" -#include "identity.h" +#include "clientidentity.h" #include "ircchannel.h" #include "ircuser.h" #include "message.h" @@ -56,21 +56,21 @@ Client *Client::instance() { void Client::destroy() { if(instanceptr) { - delete instanceptr->mainUi; + delete instanceptr->mainUi(); instanceptr->deleteLater(); instanceptr = 0; } } void Client::init(AbstractUi *ui) { - instance()->mainUi = ui; + instance()->_mainUi = ui; instance()->init(); } Client::Client(QObject *parent) : QObject(parent), _signalProxy(new SignalProxy(SignalProxy::Client, this)), - mainUi(0), + _mainUi(0), _networkModel(0), _bufferModel(0), _bufferSyncer(0), @@ -98,8 +98,8 @@ void Client::init() { _networkModel, SLOT(networkRemoved(NetworkId))); _bufferModel = new BufferModel(_networkModel); - _messageModel = mainUi->createMessageModel(this); - _messageProcessor = mainUi->createMessageProcessor(this); + _messageModel = mainUi()->createMessageModel(this); + _messageProcessor = mainUi()->createMessageProcessor(this); SignalProxy *p = signalProxy(); @@ -110,7 +110,7 @@ void Client::init() { p->attachSignal(this, SIGNAL(sendInput(BufferInfo, QString))); p->attachSignal(this, SIGNAL(requestNetworkStates())); - p->attachSignal(this, SIGNAL(requestCreateIdentity(const Identity &)), SIGNAL(createIdentity(const Identity &))); + p->attachSignal(this, SIGNAL(requestCreateIdentity(const Identity &, const QVariantMap &)), SIGNAL(createIdentity(const Identity &, const QVariantMap &))); p->attachSignal(this, SIGNAL(requestRemoveIdentity(IdentityId)), SIGNAL(removeIdentity(IdentityId))); p->attachSlot(SIGNAL(identityCreated(const Identity &)), this, SLOT(coreIdentityCreated(const Identity &))); p->attachSlot(SIGNAL(identityRemoved(IdentityId)), this, SLOT(coreIdentityRemoved(IdentityId))); @@ -122,10 +122,10 @@ void Client::init() { connect(p, SIGNAL(disconnected()), this, SLOT(disconnectedFromCore())); - //connect(mainUi, SIGNAL(connectToCore(const QVariantMap &)), this, SLOT(connectToCore(const QVariantMap &))); - connect(mainUi, SIGNAL(disconnectFromCore()), this, SLOT(disconnectFromCore())); - connect(this, SIGNAL(connected()), mainUi, SLOT(connectedToCore())); - connect(this, SIGNAL(disconnected()), mainUi, SLOT(disconnectedFromCore())); + //connect(mainUi(), SIGNAL(connectToCore(const QVariantMap &)), this, SLOT(connectToCore(const QVariantMap &))); + connect(mainUi(), SIGNAL(disconnectFromCore()), this, SLOT(disconnectFromCore())); + connect(this, SIGNAL(connected()), mainUi(), SLOT(connectedToCore())); + connect(this, SIGNAL(disconnected()), mainUi(), SLOT(disconnectedFromCore())); // attach backlog manager p->synchronize(backlogManager()); @@ -134,6 +134,10 @@ void Client::init() { /*** public static methods ***/ +AbstractUi *Client::mainUi() { + return instance()->_mainUi; +} + AccountId Client::currentCoreAccount() { return _currentCoreAccount; } @@ -210,13 +214,18 @@ QList Client::identityIds() { return instance()->_identities.keys(); } -const Identity * Client::identity(IdentityId id) { +const Identity *Client::identity(IdentityId id) { if(instance()->_identities.contains(id)) return instance()->_identities[id]; else return 0; } -void Client::createIdentity(const Identity &id) { - emit instance()->requestCreateIdentity(id); +void Client::createIdentity(const CertIdentity &id) { + QVariantMap additional; +#ifdef HAVE_SSL + additional["KeyPem"] = id.sslKey().toPem(); + additional["CertPem"] = id.sslCert().toPem(); +#endif + emit instance()->requestCreateIdentity(id, additional); } void Client::updateIdentity(IdentityId id, const QVariantMap &ser) { @@ -342,10 +351,10 @@ void Client::disconnectedFromCore() { } Q_ASSERT(_networks.isEmpty()); - QHash::iterator idIter = _identities.begin(); + QHash::iterator idIter = _identities.begin(); while(idIter != _identities.end()) { + emit identityRemoved(idIter.key()); Identity *id = idIter.value(); - emit identityRemoved(id->id()); idIter = _identities.erase(idIter); id->deleteLater(); } @@ -389,6 +398,12 @@ void Client::removeBuffer(BufferId id) { bufferSyncer()->requestRemoveBuffer(id); } +void Client::renameBuffer(BufferId bufferId, const QString &newName) { + if(!bufferSyncer()) + return; + bufferSyncer()->requestRenameBuffer(bufferId, newName); +} + void Client::bufferRemoved(BufferId bufferId) { // select a sane buffer (status buffer) /* we have to manually select a buffer because otherwise inconsitent changes