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 };