diff options
Diffstat (limited to 'lib/bookmarks/xbel.h')
-rw-r--r-- | lib/bookmarks/xbel.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/bookmarks/xbel.h b/lib/bookmarks/xbel.h new file mode 100644 index 0000000..ed0a256 --- /dev/null +++ b/lib/bookmarks/xbel.h @@ -0,0 +1,45 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: git://neueland.iserlohn-fortress.net/smolbote.git + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef XBELREADER_H +#define XBELREADER_H + +#include <QXmlStreamReader> +#include <QIcon> + +class QTreeWidget; +class QTreeWidgetItem; +class Xbel +{ +public: + explicit Xbel(QTreeWidget *widget); + bool read(const QString &xbel); + bool write(const QString &xbel); + + QTreeWidgetItem *addFolder(QTreeWidgetItem *parentItem); + QTreeWidgetItem *addBookmark(QTreeWidgetItem *parentItem); + void addSeparator(QTreeWidgetItem *parentItem); + +private: + void readChildElements(QTreeWidgetItem *parentItem); + void readTitle(QTreeWidgetItem *item); + + QTreeWidgetItem *parentFolder(QTreeWidgetItem *item); + QTreeWidgetItem *createChildItem(QTreeWidgetItem *item, const QString &type); + + void writeItem(QTreeWidgetItem *item); + + QIcon folderIcon; + QIcon bookmarkIcon; + + QTreeWidget *treeWidget; + QXmlStreamReader xmlReader; + QXmlStreamWriter xmlWriter; +}; + +#endif // XBELREADER_H |