[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:29:09
[Download RAW message or body]
CVS commit by lypanov:
make tree crawling code more generic
M +24 -3 kbookmarkmanager.cc 1.42
--- kdelibs/kio/bookmarks/kbookmarkmanager.cc #1.41:1.42
@@ -431,4 +431,8 @@ public:
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;
@@ -445,5 +449,16 @@ void KBookmarkMap::update()
{
m_bk_map.clear();
+ crawl();
+}
+
+void KBookmarkMap::sawItem(const KBookmark &bk) {
+ if (!bk.isSeparator()) {
+ // add bookmark to url map
+ m_bk_map[bk.url().url()].append(bk);
+ }
+}
+void KBookmarkMap::crawl()
+{
// non-recursive bookmark iterator
QPtrStack<KBookmarkGroup> stack;
@@ -455,4 +470,5 @@ void KBookmarkMap::update()
{
KBookmarkGroup gp = bk.toGroup();
+ enterGroup(gp);
// only recurse into non-empty group, else skip it
if (!gp.first().isNull())
@@ -462,9 +478,9 @@ void KBookmarkMap::update()
continue;
}
+ exitGroup();
}
- else if (!bk.isSeparator())
+ else
{
- // add bookmark to url map
- m_bk_map[bk.url().url()].append(bk);
+ sawItem(bk);
}
@@ -480,4 +496,9 @@ void KBookmarkMap::update()
}
bk = *(stack.pop());
+ // umm... this is _ugly_
+ if (!stack.isEmpty())
+ {
+ exitGroup();
+ }
}
bk = next;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic