File indexing completed on 2024-05-05 04:50:49
0001 /* 0002 * SPDX-FileCopyrightText: 2021 George Florea Bănuș <georgefb899@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #ifndef RECENTFILESMODEL_H 0008 #define RECENTFILESMODEL_H 0009 0010 #include <KConfigGroup> 0011 0012 #include <QAbstractListModel> 0013 #include <QUrl> 0014 #include <QtQml/qqmlregistration.h> 0015 0016 class KRecentFilesAction; 0017 0018 struct RecentFile { 0019 QUrl url; 0020 QString name; 0021 }; 0022 0023 class RecentFilesModel : public QAbstractListModel 0024 { 0025 Q_OBJECT 0026 QML_NAMED_ELEMENT(RecentFilesModel) 0027 0028 public: 0029 explicit RecentFilesModel(QObject *parent = nullptr); 0030 0031 enum Roles { 0032 PathRole = Qt::UserRole + 1, 0033 NameRole, 0034 }; 0035 0036 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0037 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0038 QHash<int, QByteArray> roleNames() const override; 0039 Q_INVOKABLE void addUrl(const QString &path, const QString &name = QString()); 0040 Q_INVOKABLE void clear(); 0041 Q_INVOKABLE void deleteEntries(); 0042 Q_INVOKABLE void populate(); 0043 0044 int maxRecentFiles() const; 0045 void setMaxRecentFiles(int _maxRecentFiles); 0046 0047 private: 0048 void saveEntries(); 0049 void getHttpItemInfo(const QUrl &url); 0050 QList<RecentFile> m_urls; 0051 KConfigGroup m_recentFilesConfigGroup; 0052 int m_maxRecentFiles{10}; 0053 }; 0054 0055 #endif // RECENTFILESMODEL_H