33 lines
758 B
C
33 lines
758 B
C
|
#pragma once
|
||
|
|
||
|
#include <QDateTime>
|
||
|
#include <QObject>
|
||
|
#include <QStringList>
|
||
|
|
||
|
#include <unordered_map>
|
||
|
|
||
|
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<std::pair<QString, QDateTime>> readDirectory() const;
|
||
|
void onDirectoryChanged();
|
||
|
|
||
|
QString m_path;
|
||
|
QString m_pattern;
|
||
|
std::unordered_map<QString, QDateTime> m_files;
|
||
|
QFileSystemWatcher* m_fsWatcher;
|
||
|
};
|