From abebbdc9f7950dfa3e47436cb1efedb8466e4ea2 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 15 Aug 2019 12:23:35 +0200 Subject: [PATCH] CompilationDatabase: Simplify based on Project::projectFileIsDirty signal Change-Id: Icfcbae73f611d967a7cc2db7c249f6f7190f5926 Reviewed-by: Christian Kandeler --- .../compilationdatabaseproject.cpp | 16 +++++++++------- .../compilationdatabaseproject.h | 1 - 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp index a601f3d3a98..63b301af85f 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp @@ -407,17 +407,19 @@ CompilationDatabaseProject::CompilationDatabaseProject(const Utils::FilePath &pr m_kit.reset(KitManager::defaultKit()->clone()); addTargetForKit(m_kit.get()); - connect(this, &CompilationDatabaseProject::rootProjectDirectoryChanged, - m_parseDelay, QOverload<>::of(&QTimer::start)); + connect(this, + &CompilationDatabaseProject::rootProjectDirectoryChanged, + m_parseDelay, + QOverload<>::of(&QTimer::start)); - m_fileSystemWatcher.addFile(projectFile.toString(), Utils::FileSystemWatcher::WatchModifiedDate); - m_fileSystemWatcher.addFile(projectFile.toString() + Constants::COMPILATIONDATABASEPROJECT_FILES_SUFFIX, - Utils::FileSystemWatcher::WatchModifiedDate); - connect(&m_fileSystemWatcher, &Utils::FileSystemWatcher::fileChanged, - m_parseDelay, QOverload<>::of(&QTimer::start)); + setExtraProjectFiles( + {projectFile.stringAppended(Constants::COMPILATIONDATABASEPROJECT_FILES_SUFFIX)}); connect(m_parseDelay, &QTimer::timeout, this, &CompilationDatabaseProject::reparseProject); + m_parseDelay->setSingleShot(true); m_parseDelay->setInterval(1000); + + connect(this, &Project::projectFileIsDirty, this, &CompilationDatabaseProject::reparseProject); } Utils::FilePath CompilationDatabaseProject::rootPathFromSettings() const diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h index 47687a0c6fa..9e38e914314 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h @@ -69,7 +69,6 @@ private: QFutureWatcher m_parserWatcher; std::unique_ptr m_cppCodeModelUpdater; std::unique_ptr m_kit; - Utils::FileSystemWatcher m_fileSystemWatcher; MimeBinaryCache m_mimeBinaryCache; QTimer * const m_parseDelay; CompilationDbParser *m_parser = nullptr;