From 105e5910601f6e5bafa6e92fe795075f7b24de71 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 9 Feb 2022 16:25:41 +0100 Subject: [PATCH] ProjectExplorer: Delay project parsing until it's part of the session E.g. code model logic relies on the session manager knowing about the project currently being parsed. Fixes: QTCREATORBUG-26987 Change-Id: I4d9a1c21ab8474f7ac21edaeebe667fc4f3a6c4e Reviewed-by: hjk Reviewed-by: --- src/plugins/projectexplorer/buildsystem.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/buildsystem.cpp b/src/plugins/projectexplorer/buildsystem.cpp index 8382d2d0600..424b49d802c 100644 --- a/src/plugins/projectexplorer/buildsystem.cpp +++ b/src/plugins/projectexplorer/buildsystem.cpp @@ -29,6 +29,7 @@ #include "projectexplorer.h" #include "runconfiguration.h" #include "runcontrol.h" +#include "session.h" #include "target.h" #include @@ -77,7 +78,13 @@ BuildSystem::BuildSystem(Target *target) // Timer: d->m_delayedParsingTimer.setSingleShot(true); - connect(&d->m_delayedParsingTimer, &QTimer::timeout, this, &BuildSystem::triggerParsing); + connect(&d->m_delayedParsingTimer, &QTimer::timeout, this, + [this] { + if (SessionManager::hasProject(project())) + triggerParsing(); + else + requestDelayedParse(); + }); } BuildSystem::~BuildSystem()