Stopped SlaveSynchronizers from requesting a second init after a namechange if they...
authorMarcus Eggenberger <egs@quassel-irc.org>
Sat, 20 Oct 2007 02:03:55 +0000 (02:03 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Sat, 20 Oct 2007 02:03:55 +0000 (02:03 +0000)
src/common/synchronizer.cpp

index 8c29400..179cda1 100644 (file)
@@ -122,8 +122,6 @@ void Synchronizer::parentChangedName() {
   proxy()->detachObject(parent());
   proxy()->detachObject(this);
   attach();
   proxy()->detachObject(parent());
   proxy()->detachObject(this);
   attach();
-  if(proxy()->proxyType() == SignalProxy::Client && initialized())
-    proxy()->detachObject(this);
 }
 
 // ====================
 }
 
 // ====================
@@ -276,16 +274,18 @@ void Synchronizer::attachAsSlave() {
     }
   }
 
     }
   }
 
-  // and then we connect ourself, so we can receive init data
-  // qDebug() << "attachSlot:" << initSignal() << "recvInitData(QVariantMap)";
-  // qDebug() << "attachSignal:" << "requestSync()" << requestSyncSignal();
-  proxy()->attachSlot(initSignal().toAscii(), this, SLOT(recvInitData(QVariantMap)));
-  proxy()->attachSignal(this, SIGNAL(requestSync()), requestSyncSignal().toAscii());
-
   if(!getMethodByName("setInitialized()").isEmpty())
     connect(this, SIGNAL(initDone()), parent(), SLOT(setInitialized()));
 
   if(!getMethodByName("setInitialized()").isEmpty())
     connect(this, SIGNAL(initDone()), parent(), SLOT(setInitialized()));
 
-  emit requestSync();
+  if(!initialized()) {
+    // and then we connect ourself, so we can receive init data
+    // qDebug() << "attachSlot:" << initSignal() << "recvInitData(QVariantMap)";
+    // qDebug() << "attachSignal:" << "requestSync()" << requestSyncSignal();
+    proxy()->attachSlot(initSignal().toAscii(), this, SLOT(recvInitData(QVariantMap)));
+    proxy()->attachSignal(this, SIGNAL(requestSync()), requestSyncSignal().toAscii());
+
+    emit requestSync();
+  }
 }
 
 void Synchronizer::attachAsMaster() {
 }
 
 void Synchronizer::attachAsMaster() {