bufferviews are now saved periodically
[quassel.git] / src / core / coresession.cpp
index 8237d25..491e99a 100644 (file)
@@ -51,7 +51,6 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent)
     _coreInfo(this),
     scriptEngine(new QScriptEngine(this))
 {
-
   SignalProxy *p = signalProxy();
   connect(p, SIGNAL(peerRemoved(QIODevice *)), this, SLOT(removeClient(QIODevice *)));
 
@@ -75,30 +74,18 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent)
   loadSettings();
   initScriptEngine();
 
-  // init BufferSyncer
-  QHash<BufferId, MsgId> lastSeenHash = Core::bufferLastSeenMsgIds(user());
-  foreach(BufferId id, lastSeenHash.keys())
-    _bufferSyncer->requestSetLastSeenMsg(id, lastSeenHash[id]);
-
   connect(&(Core::instance()->syncTimer()), SIGNAL(timeout()), _bufferSyncer, SLOT(storeDirtyIds()));
-  p->synchronize(_bufferSyncer);
+  connect(&(Core::instance()->syncTimer()), SIGNAL(timeout()), _bufferViewManager, SLOT(saveBufferViews()));
 
-
-  // init alias manager
+  p->synchronize(_bufferSyncer);
   p->synchronize(&aliasManager());
-
-  // init BacklogManager
   p->synchronize(_backlogManager);
-  p->dumpSyncMap(_backlogManager);
-
-  // init IrcListHelper
   p->synchronize(ircListHelper());
-
-  // init CoreInfo
   p->synchronize(&_coreInfo);
 
   // Restore session state
-  if(restoreState) restoreSessionState();
+  if(restoreState)
+    restoreSessionState();
 
   emit initialized();
 }
@@ -160,6 +147,7 @@ void CoreSession::loadSettings() {
 
 void CoreSession::saveSessionState() const {
   _bufferSyncer->storeDirtyIds();
+  _bufferViewManager->saveBufferViews();
 }
 
 void CoreSession::restoreSessionState() {
@@ -383,7 +371,9 @@ void CoreSession::destroyNetwork(NetworkId id) {
 
 void CoreSession::renameBuffer(const NetworkId &networkId, const QString &newName, const QString &oldName) {
   BufferInfo bufferInfo = Core::bufferInfo(user(), networkId, BufferInfo::QueryBuffer, oldName, false);
-  _bufferSyncer->renameBuffer(bufferInfo.bufferId(), newName);
+  if(bufferInfo.isValid()) {
+    _bufferSyncer->renameBuffer(bufferInfo.bufferId(), newName);
+  }
 }
 
 void CoreSession::clientsConnected() {