From eea675e1f33d29550c9f3e90eb6b6b2402e5ef37 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 28 Jan 2020 14:59:23 +0200 Subject: Add bookmarks toolbar Bookmarks Toolbar displays the contents of the top-level "Bookmarks Toolbar" folder. --- lib/bookmarks/bookmarkmodel.h | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'lib/bookmarks/bookmarkmodel.h') diff --git a/lib/bookmarks/bookmarkmodel.h b/lib/bookmarks/bookmarkmodel.h index 300b724..1ddab1e 100644 --- a/lib/bookmarks/bookmarkmodel.h +++ b/lib/bookmarks/bookmarkmodel.h @@ -9,6 +9,7 @@ #ifndef SMOLBOTE_BOOKMARKMODEL_H #define SMOLBOTE_BOOKMARKMODEL_H +#include "bookmarkformat.h" #include "bookmarkitem.h" #include @@ -16,6 +17,11 @@ class BookmarkModel : public QAbstractItemModel { Q_OBJECT + template + friend void operator<<(BookmarkModel *model, const BookmarkFormat &format); + template + friend void operator>>(const BookmarkFormat &format, BookmarkModel *model); + public: explicit BookmarkModel(QObject *parent = nullptr); ~BookmarkModel() override; @@ -45,7 +51,7 @@ public: QModelIndex parent(const QModelIndex &index) const override; QModelIndex parentFolder(const QModelIndex &index) const; - BookmarkItem *root() + const BookmarkItem *root() const { return rootItem; } @@ -70,4 +76,30 @@ private: bool m_isModified = false; }; +template +void operator<<(BookmarkModel *model, const BookmarkFormat &format) +{ + format.read(model->rootItem); +} + +template +void operator>>(const BookmarkFormat &format, BookmarkModel *model) +{ + format.read(model->rootItem); +} + +template +void operator<<(BookmarkFormat &format, BookmarkModel *model) +{ + format.write(model->root()); + model->resetModified(); +} + +template +void operator>>(BookmarkModel *model, BookmarkFormat &format) +{ + format.write(model->root()); + model->resetModified(); +} + #endif // SMOLBOTE_BOOKMARKMODEL_H -- cgit v1.2.1