[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdevplatform/veritas
From:       Manuel Breugelmans <mbr.nxi () gmail ! com>
Date:       2008-08-27 20:12:49
Message-ID: 1219867969.285230.3398.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 853523 by mbreugel:

Extract treeTraverse function and add a basic test.

 M  +3 -15     selectionstore.cpp  
 M  +0 -3      selectionstore.h  
 M  +3 -16     testexecutor.cpp  
 M  +0 -5      testexecutor.h  
 M  +1 -0      tests/CMakeLists.txt  
 A             tests/treetraversetest.cpp   [License: GPL (v2+)]
 A             tests/treetraversetest.h   [License: GPL (v2+)]
 M  +18 -1     utils.h  


--- trunk/KDE/kdevplatform/veritas/selectionstore.cpp #853522:853523
@@ -20,6 +20,7 @@
 
 #include "selectionstore.h"
 #include "test.h"
+#include "utils.h"
 #include <KDebug>
 
 using Veritas::SelectionStore;
@@ -80,28 +81,15 @@
     return m_deselected.contains(serialize(test));
 }
 
-template <typename V>
-void SelectionStore::traverse(Test* current, V& visit)
-{
-    if (not current) return;
-    int nrof = current->childCount();
-    if (nrof != 0) { // go down
-        for (int i = 0; i < nrof; i++) {
-            traverse(current->child(i), visit);
-        }
-    }
-    visit(current); // functor
-}
-
 void SelectionStore::saveTree(Test* root)
 {
     SaveTest st(this);
-    traverse(root, st);
+    traverseTree(root, st);
 }
 
 void SelectionStore::restoreTree(Test* root)
 {
     RestoreTest rt(this);
-    traverse(root, rt);
+    traverseTree(root, rt);
 }
 
--- trunk/KDE/kdevplatform/veritas/selectionstore.h #853522:853523
@@ -41,9 +41,6 @@
 private:
     QString serialize(Test*) const;
 
-    template<typename V>
-    void traverse(Test* current, V& visit);
-
 private:
     QSet<QString> m_deselected; // serialized name of deselected tests
 };
--- trunk/KDE/kdevplatform/veritas/testexecutor.cpp #853522:853523
@@ -23,6 +23,7 @@
 
 #include <QtGlobal>
 #include <KDebug>
+#include "utils.h"
 
 using Veritas::Test;
 using Veritas::TestExecutor;
@@ -87,7 +88,7 @@
 void TestExecutor::go()
 {
     SetupChain sc(this);
-    traverse(m_root, sc);
+    traverseTree(m_root, sc);
     fixLast(sc.m_previous);
     emit fireStarter();
 }
@@ -100,7 +101,7 @@
 void TestExecutor::cleanup()
 {
     DisconnectTest dt;
-    traverse(m_root, dt);
+    traverseTree(m_root, dt);
 }
 
 void TestExecutor::fixLast(Test* last)
@@ -113,20 +114,6 @@
     }
 }
 
-template <typename V>
-void TestExecutor::traverse(Test* current, V& visit)
-{
-    // depth-first traversal
-    if (not current) return;
-    int nrof = current->childCount();
-    if (nrof != 0) { // go down
-        for (int i = 0; i < nrof; i++) {
-            traverse(current->child(i), visit);
-        }
-    }
-    visit(current); // functor
-}
-
 void TestExecutor::setRoot(Test* root)
 {
     m_root = root;
--- trunk/KDE/kdevplatform/veritas/testexecutor.h #853522:853523
@@ -60,11 +60,6 @@
     void cleanup();
 
 private:
-    /*! Recursive function which traverses the tree in a depth first manner.
-     *  Applies the visit functor on each test */
-    template<typename V>
-    void traverse(Test* current, V& visit);
-
     /*! Connects the last test with allDone() */
     void fixLast(Test*);
 
--- trunk/KDE/kdevplatform/veritas/tests/CMakeLists.txt #853522:853523
@@ -31,3 +31,4 @@
 kdev_add_test(ut-testexecutor testexecutortest.cpp)
 kdev_add_test(it-runnerwindow runnerwindowtest.cpp)
 kdev_add_test(ut-selectionstoretest selectionstoretest.cpp)
+kdev_add_test(ut-treetraverse treetraversetest.cpp)
--- trunk/KDE/kdevplatform/veritas/utils.h #853522:853523
@@ -29,6 +29,8 @@
 #define VERITAS_UTILS_H
 
 #include <QList>
+#include "veritasexport.h"
+#include "test.h"
 
 class QTreeView;
 class QVariant;
@@ -38,8 +40,23 @@
 namespace Veritas
 {
 
-// TODO remove this, seems redundant.
+/*! Recursive function which traverses the tree in a depth first manner.
+ *  Applies the visit functor on each test */
+template <typename V>
+VERITAS_EXPORT void traverseTree(Test* current, V& visit)
+{
+    // depth-first traversal
+    if (!current) return;
+    int nrof = current->childCount();
+    if (nrof != 0) { // go down
+        for (int i = 0; i < nrof; i++) {
+            traverseTree(current->child(i), visit);
+        }
+    }
+    visit(current); // functor
+}
 
+
 /*!
  * \brief The Utils class provides a set of static helper functions.
  *
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic