switching from timestamps to msgid regarding lastseen states
[quassel.git] / src / core / coresession.cpp
index 8d63ec8..bc4289b 100644 (file)
@@ -69,9 +69,11 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) : QObje
   initScriptEngine();
 
   // init BufferSyncer
-  QHash<BufferId, QDateTime> lastSeenHash = Core::bufferLastSeenDates(user());
-  foreach(BufferId id, lastSeenHash.keys()) _bufferSyncer->requestSetLastSeen(id, lastSeenHash[id]);
-  connect(_bufferSyncer, SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(storeBufferLastSeen(BufferId, const QDateTime &)));
+  QHash<BufferId, MsgId> lastSeenHash = Core::bufferLastSeenMsgIds(user());
+  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)));
@@ -148,9 +150,7 @@ void CoreSession::saveSessionState() const {
 }
 
 void CoreSession::restoreSessionState() {
-  // FIXME db support
-  //QList<NetworkId> nets = Core::connectedNetworks(user());
-  QList<NetworkId> nets;
+  QList<NetworkId> nets = Core::connectedNetworks(user());
   foreach(NetworkId id, nets) {
     connectToNetwork(id);
   }
@@ -224,26 +224,26 @@ SignalProxy *CoreSession::signalProxy() const {
 // FIXME we need a sane way for creating buffers!
 void CoreSession::networkConnected(NetworkId networkid) {
   Core::bufferInfo(user(), networkid, BufferInfo::StatusBuffer); // create status buffer
-  //Core::setNetworkConnected(user(), networkid, true);
+  Core::setNetworkConnected(user(), networkid, true);
 }
 
 // called now only on /quit and requested disconnects, not on normal disconnects!
 void CoreSession::networkDisconnected(NetworkId networkid) {
-  //Core::setNetworkConnected(user(), networkid, false);
+  Core::setNetworkConnected(user(), networkid, false);
   if(_connections.contains(networkid)) _connections.take(networkid)->deleteLater();
 }
 
 void CoreSession::channelJoined(NetworkId id, const QString &channel, const QString &key) {
-  //Core::setChannelPersistent(user(), id, channel, true);
-  //Core::setPersistentChannelKey(user(), id, channel, key);
+  Core::setChannelPersistent(user(), id, channel, true);
+  Core::setPersistentChannelKey(user(), id, channel, key);
 }
 
 void CoreSession::channelParted(NetworkId id, const QString &channel) {
-  //Core::setChannelPersistent(user(), id, channel, false);
+  Core::setChannelPersistent(user(), id, channel, false);
 }
 
 QHash<QString, QString> CoreSession::persistentChannels(NetworkId id) const {
-  //return Core::persistentChannels(user(), id);
+  return Core::persistentChannels(user(), id);
   return QHash<QString, QString>();
 }
 
@@ -308,8 +308,8 @@ QVariant CoreSession::sessionState() {
   return v;
 }
 
-void CoreSession::storeBufferLastSeen(BufferId buffer, const QDateTime &lastSeen) {
-  Core::setBufferLastSeen(user(), buffer, lastSeen);
+void CoreSession::storeBufferLastSeenMsg(BufferId buffer, const MsgId &msgId) {
+  Core::setBufferLastSeenMsg(user(), buffer, msgId);
 }
 
 void CoreSession::sendBacklog(BufferInfo id, QVariant v1, QVariant v2) {