diff --git a/src/plugins/projectexplorer/buildsystem.cpp b/src/plugins/projectexplorer/buildsystem.cpp index ea299cd522d..6c3153261b2 100644 --- a/src/plugins/projectexplorer/buildsystem.cpp +++ b/src/plugins/projectexplorer/buildsystem.cpp @@ -142,6 +142,11 @@ void BuildSystem::requestDelayedParse() requestParseHelper(1000); } +void BuildSystem::cancelDelayedParseRequest() +{ + d->m_delayedParsingTimer.stop(); +} + bool BuildSystem::isParsing() const { return d->m_isParsing; diff --git a/src/plugins/projectexplorer/buildsystem.h b/src/plugins/projectexplorer/buildsystem.h index 551f83ac00e..2c53a32d493 100644 --- a/src/plugins/projectexplorer/buildsystem.h +++ b/src/plugins/projectexplorer/buildsystem.h @@ -62,6 +62,7 @@ public: void requestParse(); void requestDelayedParse(); + void cancelDelayedParseRequest(); bool isParsing() const; bool hasParsingData() const; diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 5103f04bef6..e7d4f27face 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -77,6 +77,7 @@ #include #include #include +#include #include #include @@ -207,7 +208,6 @@ QbsBuildSystem::QbsBuildSystem(QbsBuildConfiguration *bc) }); connect(m_session, &QbsSession::fileListUpdated, this, &QbsBuildSystem::delayParsing); - m_parsingDelay.setInterval(1000); // delay parsing by 1s. delayParsing(); connect(bc->project(), &Project::activeTargetChanged, @@ -216,8 +216,6 @@ QbsBuildSystem::QbsBuildSystem(QbsBuildConfiguration *bc) connect(bc->target(), &Target::activeBuildConfigurationChanged, this, &QbsBuildSystem::delayParsing); - connect(&m_parsingDelay, &QTimer::timeout, this, &QbsBuildSystem::triggerParsing); - connect(bc->project(), &Project::projectFileIsDirty, this, &QbsBuildSystem::delayParsing); updateProjectNodes({}); } @@ -591,7 +589,7 @@ void QbsBuildSystem::triggerParsing() void QbsBuildSystem::delayParsing() { if (m_buildConfiguration->isActive()) - m_parsingDelay.start(); + requestDelayedParse(); } void QbsBuildSystem::parseCurrentBuildConfiguration() @@ -629,7 +627,7 @@ void QbsBuildSystem::parseCurrentBuildConfiguration() prepareForParsing(); - m_parsingDelay.stop(); + cancelDelayedParseRequest(); QTC_ASSERT(!m_qbsProjectParser, return); m_qbsProjectParser = new QbsProjectParser(this, m_qbsUpdateFutureInterface); diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h index 250d544e3b0..7d4a027adf7 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.h +++ b/src/plugins/qbsprojectmanager/qbsproject.h @@ -39,7 +39,6 @@ #include #include #include -#include #include @@ -149,7 +148,6 @@ private: QSet m_qbsDocuments; QJsonObject m_projectData; // TODO: Perhaps store this in the root project node instead? - QTimer m_parsingDelay; QbsProjectParser *m_qbsProjectParser = nullptr; QFutureInterface *m_qbsUpdateFutureInterface = nullptr; using TreeCreationWatcher = QFutureWatcher;