Disable watching for FS updates when requested.
This commit is contained in:
parent
9fdfb52225
commit
55e9fd8dc3
|
@ -9,6 +9,7 @@ class FileSystemWatcherInterface : public QObject {
|
|||
FileSystemWatcherInterface(QObject* parent = 0);
|
||||
virtual void Init() {}
|
||||
virtual void AddPath(const QString& path) = 0;
|
||||
virtual void Clear() = 0;
|
||||
|
||||
static FileSystemWatcherInterface* Create(QObject* parent = 0);
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ class MacFSListener : public FileSystemWatcherInterface {
|
|||
public:
|
||||
explicit MacFSListener(QObject* parent = 0);
|
||||
void Init();
|
||||
|
||||
void AddPath(const QString& path);
|
||||
void Clear();
|
||||
|
||||
signals:
|
||||
void PathChanged(const QString& path);
|
||||
|
|
|
@ -39,6 +39,11 @@ void MacFSListener::AddPath(const QString& path) {
|
|||
UpdateStream();
|
||||
}
|
||||
|
||||
void MacFSListener::Clear() {
|
||||
paths_.clear();
|
||||
UpdateStream();
|
||||
}
|
||||
|
||||
void MacFSListener::UpdateStream() {
|
||||
if (stream_) {
|
||||
FSEventStreamStop(stream_);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "qtfslistener.h"
|
||||
|
||||
#include <QStringList>
|
||||
|
||||
QtFSListener::QtFSListener(QObject* parent)
|
||||
: FileSystemWatcherInterface(parent),
|
||||
watcher_(this) {
|
||||
|
@ -10,3 +12,8 @@ QtFSListener::QtFSListener(QObject* parent)
|
|||
void QtFSListener::AddPath(const QString& path) {
|
||||
watcher_.addPath(path);
|
||||
}
|
||||
|
||||
void QtFSListener::Clear() {
|
||||
watcher_.removePaths(watcher_.directories());
|
||||
watcher_.removePaths(watcher_.files());
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ class QtFSListener : public FileSystemWatcherInterface {
|
|||
public:
|
||||
QtFSListener(QObject* parent);
|
||||
virtual void AddPath(const QString& path);
|
||||
virtual void Clear();
|
||||
|
||||
private:
|
||||
QFileSystemWatcher watcher_;
|
||||
|
|
|
@ -694,7 +694,7 @@ void LibraryWatcher::ReloadSettings() {
|
|||
}
|
||||
|
||||
if (!monitor_ && was_monitoring_before) {
|
||||
// TODO: Remove all directories from watcher.
|
||||
fs_watcher_->Clear();
|
||||
} else if (monitor_ && !was_monitoring_before) {
|
||||
// Add all directories to all QFileSystemWatchers again
|
||||
foreach (const DirData& data, watched_dirs_.values()) {
|
||||
|
|
Loading…
Reference in New Issue