18#ifndef BOOKMARKSMODEL_H
19#define BOOKMARKSMODEL_H
21#include <QAbstractItemModel>
22#include <QSortFilterProxyModel>
38 TypeRole = Qt::UserRole + 1,
39 UrlRole = Qt::UserRole + 2,
40 UrlStringRole = Qt::UserRole + 3,
41 TitleRole = Qt::UserRole + 4,
42 IconRole = Qt::UserRole + 5,
43 DescriptionRole = Qt::UserRole + 6,
44 KeywordRole = Qt::UserRole + 7,
45 VisitCountRole = Qt::UserRole + 8,
46 ExpandedRole = Qt::UserRole + 9,
47 SidebarExpandedRole = Qt::UserRole + 10,
48 MaxRole = SidebarExpandedRole
56 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
57 QVariant data(
const QModelIndex &index,
int role)
const override;
58 QVariant headerData(
int section, Qt::Orientation orientation,
int role)
const override;
59 int rowCount(
const QModelIndex &parent)
const override;
60 int columnCount(
const QModelIndex &parent)
const override;
61 bool hasChildren(
const QModelIndex &parent)
const override;
63 Qt::DropActions supportedDropActions()
const override;
64 QStringList mimeTypes()
const override;
65 QMimeData* mimeData(
const QModelIndexList &indexes)
const override;
66 bool dropMimeData(
const QMimeData* data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent)
override;
68 QModelIndex parent(
const QModelIndex &child)
const override;
69 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex())
const override;
70 QModelIndex index(
BookmarkItem* item,
int column = 0)
const;
90 void setFilterFixedString(
const QString &pattern);
93 bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent)
const override;
96 void startFiltering();
100 QTimer* m_filterTimer;
113 bool hasFormat(
const QString &format)
const override;
114 QStringList formats()
const override;
116 static QString mimeType();