fix for minor issues with the buffer removal
authorMarcus Eggenberger <egs@quassel-irc.org>
Mon, 18 Feb 2008 21:36:08 +0000 (21:36 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Mon, 18 Feb 2008 21:36:08 +0000 (21:36 +0000)
src/client/treemodel.cpp
src/common/buffersyncer.cpp
version.inc

index ad0706e..960f7e8 100644 (file)
@@ -55,6 +55,7 @@ bool AbstractTreeItem::removeChild(int row) {
   if(childCount() <= row)
     return false;
 
+  child(row)->removeAllChilds();
   emit beginRemoveChilds(row, row);
   AbstractTreeItem *treeitem = _childItems.takeAt(row);
   treeitem->deleteLater();
@@ -82,8 +83,13 @@ void AbstractTreeItem::removeAllChilds() {
   
   AbstractTreeItem *child;
 
-  emit beginRemoveChilds(0, numChilds - 1);
   QList<AbstractTreeItem *>::iterator childIter = _childItems.begin();
+  while(childIter != _childItems.end()) {
+    child = *childIter;
+    child->removeAllChilds();
+  }
+
+  emit beginRemoveChilds(0, numChilds - 1);
   while(childIter != _childItems.end()) {
     child = *childIter;
     childIter = _childItems.erase(childIter);
index 64c3bb6..b97d233 100644 (file)
@@ -66,5 +66,7 @@ void BufferSyncer::requestRemoveBuffer(BufferId buffer) {
 }
 
 void BufferSyncer::removeBuffer(BufferId buffer) {
+  if(_lastSeen.contains(buffer))
+    _lastSeen.remove(buffer);
   emit bufferRemoved(buffer);
 }
index 7ee2577..32c4a21 100644 (file)
@@ -5,7 +5,7 @@
 
   quasselVersion = "0.2.0-pre";
   quasselDate = "2008-02-18";
-  quasselBuild = 541;
+  quasselBuild = 544;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 526;