/* * 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 */ #include "bookmarkitem.h" #include #include #ifndef BOOKMARKSMODEL_H #define BOOKMARKSMODEL_H class QStyle; class BookmarksModel : public QAbstractItemModel { Q_OBJECT public: enum { OpenUrlRole = Qt::UserRole + 1 }; explicit BookmarksModel(QStyle *style, QObject *parent = nullptr); ~BookmarksModel() override; void setRoot(BookmarkItem *root); QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; QModelIndex index(BookmarkItem *node, int column = 0) const; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; QModelIndex parent(const QModelIndex &index) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; QModelIndex insertItem(BookmarkItem::BookmarkItemType type, const QModelIndex &parent); int columnCount(const QModelIndex &parent = QModelIndex()) const override; Qt::ItemFlags flags(const QModelIndex &index) const override; QVariant data(const QModelIndex &index, int role) const override; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; bool hasChildren(const QModelIndex &parent) const override; QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const override; private: QIcon folderIcon; QIcon bookmarkIcon; BookmarkItem *m_rootItem; }; #endif //BOOKMARKSMODEL_H