Fixing issues with renaming synced objects. And fixing issue with nickchanges of...
[quassel.git] / src / common / signalproxy.cpp
index a738715..82b428a 100644 (file)
@@ -231,16 +231,17 @@ SignalProxy::SignalProxy(ProxyMode mode, QIODevice* device, QObject* parent)
 }
 
 SignalProxy::~SignalProxy() {
-  QList<SyncableObject *> syncObjects;
   QHash<QByteArray, ObjectId>::iterator classIter = _syncSlave.begin();
   while(classIter != _syncSlave.end()) {
-    syncObjects << classIter->values();
+    ObjectId::iterator objIter = classIter->begin();
+    while(objIter != classIter->end()) {
+      SyncableObject *obj = objIter.value();
+      objIter = classIter->erase(objIter);
+      obj->stopSynchronize(this);
+    }
     classIter++;
   }
   _syncSlave.clear();
-  foreach(SyncableObject *obj, syncObjects) {
-    obj->stopSynchronize(this);
-  }
 
   removeAllPeers();
 }
@@ -414,10 +415,6 @@ void SignalProxy::renameObject(const SyncableObject *obj, const QString &newname
 }
 
 void SignalProxy::objectRenamed(const QByteArray &classname, const QString &newname, const QString &oldname) {
-  qDebug() << "SignalProxy::objectRenamed" << classname << newname << oldname;
-  if(proxyMode() == Server)
-    return;
-
   if(_syncSlave.contains(classname) && _syncSlave[classname].contains(oldname) && oldname != newname) {
     SyncableObject *obj = _syncSlave[classname][newname] = _syncSlave[classname].take(oldname);
     requestInit(obj);
@@ -1172,7 +1169,6 @@ const QHash<int, int> &SignalProxy::ExtendedMetaObject::receiveMap() {
 
       if(receiverId != -1) {
        receiveMap[i] = receiverId;
-        qDebug() << requestSlot.signature() << _meta->method(receiverId).signature() << "---" << i << receiverId;
       }
     }
     _receiveMap = receiveMap;