src/gui/itemviews/qtreeview.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
--- a/src/gui/itemviews/qtreeview.cpp	Fri Apr 16 15:50:13 2010 +0300
+++ b/src/gui/itemviews/qtreeview.cpp	Mon May 03 13:17:34 2010 +0300
@@ -3770,10 +3770,15 @@
         if (previousSibiling != -1 && after && model->rowCount(parent) == start)
             viewItems[previousSibiling].hasMoreSiblings = false;
 
-
-        updateChildCount(parentItem, -removedCount);
-        if (parentItem != -1 && viewItems.at(parentItem).total == 0)
-            viewItems[parentItem].hasChildren = false; //every children have been removed;
+        if (parentItem != -1) {
+            if (viewItems.at(parentItem).expanded) {
+                updateChildCount(parentItem, -removedCount);
+                if (viewItems.at(parentItem).total == 0)
+                    viewItems[parentItem].hasChildren = false; //every children have been removed;
+            } else if (viewItems[parentItem].hasChildren && !hasVisibleChildren(parent)) {
+                viewItems[parentItem].hasChildren = false;
+            }
+        }
         if (after) {
             q->updateGeometries();
             viewport->update();