Project: Move signalling of parsing state into Project

Get rid of duplicated code to do such signaling in derived Project types.

Change-Id: I26914a1d751d72ee65c15a7943e0e7f34978f042
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2017-07-13 10:51:15 +02:00
parent 05bcba3e73
commit 09b127f9f1
22 changed files with 105 additions and 40 deletions

View File

@@ -69,8 +69,8 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target) :
m_isParsing(true),
m_parsingError(false)
{
connect(project(), &QbsProject::projectParsingStarted, this, &BuildConfiguration::enabledChanged);
connect(project(), &QbsProject::projectParsingDone, this, &BuildConfiguration::enabledChanged);
connect(project(), &Project::parsingStarted, this, &BuildConfiguration::enabledChanged);
connect(project(), &Project::parsingFinished, this, &BuildConfiguration::enabledChanged);
BuildStepList *bsl = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);
connect(bsl, &BuildStepList::stepInserted, this, &QbsBuildConfiguration::buildStepInserted);

View File

@@ -346,7 +346,8 @@ void QbsBuildStep::buildingDone(bool success)
void QbsBuildStep::reparsingDone(bool success)
{
disconnect(qbsProject(), &QbsProject::projectParsingDone, this, &QbsBuildStep::reparsingDone);
disconnect(qbsProject(), &ProjectExplorer::Project::parsingFinished,
this, &QbsBuildStep::reparsingDone);
m_parsingProject = false;
if (m_job) { // This was a scheduled reparsing after building.
finish();
@@ -485,7 +486,8 @@ void QbsBuildStep::setCleanInstallRoot(bool clean)
void QbsBuildStep::parseProject()
{
m_parsingProject = true;
connect(qbsProject(), &QbsProject::projectParsingDone, this, &QbsBuildStep::reparsingDone);
connect(qbsProject(), &ProjectExplorer::Project::parsingFinished,
this, &QbsBuildStep::reparsingDone);
qbsProject()->parseCurrentBuildConfiguration();
}

View File

@@ -286,7 +286,7 @@ QbsInstallStepConfigWidget::QbsInstallStepConfigWidget(QbsInstallStep *step) :
connect(m_ui->keepGoingCheckBox, &QAbstractButton::toggled,
this, &QbsInstallStepConfigWidget::changeKeepGoing);
connect(project, &QbsProject::projectParsingDone,
connect(project, &ProjectExplorer::Project::parsingFinished,
this, &QbsInstallStepConfigWidget::updateState);
updateState();

View File

@@ -502,8 +502,7 @@ void QbsProject::handleQbsParsingDone(bool success)
if (dataChanged)
updateAfterParse();
emit projectParsingDone(success);
emit parsingFinished();
emitParsingFinished(success);
}
void QbsProject::rebuildProjectTree()
@@ -529,7 +528,7 @@ void QbsProject::handleRuleExecutionDone()
QTC_ASSERT(m_qbsProject.isValid(), return);
m_projectData = m_qbsProject.projectData();
updateAfterParse();
emit projectParsingDone(true);
// finishParsing(true);
}
void QbsProject::targetWasAdded(Target *t)
@@ -699,7 +698,7 @@ void QbsProject::parse(const QVariantMap &config, const Environment &env, const
QbsManager::instance()->updateProfileIfNecessary(activeTarget()->kit());
m_qbsProjectParser->parse(config, env, dir, configName);
emit projectParsingStarted();
emitParsingStarted();
}
void QbsProject::prepareForParsing()

View File

@@ -108,14 +108,9 @@ public:
const qbs::ProductData &product);
static QString uniqueProductName(const qbs::ProductData &product);
public:
void invalidate();
void delayParsing();
signals:
void projectParsingStarted();
void projectParsingDone(bool);
private:
void handleQbsParsingDone(bool success);

View File

@@ -295,9 +295,9 @@ void QbsProjectManagerPlugin::projectWasAdded(Project *project)
if (!qbsProject)
return;
connect(qbsProject, &QbsProject::projectParsingStarted,
connect(qbsProject, &Project::parsingStarted,
this, &QbsProjectManagerPlugin::projectChanged);
connect(qbsProject, &QbsProject::projectParsingDone,
connect(qbsProject, &Project::parsingFinished,
this, &QbsProjectManagerPlugin::projectChanged);
}

View File

@@ -119,7 +119,7 @@ QbsRunConfiguration::QbsRunConfiguration(Target *parent, Core::Id id) :
}
);
addExtraAspect(envAspect);
connect(static_cast<QbsProject *>(parent->project()), &QbsProject::parsingFinished, this,
connect(static_cast<QbsProject *>(parent->project()), &Project::parsingFinished, this,
[envAspect]() { envAspect->buildEnvironmentHasChanged(); });
addExtraAspect(new ArgumentsAspect(this, QStringLiteral("Qbs.RunConfiguration.CommandLineArguments")));
addExtraAspect(new WorkingDirectoryAspect(this, QStringLiteral("Qbs.RunConfiguration.WorkingDirectory")));
@@ -162,8 +162,8 @@ void QbsRunConfiguration::ctor()
setDefaultDisplayName(defaultDisplayName());
QbsProject *project = static_cast<QbsProject *>(target()->project());
connect(project, &QbsProject::projectParsingStarted, this, &RunConfiguration::enabledChanged);
connect(project, &QbsProject::projectParsingDone, this, [this](bool success) {
connect(project, &Project::parsingStarted, this, &RunConfiguration::enabledChanged);
connect(project, &Project::parsingFinished, this, [this](bool success) {
auto terminalAspect = extraAspect<TerminalAspect>();
if (success && !terminalAspect->isUserSet())
terminalAspect->setUseTerminal(isConsoleApplication());