diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-01-14 23:34:13 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-01-14 23:34:13 +0200 |
commit | 4c71c8571ceb10b29e6550cd0d8eb928049e6851 (patch) | |
tree | 2130c586e6be37185ca382e68ff645710d6c5e63 /lib/bookmarks/bookmarkformat.h | |
parent | Fix if statements in PKGBUILD (diff) | |
download | smolbote-4c71c8571ceb10b29e6550cd0d8eb928049e6851.tar.xz |
Move/rename files for readability
- add BookmarkFormat <<|>> BookmarkModel operators
Diffstat (limited to 'lib/bookmarks/bookmarkformat.h')
-rw-r--r-- | lib/bookmarks/bookmarkformat.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/lib/bookmarks/bookmarkformat.h b/lib/bookmarks/bookmarkformat.h new file mode 100644 index 0000000..673acbd --- /dev/null +++ b/lib/bookmarks/bookmarkformat.h @@ -0,0 +1,67 @@ +/* + * 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: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef BOOKMARKFORMAT_H +#define BOOKMARKFORMAT_H + +#include "bookmarkmodel.h" + +class QIODevice; + +enum BookmarkFormats { + XbelFormat +}; + +template<BookmarkFormats format> +class BookmarkFormat +{ +public: + explicit BookmarkFormat(QIODevice *device) + { + m_device = device; + } + ~BookmarkFormat() + { + m_device->close(); + } + + void read(BookmarkItem *root) const; + void write(BookmarkItem *root); + +protected: + QIODevice *m_device; +}; + +template<BookmarkFormats T> +void operator<<(BookmarkModel *model, const BookmarkFormat<T> &format) +{ + format.read(model->root()); +} + +template<BookmarkFormats T> +void operator>>(const BookmarkFormat<T> &format, BookmarkModel *model) +{ + format.read(model->root()); +} + +template<BookmarkFormats T> +void operator<<(BookmarkFormat<T> &format, BookmarkModel *model) +{ + format.write(model->root()); + model->resetModified(); +} + +template<BookmarkFormats T> +void operator>>(BookmarkModel *model, BookmarkFormat<T> &format) +{ + format.write(model->root()); + model->resetModified(); +} + +#endif // BOOKMARKSFORMAT_H + |