File indexing completed on 2024-05-12 16:02:29
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Alvin Wong <alvin@alvinhc.com> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #ifndef KIS_RECENT_FILES_MANAGER_H 0008 #define KIS_RECENT_FILES_MANAGER_H 0009 0010 #include <QObject> 0011 #include <QString> 0012 #include <QUrl> 0013 #include <QVector> 0014 0015 #include <kritawidgetutils_export.h> 0016 0017 class KConfigGroup; 0018 0019 struct KRITAWIDGETUTILS_EXPORT KisRecentFilesEntry 0020 { 0021 QUrl m_url; 0022 QString m_displayName; 0023 }; /* struct KisRecentFilesEntry */ 0024 0025 class KRITAWIDGETUTILS_EXPORT KisRecentFilesManager : public QObject 0026 { 0027 Q_OBJECT 0028 0029 class Private; 0030 Private *m_d; 0031 0032 KisRecentFilesManager(); 0033 ~KisRecentFilesManager(); 0034 0035 Q_DISABLE_COPY(KisRecentFilesManager) 0036 0037 public: 0038 static KisRecentFilesManager *instance(); 0039 0040 void clear(); 0041 0042 void add(const QUrl &url); 0043 void remove(const QUrl &url); 0044 0045 QVector<KisRecentFilesEntry> recentFiles() const; 0046 QList<QUrl> recentUrlsLatestFirst() const; 0047 0048 private: 0049 void loadEntries(const KConfigGroup &config); 0050 void saveEntries(const KConfigGroup &config); 0051 0052 Q_SIGNALS: 0053 void fileAdded(const QUrl &url); 0054 void fileRemoved(const QUrl &url); 0055 void listRenewed(); 0056 }; /* class KisRecentFileRegistry */ 0057 0058 #endif /* KIS_RECENT_FILES_MANAGER_H */