X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=90729811f57c42b9a81fae59b483f4ce5d5a2d48;hp=3a05f52baa47c7ffa02d1f1c6ebb678b070fc67f;hb=0a4d79a4341eef3032337f64e9ef0d35db521664;hpb=4c83963b1d77f4c2dbae606876be0eee59f53dae diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 3a05f52b..90729811 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -24,7 +24,7 @@ #include "coresession.h" #include "userinputhandler.h" #include "signalproxy.h" -#include "buffersyncer.h" +#include "corebuffersyncer.h" #include "corebacklogmanager.h" #include "corebufferviewmanager.h" #include "coreirclisthelper.h" @@ -44,7 +44,7 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) _user(uid), _signalProxy(new SignalProxy(SignalProxy::Server, 0, this)), _aliasManager(this), - _bufferSyncer(new BufferSyncer(this)), + _bufferSyncer(new CoreBufferSyncer(this)), _backlogManager(new CoreBacklogManager(this)), _bufferViewManager(new CoreBufferViewManager(_signalProxy, this)), _ircListHelper(new CoreIrcListHelper(this)), @@ -80,10 +80,7 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) foreach(BufferId id, lastSeenHash.keys()) _bufferSyncer->requestSetLastSeenMsg(id, lastSeenHash[id]); - connect(_bufferSyncer, SIGNAL(lastSeenMsgSet(BufferId, MsgId)), this, SLOT(storeBufferLastSeenMsg(BufferId, MsgId))); - connect(_bufferSyncer, SIGNAL(removeBufferRequested(BufferId)), this, SLOT(removeBufferRequested(BufferId))); - connect(this, SIGNAL(bufferRemoved(BufferId)), _bufferSyncer, SLOT(removeBuffer(BufferId))); - connect(this, SIGNAL(bufferRenamed(BufferId, QString)), _bufferSyncer, SLOT(renameBuffer(BufferId, QString))); + connect(&(Core::instance()->syncTimer()), SIGNAL(timeout()), _bufferSyncer, SLOT(storeDirtyIds())); p->synchronize(_bufferSyncer); @@ -161,6 +158,7 @@ void CoreSession::loadSettings() { } void CoreSession::saveSessionState() const { + _bufferSyncer->storeDirtyIds(); } void CoreSession::restoreSessionState() { @@ -266,10 +264,6 @@ QVariant CoreSession::sessionState() { return v; } -void CoreSession::storeBufferLastSeenMsg(BufferId buffer, const MsgId &msgId) { - Core::setBufferLastSeenMsg(user(), buffer, msgId); -} - void CoreSession::initScriptEngine() { signalProxy()->attachSlot(SIGNAL(scriptRequest(QString)), this, SLOT(scriptRequest(QString))); signalProxy()->attachSignal(this, SIGNAL(scriptResult(QString))); @@ -285,11 +279,17 @@ void CoreSession::scriptRequest(QString script) { /*** Identity Handling ***/ void CoreSession::createIdentity(const Identity &identity, const QVariantMap &additional) { +#ifndef HAVE_SSL + Q_UNUSED(additional) +#endif + CoreIdentity coreIdentity(identity); +#ifdef HAVE_SSL if(additional.contains("KeyPem")) coreIdentity.setSslKey(additional["KeyPem"].toByteArray()); if(additional.contains("CertPem")) coreIdentity.setSslCert(additional["CertPem"].toByteArray()); +#endif IdentityId id = Core::createIdentity(user(), coreIdentity); if(!id.isValid()) return; @@ -380,40 +380,9 @@ void CoreSession::destroyNetwork(NetworkId id) { } } -void CoreSession::removeBufferRequested(BufferId bufferId) { - BufferInfo bufferInfo = Core::getBufferInfo(user(), bufferId); - if(!bufferInfo.isValid()) { - qWarning() << "CoreSession::removeBufferRequested(): invalid BufferId:" << bufferId << "for User:" << user(); - return; - } - - if(bufferInfo.type() == BufferInfo::StatusBuffer) { - qWarning() << "CoreSession::removeBufferRequested(): Status Buffers cannot be removed!"; - return; - } - - if(bufferInfo.type() == BufferInfo::ChannelBuffer) { - CoreNetwork *net = network(bufferInfo.networkId()); - if(!net) { - qWarning() << "CoreSession::removeBufferRequested(): Received BufferInfo with unknown networkId!"; - return; - } - IrcChannel *chan = net->ircChannel(bufferInfo.bufferName()); - if(chan) { - qWarning() << "CoreSession::removeBufferRequested(): Unable to remove Buffer for joined Channel:" << bufferInfo.bufferName(); - return; - } - } - if(Core::removeBuffer(user(), bufferId)) - emit bufferRemoved(bufferId); -} - -// FIXME: use a coreBufferSyncer for this void CoreSession::renameBuffer(const NetworkId &networkId, const QString &newName, const QString &oldName) { - BufferId bufferId = Core::renameBuffer(user(), networkId, newName, oldName); - if(bufferId.isValid()) { - emit bufferRenamed(bufferId, newName); - } + BufferInfo bufferInfo = Core::bufferInfo(user(), networkId, BufferInfo::QueryBuffer, oldName, false); + _bufferSyncer->renameBuffer(bufferInfo.bufferId(), newName); } void CoreSession::clientsConnected() {