From 37989cf7bdde6d00bf9bd152ec307c00fca7dd53 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 7 Oct 2024 14:57:00 +0200 Subject: [PATCH] QmakeProjectManager: Get rid of custom parse delay Use the same update interval as the other build systems and remove needlessly stateful logic that made it difficult to understand what's going on. Fixes: QTCREATORBUG-31636 Change-Id: I39ef5a9d6834f5e7f7b457e2e2466fb912ee92e2 Reviewed-by: Christian Stenger --- src/plugins/projectexplorer/buildsystem.cpp | 15 --------------- src/plugins/projectexplorer/buildsystem.h | 3 --- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 16 ++++++---------- 3 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/plugins/projectexplorer/buildsystem.cpp b/src/plugins/projectexplorer/buildsystem.cpp index 6b98866135a..52c5b73f024 100644 --- a/src/plugins/projectexplorer/buildsystem.cpp +++ b/src/plugins/projectexplorer/buildsystem.cpp @@ -141,26 +141,11 @@ void BuildSystem::requestDelayedParse() requestParseHelper(1000); } -void BuildSystem::requestParseWithCustomDelay(int delayInMs) -{ - requestParseHelper(delayInMs); -} - void BuildSystem::cancelDelayedParseRequest() { d->m_delayedParsingTimer.stop(); } -void BuildSystem::setParseDelay(int delayInMs) -{ - d->m_delayedParsingTimer.setInterval(delayInMs); -} - -int BuildSystem::parseDelay() const -{ - return d->m_delayedParsingTimer.interval(); -} - bool BuildSystem::isParsing() const { return d->m_isParsing; diff --git a/src/plugins/projectexplorer/buildsystem.h b/src/plugins/projectexplorer/buildsystem.h index f18cbbbea71..1681f28e5f3 100644 --- a/src/plugins/projectexplorer/buildsystem.h +++ b/src/plugins/projectexplorer/buildsystem.h @@ -56,10 +56,7 @@ public: void requestParse(); void requestDelayedParse(); - void requestParseWithCustomDelay(int delayInMs = 1000); void cancelDelayedParseRequest(); - void setParseDelay(int delayInMs); - int parseDelay() const; bool isParsing() const; bool hasParsingData() const; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index c8ae2c884e7..1f5e3ce5f98 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -68,8 +68,6 @@ using namespace Utils; namespace QmakeProjectManager { namespace Internal { -const int UPDATE_INTERVAL = 3000; - static Q_LOGGING_CATEGORY(qmakeBuildSystemLog, "qtc.qmake.buildsystem", QtWarningMsg); #define TRACE(msg) \ @@ -204,8 +202,6 @@ QmakeBuildSystem::QmakeBuildSystem(QmakeBuildConfiguration *bc) , m_qmakeVfs(new QMakeVfs) , m_cppCodeModelUpdater(ProjectUpdaterFactory::createCppProjectUpdater()) { - setParseDelay(0); - m_rootProFile = std::make_unique(this, projectFilePath()); connect(BuildManager::instance(), &BuildManager::buildQueueFinished, @@ -588,10 +584,11 @@ void QmakeBuildSystem::startAsyncTimer(QmakeProFile::AsyncUpdateDelay delay) return; } - const int interval = qMin(parseDelay(), - delay == QmakeProFile::ParseLater ? UPDATE_INTERVAL : 0); - TRACE("interval: " << interval); - requestParseWithCustomDelay(interval); + TRACE("delay: " << delay); + switch (delay) { + case QmakeProFile::ParseNow: requestParse(); break; + case QmakeProFile::ParseLater: requestDelayedParse(); break; + } } void QmakeBuildSystem::incrementPendingEvaluateFutures() @@ -666,7 +663,6 @@ bool QmakeBuildSystem::wasEvaluateCanceled() void QmakeBuildSystem::asyncUpdate() { TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); - setParseDelay(UPDATE_INTERVAL); TRACE(""); if (m_invalidateQmakeVfsContents) { @@ -945,7 +941,7 @@ void QmakeBuildSystem::activeTargetWasChanged(Target *t) return; m_invalidateQmakeVfsContents = true; - scheduleUpdateAll(QmakeProFile::ParseLater); + scheduleUpdateAllNowOrLater(); } static void notifyChangedHelper(const FilePath &fileName, QmakeProFile *file)