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

@@ -144,12 +144,15 @@ void CMakeBuildConfiguration::ctor()
connect(m_buildDirManager.get(), &BuildDirManager::dataAvailable,
this, [this, project]() {
project->updateProjectData(this);
clearError();
project->updateProjectData(this);
emit dataAvailable();
});
connect(m_buildDirManager.get(), &BuildDirManager::errorOccured,
this, &CMakeBuildConfiguration::setError);
this, [this, project](const QString &msg) {
setError(msg);
project->handleParsingError(this);
});
connect(m_buildDirManager.get(), &BuildDirManager::configurationStarted,
this, [this, project]() {
project->handleParsingStarted();

View File

@@ -204,7 +204,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
setError(bc->error());
setWarning(bc->warning());
connect(project, &CMakeProject::parsingStarted, this, [this]() {
connect(project, &ProjectExplorer::Project::parsingStarted, this, [this]() {
updateButtonState();
m_showProgressTimer.start();
});

View File

@@ -188,7 +188,18 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc)
emit bc->emitBuildTypeChanged();
emit parsingFinished();
emitParsingFinished(true);
}
void CMakeProject::handleParsingError(CMakeBuildConfiguration *bc)
{
QTC_ASSERT(bc, return);
Target *t = activeTarget();
if (!t || t->activeBuildConfiguration() != bc)
return;
emitParsingFinished(false);
}
void CMakeProject::updateQmlJSCodeModel()
@@ -369,7 +380,7 @@ void CMakeProject::handleActiveBuildConfigurationChanged()
void CMakeProject::handleParsingStarted()
{
if (activeTarget() && activeTarget()->activeBuildConfiguration() == sender())
emit parsingStarted();
emitParsingStarted();
}
void CMakeProject::handleTreeScanningFinished()

View File

@@ -105,10 +105,6 @@ public:
ProjectExplorer::ProjectImporter *projectImporter() const final;
signals:
/// emitted when cmake is running:
void parsingStarted();
protected:
RestoreResult fromMap(const QVariantMap &map, QString *errorMessage) final;
bool setupTarget(ProjectExplorer::Target *t) final;
@@ -121,6 +117,7 @@ private:
void handleParsingStarted();
void handleTreeScanningFinished();
void updateProjectData(Internal::CMakeBuildConfiguration *cmakeBc);
void handleParsingError(Internal::CMakeBuildConfiguration *bc);
void updateQmlJSCodeModel();
void createGeneratedCodeModelSupport();