diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-04-10 15:53:05 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-05-01 00:00:14 +0200 |
commit | b6d455a02bd338e9dc0faa09d4d8177ecd8d569a (patch) | |
tree | 41982bca1ede50049f2f8c7109dd18edeefde6d0 /libraries/logic/RecursiveFileSystemWatcher.cpp | |
parent | 47e37635f50c09b4f9a9ee7699e3120bab3e4088 (diff) | |
download | MultiMC-b6d455a02bd338e9dc0faa09d4d8177ecd8d569a.tar MultiMC-b6d455a02bd338e9dc0faa09d4d8177ecd8d569a.tar.gz MultiMC-b6d455a02bd338e9dc0faa09d4d8177ecd8d569a.tar.lz MultiMC-b6d455a02bd338e9dc0faa09d4d8177ecd8d569a.tar.xz MultiMC-b6d455a02bd338e9dc0faa09d4d8177ecd8d569a.zip |
NOISSUE reorganize and document libraries
Diffstat (limited to 'libraries/logic/RecursiveFileSystemWatcher.cpp')
-rw-r--r-- | libraries/logic/RecursiveFileSystemWatcher.cpp | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/libraries/logic/RecursiveFileSystemWatcher.cpp b/libraries/logic/RecursiveFileSystemWatcher.cpp deleted file mode 100644 index 59c3f0f0..00000000 --- a/libraries/logic/RecursiveFileSystemWatcher.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include "RecursiveFileSystemWatcher.h" - -#include <QRegularExpression> -#include <QDebug> - -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); -} - -void RecursiveFileSystemWatcher::setRootDir(const QDir &root) -{ - 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(); - } -} - -void RecursiveFileSystemWatcher::enable() -{ - 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()); -} - -void RecursiveFileSystemWatcher::setFiles(const QStringList &files) -{ - if (files != m_files) - { - m_files = files; - emit filesChanged(); - } -} - -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()); - } - } -} -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; -} - -void RecursiveFileSystemWatcher::fileChange(const QString &path) -{ - emit fileChanged(path); -} -void RecursiveFileSystemWatcher::directoryChange(const QString &path) -{ - setFiles(scanRecursive(m_root)); -} |