#pragma once #include #include #include #include class QFileSystemWatcher; class DirectoryFilesWatcher : public QObject { Q_OBJECT public: explicit DirectoryFilesWatcher(const QString &path, const QString &pattern, QObject *parent = nullptr); QStringList files() const; signals: void filesChanged(const QStringList& added, const QStringList& removed, const QStringList& changed); private: std::vector> readDirectory() const; void onDirectoryChanged(); QString m_path; QString m_pattern; std::unordered_map m_files; QFileSystemWatcher* m_fsWatcher; };