File indexing completed on 2024-04-28 15:52:01
0001 /* 0002 SPDX-FileCopyrightText: 2021 Jiří Wolker <woljiri@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef RECENTITEMSMODEL_H 0008 #define RECENTITEMSMODEL_H 0009 0010 #include <QAbstractListModel> 0011 #include <QFileIconProvider> 0012 #include <QList> 0013 #include <QModelIndex> 0014 #include <QString> 0015 #include <QUrl> 0016 0017 class KConfigGroup; 0018 0019 /** 0020 * @todo write docs 0021 */ 0022 class RecentItemsModel : public QAbstractListModel 0023 { 0024 Q_OBJECT 0025 0026 public: 0027 struct RecentItem { 0028 QString name; 0029 QUrl url; 0030 }; 0031 0032 /** 0033 * Default constructor 0034 */ 0035 RecentItemsModel(); 0036 0037 /** 0038 * Destructor 0039 */ 0040 ~RecentItemsModel() override; 0041 0042 void loadEntries(const KConfigGroup &cg); 0043 void clearEntries(); 0044 0045 int maxItems() const 0046 { 0047 return m_maxItems; 0048 } 0049 0050 RecentItemsModel::RecentItem const *getItem(const QModelIndex &) const; 0051 RecentItemsModel::RecentItem const *getItem(int index) const; 0052 0053 // Model implementation: 0054 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0055 QVariant data(const QModelIndex &index, int role = Qt::ItemDataRole::DisplayRole) const override; 0056 0057 private: 0058 QList<RecentItemsModel::RecentItem> m_recentItems; 0059 0060 int m_maxItems = 20; 0061 QFileIconProvider m_iconProvider; 0062 }; 0063 0064 #endif // RECENTITEMSMODEL_H