diff options
Diffstat (limited to 'lib/bookmarks/bookmarkmodel.h')
-rw-r--r-- | lib/bookmarks/bookmarkmodel.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/bookmarks/bookmarkmodel.h b/lib/bookmarks/bookmarkmodel.h new file mode 100644 index 0000000..90fdb2a --- /dev/null +++ b/lib/bookmarks/bookmarkmodel.h @@ -0,0 +1,51 @@ +/* + * 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/smolbote.hg + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef SMOLBOTE_BOOKMARKMODEL_H +#define SMOLBOTE_BOOKMARKMODEL_H + +#include <QAbstractItemModel> +#include "bookmarkitem.h" + +class BookmarkModel : public QAbstractItemModel +{ + Q_OBJECT + +public: + explicit BookmarkModel(QObject *parent = nullptr); + ~BookmarkModel() override; + + QVariant headerData(int section, Qt::Orientation orientation, int role) const override; + QVariant data(const QModelIndex &index, int role) const override; + QVariant data(const QModelIndex &index, int column, int role) const; + bool setData(const QModelIndex &index, const QVariant &value, int role) override; + bool setData(const QModelIndex &index, const QVariant &value, BookmarkItem::Fields column, int role); + Qt::ItemFlags flags(const QModelIndex &index) const override; + + bool isItemExpanded(const QModelIndex &index) const; + + int rowCount(const QModelIndex &index) const override; + bool insertRows(int position, int rows, const QModelIndex &parent) override; + bool removeRows(int position, int rows, const QModelIndex &parent) override; + bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) override; + int columnCount(const QModelIndex &index) const override; + Qt::DropActions supportedDropActions() const override; + + QModelIndex index(int row, int column, const QModelIndex &parent) const override; + QModelIndex parent(const QModelIndex &index) const override; + + BookmarkItem *root() { + return rootItem; + } + +private: + BookmarkItem *getItem(const QModelIndex &index) const; + BookmarkItem *rootItem; +}; + +#endif //SMOLBOTE_BOOKMARKMODEL_H |