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

List:       kde-commits
Subject:    kdelibs/kio/bookmarks
From:       Alexander Kellett <lypanov () kde ! org>
Date:       2003-03-15 15:45:38
[Download RAW message or body]

CVS commit by lypanov: 

refactor code into a hierachical visitor like pattern
if you look at the diff be prepared to laugh some.


  M +17 -8     kbookmarkmanager.cc   1.43


--- kdelibs/kio/bookmarks/kbookmarkmanager.cc  #1.42:1.43
@@ -425,14 +425,23 @@ void KBookmarkOwner::virtual_hook( int, 
 { /*BASE::virtual_hook( id, data );*/ }
 
-class KBookmarkMap {
+
+class KBookmarkGroupMonkey {
+protected:
+    virtual ~KBookmarkGroupMonkey() { ; }
+    void swing(const KBookmarkGroup &);
+    virtual void enterGroup(const KBookmarkGroup &) { ; }
+    virtual void sawItem(const KBookmark &) { ; }
+    virtual void exitGroup() { ; }
+};
+
+class KBookmarkMap : public KBookmarkGroupMonkey {
 public:
     KBookmarkMap( KBookmarkManager * );
     void update();
+    virtual void enterGroup(const KBookmarkGroup &) { ; }
+    virtual void sawItem(const KBookmark &);
+    virtual void exitGroup() { ; }
     QValueList<KBookmark> find( const KURL &url ) const;
 private:
-    void crawl();
-    void enterGroup(const KBookmarkGroup &group) { ; }
-    void exitGroup() { ; }
-    void sawItem(const KBookmark &);
     typedef QValueList<KBookmark> KBookmarkList;
     QMap<QString, KBookmarkList> m_bk_map;
@@ -449,5 +458,6 @@ void KBookmarkMap::update()
 {
     m_bk_map.clear();
-    crawl();
+    KBookmarkGroup root = m_manager->root();
+    swing(root);
 }
 
@@ -459,9 +469,8 @@ void KBookmarkMap::sawItem(const KBookma
 }
 
-void KBookmarkMap::crawl()
+void KBookmarkGroupMonkey::swing(const KBookmarkGroup &root)
 {
     // non-recursive bookmark iterator
     QPtrStack<KBookmarkGroup> stack;
-    KBookmarkGroup root = m_manager->root();
     stack.push(&root);
     KBookmark bk = stack.current()->first();


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

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