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;