File indexing completed on 2024-05-12 04:46:01
0001 #pragma once 0002 #include <MauiKit3/Core/mauilist.h> 0003 0004 #include <QObject> 0005 0006 class QFileSystemWatcher; 0007 namespace FMH 0008 { 0009 class FileLoader; 0010 } 0011 0012 class RecentFilesModel : public MauiList 0013 { 0014 Q_OBJECT 0015 Q_PROPERTY(QUrl url WRITE setUrl READ url NOTIFY urlChanged) 0016 Q_PROPERTY(QStringList filters WRITE setFilters READ filters NOTIFY filtersChanged) 0017 Q_PROPERTY(QStringList urls READ urls NOTIFY urlsChanged FINAL) 0018 0019 public: 0020 RecentFilesModel(QObject * parent = nullptr); 0021 0022 const FMH::MODEL_LIST &items() const override final; 0023 0024 QUrl url() const; 0025 QStringList filters() const; 0026 0027 void componentComplete() override final; 0028 0029 QStringList urls() const; 0030 0031 public Q_SLOTS: 0032 void setUrl(QUrl url); 0033 0034 void setFilters(QStringList filters); 0035 0036 private: 0037 FMH::MODEL_LIST m_list; 0038 FMH::FileLoader * m_loader; 0039 QFileSystemWatcher *m_watcher; 0040 void setList(); 0041 0042 QUrl m_url; 0043 QStringList m_filters; 0044 QStringList m_urls; 0045 0046 Q_SIGNALS: 0047 void urlChanged(QUrl url); 0048 0049 void filtersChanged(QStringList filters); 0050 0051 void urlsChanged(); 0052 };