diff options
Diffstat (limited to 'launcher/RecursiveFileSystemWatcher.cpp')
| -rw-r--r-- | launcher/RecursiveFileSystemWatcher.cpp | 148 |
1 files changed, 70 insertions, 78 deletions
diff --git a/launcher/RecursiveFileSystemWatcher.cpp b/launcher/RecursiveFileSystemWatcher.cpp index d4f2577a6d..96987c7b60 100644 --- a/launcher/RecursiveFileSystemWatcher.cpp +++ b/launcher/RecursiveFileSystemWatcher.cpp @@ -24,109 +24,101 @@ #include <QRegularExpression> #include <QDebug> -RecursiveFileSystemWatcher::RecursiveFileSystemWatcher(QObject *parent) - : QObject(parent), m_watcher(new QFileSystemWatcher(this)) +RecursiveFileSystemWatcher::RecursiveFileSystemWatcher(QObject* parent) + : QObject(parent), m_watcher(new QFileSystemWatcher(this)) { - connect(m_watcher, &QFileSystemWatcher::fileChanged, this, - &RecursiveFileSystemWatcher::fileChange); - connect(m_watcher, &QFileSystemWatcher::directoryChanged, this, - &RecursiveFileSystemWatcher::directoryChange); + connect(m_watcher, &QFileSystemWatcher::fileChanged, this, + &RecursiveFileSystemWatcher::fileChange); + connect(m_watcher, &QFileSystemWatcher::directoryChanged, this, + &RecursiveFileSystemWatcher::directoryChange); } -void RecursiveFileSystemWatcher::setRootDir(const QDir &root) +void RecursiveFileSystemWatcher::setRootDir(const QDir& root) { - bool wasEnabled = m_isEnabled; - disable(); - m_root = root; - setFiles(scanRecursive(m_root)); - if (wasEnabled) - { - enable(); - } + bool wasEnabled = m_isEnabled; + disable(); + m_root = root; + setFiles(scanRecursive(m_root)); + if (wasEnabled) { + enable(); + } } void RecursiveFileSystemWatcher::setWatchFiles(const bool watchFiles) { - bool wasEnabled = m_isEnabled; - disable(); - m_watchFiles = watchFiles; - if (wasEnabled) - { - enable(); - } + bool wasEnabled = m_isEnabled; + disable(); + m_watchFiles = watchFiles; + if (wasEnabled) { + enable(); + } } void RecursiveFileSystemWatcher::enable() { - if (m_isEnabled) - { - return; - } - Q_ASSERT(m_root != QDir::root()); - addFilesToWatcherRecursive(m_root); - m_isEnabled = true; + if (m_isEnabled) { + return; + } + Q_ASSERT(m_root != QDir::root()); + addFilesToWatcherRecursive(m_root); + m_isEnabled = true; } void RecursiveFileSystemWatcher::disable() { - if (!m_isEnabled) - { - return; - } - m_isEnabled = false; - m_watcher->removePaths(m_watcher->files()); - m_watcher->removePaths(m_watcher->directories()); + if (!m_isEnabled) { + return; + } + m_isEnabled = false; + m_watcher->removePaths(m_watcher->files()); + m_watcher->removePaths(m_watcher->directories()); } -void RecursiveFileSystemWatcher::setFiles(const QStringList &files) +void RecursiveFileSystemWatcher::setFiles(const QStringList& files) { - if (files != m_files) - { - m_files = files; - emit filesChanged(); - } + if (files != m_files) { + m_files = files; + emit filesChanged(); + } } -void RecursiveFileSystemWatcher::addFilesToWatcherRecursive(const QDir &dir) +void RecursiveFileSystemWatcher::addFilesToWatcherRecursive(const QDir& dir) { - m_watcher->addPath(dir.absolutePath()); - for (const QString &directory : dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) - { - addFilesToWatcherRecursive(dir.absoluteFilePath(directory)); - } - if (m_watchFiles) - { - for (const QFileInfo &info : dir.entryInfoList(QDir::Files)) - { - m_watcher->addPath(info.absoluteFilePath()); - } - } + m_watcher->addPath(dir.absolutePath()); + for (const QString& directory : + dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { + addFilesToWatcherRecursive(dir.absoluteFilePath(directory)); + } + if (m_watchFiles) { + for (const QFileInfo& info : dir.entryInfoList(QDir::Files)) { + m_watcher->addPath(info.absoluteFilePath()); + } + } } -QStringList RecursiveFileSystemWatcher::scanRecursive(const QDir &directory) +QStringList RecursiveFileSystemWatcher::scanRecursive(const QDir& directory) { - QStringList ret; - if(!m_matcher) - { - return {}; - } - for (const QString &dir : directory.entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden)) - { - ret.append(scanRecursive(directory.absoluteFilePath(dir))); - } - for (const QString &file : directory.entryList(QDir::Files | QDir::Hidden)) - { - auto relPath = m_root.relativeFilePath(directory.absoluteFilePath(file)); - if (m_matcher->matches(relPath)) - { - ret.append(relPath); - } - } - return ret; + QStringList ret; + if (!m_matcher) { + return {}; + } + for (const QString& dir : directory.entryList( + QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden)) { + ret.append(scanRecursive(directory.absoluteFilePath(dir))); + } + for (const QString& file : + directory.entryList(QDir::Files | QDir::Hidden)) { + auto relPath = + m_root.relativeFilePath(directory.absoluteFilePath(file)); + if (m_matcher->matches(relPath)) { + ret.append(relPath); + } + } + return ret; } -void RecursiveFileSystemWatcher::fileChange(const QString &path) +void RecursiveFileSystemWatcher::fileChange(const QString& path) { - emit fileChanged(path); + emit fileChanged(path); } -void RecursiveFileSystemWatcher::directoryChange(const QString &path) +void RecursiveFileSystemWatcher::directoryChange(const QString& path) { - setFiles(scanRecursive(m_root)); + setFiles(scanRecursive(m_root)); } |
