From 1e8abe4a99236ae7ab1889531660ba7bbfb8aee7 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 20 Jan 2018 17:10:51 +0100 Subject: Saner bookmark editing - Fixed bug with bookmarks in folders getting duplicated --- lib/bookmarks/xbel.cpp | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'lib/bookmarks/xbel.cpp') diff --git a/lib/bookmarks/xbel.cpp b/lib/bookmarks/xbel.cpp index d19641c..1be9c7e 100644 --- a/lib/bookmarks/xbel.cpp +++ b/lib/bookmarks/xbel.cpp @@ -97,26 +97,30 @@ bool Xbel::write(BookmarkItem *root) void Xbel::writeChildElements(QXmlStreamWriter &writer, BookmarkItem *parentItem) { - for(int i = 0; i < parentItem->childCount(); ++i) { - BookmarkItem *node = parentItem->child(i); - switch(node->type()) { - case BookmarkItem::Root: - break; - case BookmarkItem::Folder: - writer.writeStartElement("folder"); - writer.writeAttribute("folded", node->folded ? "yes" : "no"); - writer.writeTextElement("title", node->title); - for(int j = 0; j < node->childCount(); ++j) { - writeChildElements(writer, node); - } - writer.writeEndElement(); - break; - case BookmarkItem::Bookmark: - writer.writeStartElement("bookmark"); - writer.writeAttribute("href", node->href); - writer.writeTextElement("title", node->title); - writer.writeEndElement(); - break; + switch(parentItem->type()) { + case BookmarkItem::Root: + for(int i = 0; i < parentItem->childCount(); ++i) { + writeChildElements(writer, parentItem->child(i)); } + break; + + case BookmarkItem::Folder: + writer.writeStartElement("folder"); + writer.writeAttribute("folded", parentItem->folded ? "yes" : "no"); + writer.writeTextElement("title", parentItem->title); + + for(int i = 0; i < parentItem->childCount(); ++i) { + writeChildElements(writer, parentItem->child(i)); + } + + writer.writeEndElement(); + break; + + case BookmarkItem::Bookmark: + writer.writeStartElement("bookmark"); + writer.writeAttribute("href", parentItem->href); + writer.writeTextElement("title", parentItem->title); + writer.writeEndElement(); + break; } } -- cgit v1.2.1