[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

kdenonbeta/kdedebian/kapture/libkapture



CVS commit by mornfall: 

Optimize tree refreshing (in libkapture now) further. We nearly beat
synaptic on install/deinstall marking performance now. :D.


  M +20 -14    listtreewidget.cpp   1.27
  M +1 -0      listtreewidget.h   1.17


--- kdenonbeta/kdedebian/kapture/libkapture/listtreewidget.cpp  #1.26:1.27
@@ -50,13 +50,6 @@ ListTreeWidgetItem::~ListTreeWidgetItem 
 void ListTreeWidgetItem::setItemParent ()
 {
-    // std::cerr << "ListTreeWidgetItem::setItemParent ()" << std::endl;
     delete m_item;
     m_item = 0;
-    /* if (TreeDepNode::castNode (this)) {
-        std::cerr << "ListTreeWidgetDItem::setItemParent; parent = " << m_parent << std::endl;
-    }
-    if (TreeBranchNode::castNode (this)) {
-        std::cerr << "ListTreeWidgetSItem::setItemParent; parent = " << m_parent << std::endl;
-    } */
     if (m_parent) {
         if (m_parent == m_list -> top ()) {
@@ -71,9 +64,13 @@ void ListTreeWidgetItem::setItemParent (
                 std::cerr << "open node: " << path () << std::endl;
             m_item -> setOpen (m_list -> isOpen (path ()));
-            m_elem -> visit (this);
+            itemRefresh ();
         }
     }
 }
                                                                     /* }}} */
+void ListTreeWidgetItem::itemRefresh ()
+{
+    m_elem -> visit (this);
+}
 // detachItem - detach m_item from us (it is being deleted)            {{{
 // --------------------------------------------------------------------------
@@ -174,9 +171,4 @@ class callSetItemParent : public TreeVis
         void visitGenericNode (TreeNode *_n)
         {
-            // std::cerr << "visiting node: " << _n << std::endl;
-            /* if (TreeBranchNode::castNode (_n))
-                std::cerr << "visiting branch: " << _n << std::endl;
-            if (TreeDepNode::castNode (_n))
-                std::cerr << "visiting dep: " << _n << std::endl; */
             ListTreeWidgetItem *n = dynamic_cast <ListTreeWidgetItem *> (_n);
             if (n)
@@ -185,4 +177,17 @@ class callSetItemParent : public TreeVis
 };
                                                                     /* }}} */
+// class callItemRefresh                                               {{{
+// --------------------------------------------------------------------------
+class callItemRefresh : public TreeVisitor
+{
+    public:
+        void visitGenericNode (TreeNode *_n)
+        {
+            ListTreeWidgetItem *n = dynamic_cast <ListTreeWidgetItem *> (_n);
+            if (n)
+                n -> itemRefresh ();
+        };
+};
+                                                                    /* }}} */
 // rebuild - rebuild the tree from scatch                              {{{
 // --------------------------------------------------------------------------
@@ -201,5 +206,6 @@ void ListTreeWidget::refresh ()
     std::cerr << "ListTreeWidget::refresh ()" << std::endl;
     Tree::refresh ();
-    TreeVisitor *v = new callSetItemParent;
+    // XXX OPTIMIZE: following is redundant in case rebuild ran
+    TreeVisitor *v = new callItemRefresh;
     iterate (v);
     delete v;

--- kdenonbeta/kdedebian/kapture/libkapture/listtreewidget.h  #1.16:1.17
@@ -71,4 +71,5 @@ namespace kapture {
             ListTreeWidgetItem (ListTreeWidget *list, TreeNode *parent, CElemPtr e);
             void setItemParent ();
+            void itemRefresh ();
             void detachItem ();
             virtual ~ListTreeWidgetItem ();




Reply to: