QbsProjectManager: Fix project parsing

Some recent ProjectExplorer refactorings caused the projects to stay
in the parsing state indefinitely, making it impossible to build or
run anything.

Change-Id: I458a5560cc8d0c7c3183c0f104f00b073039f28e
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Christian Kandeler
2017-09-25 19:08:47 +02:00
parent 1005fa9b68
commit b70637de41

View File

@@ -142,12 +142,12 @@ QbsProject::QbsProject(const FileName &fileName) :
connect(this, &Project::removedTarget, this, &QbsProject::targetWasRemoved); connect(this, &Project::removedTarget, this, &QbsProject::targetWasRemoved);
subscribeSignal(&BuildConfiguration::environmentChanged, this, [this]() { subscribeSignal(&BuildConfiguration::environmentChanged, this, [this]() {
if (static_cast<BuildConfiguration *>(sender())->isActive()) if (static_cast<BuildConfiguration *>(sender())->isActive())
startParsing(); delayParsing();
}); });
connect(this, &Project::activeProjectConfigurationChanged, connect(this, &Project::activeProjectConfigurationChanged,
this, [this](ProjectConfiguration *pc) { this, [this](ProjectConfiguration *pc) {
if (pc && pc->isActive()) if (pc && pc->isActive())
startParsing(); delayParsing();
}); });
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing); connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing);
@@ -447,6 +447,7 @@ bool QbsProject::checkCancelStatus()
qCDebug(qbsPmLog) << "Cancel request while parsing, starting re-parse"; qCDebug(qbsPmLog) << "Cancel request while parsing, starting re-parse";
m_qbsProjectParser->deleteLater(); m_qbsProjectParser->deleteLater();
m_qbsProjectParser = 0; m_qbsProjectParser = 0;
emitParsingFinished(false);
parseCurrentBuildConfiguration(); parseCurrentBuildConfiguration();
return true; return true;
} }
@@ -537,7 +538,6 @@ void QbsProject::handleRuleExecutionDone()
QTC_ASSERT(m_qbsProject.isValid(), return); QTC_ASSERT(m_qbsProject.isValid(), return);
m_projectData = m_qbsProject.projectData(); m_projectData = m_qbsProject.projectData();
updateAfterParse(); updateAfterParse();
// finishParsing(true);
} }
void QbsProject::targetWasAdded(Target *t) void QbsProject::targetWasAdded(Target *t)