From a4dfc4ba9d3c90cd1b8fe9c7249dc8f02a068d95 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sun, 18 Oct 2015 22:26:23 +0100 Subject: [PATCH] refs #494 Use QFileSystemWatcher to watch for remote changes to the data store. --- src/blackcore/datacache.cpp | 5 +++-- src/blackcore/datacache.h | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/blackcore/datacache.cpp b/src/blackcore/datacache.cpp index 5f71af7fe..852afced1 100644 --- a/src/blackcore/datacache.cpp +++ b/src/blackcore/datacache.cpp @@ -27,9 +27,10 @@ namespace BlackCore } connect(this, &CValueCache::valuesChangedByLocal, this, &CDataCache::saveToStore); + connect(&m_watcher, &QFileSystemWatcher::fileChanged, this, [this] { loadFromStore(); }); - connect(&m_reloadTimer, &QTimer::timeout, this, [this]() { loadFromStore(); }); - m_reloadTimer.start(1000); + if (! QFile::exists(m_revisionFileName)) { QFile(m_revisionFileName).open(QFile::WriteOnly); } + m_watcher.addPath(m_revisionFileName); loadFromStore(); } diff --git a/src/blackcore/datacache.h b/src/blackcore/datacache.h index 9957c139d..c87d16b2c 100644 --- a/src/blackcore/datacache.h +++ b/src/blackcore/datacache.h @@ -15,7 +15,7 @@ #include "blackcore/blackcoreexport.h" #include "blackmisc/valuecache.h" #include -#include +#include namespace BlackCore { @@ -46,7 +46,7 @@ namespace BlackCore //! \param defer Whether to defer applying the changes. Used when called by saveToStore. void loadFromStore(bool lock = true, bool defer = false); - QTimer m_reloadTimer; + QFileSystemWatcher m_watcher; QUuid m_revision; const QString m_revisionFileName { persistentStore() + "/.rev" }; BlackMisc::CVariantMap m_deferredChanges;