X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=22ed212136102c7fa1735e1b4dbbb8c81a70f5a1;hp=bce4cf70fa27e1997185ed3f1040e0cfbb478848;hb=8010224cf5bfe5685dc2cf535e8dc1ec19c4c364;hpb=2dd7667489021341267d316472d375e8c89c79c0 diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index bce4cf70..22ed2121 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -18,11 +18,14 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include + #include "core.h" #include "coresession.h" #include "networkconnection.h" #include "signalproxy.h" +#include "buffersyncer.h" #include "storage.h" #include "network.h" @@ -33,11 +36,10 @@ #include "util.h" #include "coreusersettings.h" -#include - CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) : QObject(parent), _user(uid), _signalProxy(new SignalProxy(SignalProxy::Server, 0, this)), + _bufferSyncer(new BufferSyncer(this)), scriptEngine(new QScriptEngine(this)) { @@ -67,6 +69,12 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) : QObje loadSettings(); initScriptEngine(); + // init BufferSyncer + //QHash lastSeenHash = Core::bufferLastSeenDates(user()); + //foreach(BufferId id, lastSeenHash.keys()) _bufferSyncer->requestSetLastSeen(id, lastSeenHash[id]); + // FIXME connect(_bufferSyncer, SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(storeBufferLastSeen(BufferId, const QDateTime &))); + p->synchronize(_bufferSyncer); + // Restore session state if(restoreState) restoreSessionState(); @@ -141,6 +149,7 @@ void CoreSession::loadSettings() { info.useAutoReconnect = true; info.autoReconnectInterval = 60; info.autoReconnectRetries = 20; + info.unlimitedReconnectRetries = false; info.useAutoIdentify = false; info.autoIdentifyService = "NickServ"; info.rejoinChannels = true; @@ -267,8 +276,8 @@ void CoreSession::networkDisconnected(NetworkId networkid) { // FIXME // connection should only go away on explicit /part, and handle reconnections etcpp internally otherwise - Q_ASSERT(_connections.contains(networkid)); - _connections.take(networkid)->deleteLater(); + //Q_ASSERT(_connections.contains(networkid)); + if(_connections.contains(networkid)) _connections.take(networkid)->deleteLater(); } // FIXME switch to BufferId @@ -332,6 +341,10 @@ QVariant CoreSession::sessionState() { return v; } +void CoreSession::storeBufferLastSeen(BufferId buffer, const QDateTime &lastSeen) { + Core::setBufferLastSeen(user(), buffer, lastSeen); +} + void CoreSession::sendBacklog(BufferInfo id, QVariant v1, QVariant v2) { QList log; QList msglist; @@ -435,7 +448,7 @@ void CoreSession::updateNetwork(const NetworkInfo &info) { qWarning() << "Update request for unknown network received!"; return; } - _networks[info.networkId]->setNetworkInfo(info); + _networks[info.networkId]->setNetworkInfo(info); qDebug() << "unlim" << info.unlimitedReconnectRetries << _networks[info.networkId]->unlimitedReconnectRetries(); Core::updateNetwork(user(), info); }