From 7a388e7b4b26083aed52f47a5cae6105e6d74e18 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 7 Apr 2017 11:15:26 +0200 Subject: [PATCH] CMake: Improve emission of enabledChanged signals of build configurations Change-Id: I542b93512466727ac4ee66a8ca41e503106ebdcb Reviewed-by: Orgad Shaneh Reviewed-by: hjk --- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 11 +++++++---- .../cmakeprojectmanager/cmakebuildconfiguration.h | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index fbebafb9d54..79d057ac73a 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -145,7 +145,7 @@ void CMakeBuildConfiguration::ctor() connect(m_buildDirManager.get(), &BuildDirManager::dataAvailable, this, [this, project]() { project->updateProjectData(this); - emit enabledChanged(); + clearError(); emit dataAvailable(); }); connect(m_buildDirManager.get(), &BuildDirManager::errorOccured, @@ -153,7 +153,7 @@ void CMakeBuildConfiguration::ctor() connect(m_buildDirManager.get(), &BuildDirManager::configurationStarted, this, [this, project]() { project->handleParsingStarted(); - emit enabledChanged(); + clearError(ForceEnabledChanged::True); emit parsingStarted(); }); @@ -176,6 +176,7 @@ bool CMakeBuildConfiguration::isParsing() const void CMakeBuildConfiguration::resetData() { + clearError(); m_buildDirManager->resetData(); } @@ -342,12 +343,14 @@ void CMakeBuildConfiguration::setCurrentCMakeConfiguration(const QListforceReparse(); } -void CMakeBuildConfiguration::clearError() +void CMakeBuildConfiguration::clearError(ForceEnabledChanged fec) { if (!m_error.isEmpty()) { m_error.clear(); - emit enabledChanged(); + fec = ForceEnabledChanged::True; } + if (fec == ForceEnabledChanged::True) + emit enabledChanged(); } void CMakeBuildConfiguration::emitBuildTypeChanged() diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h index c97cd0f33ae..1796108574f 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h @@ -109,10 +109,12 @@ protected: private: void ctor(); + + enum ForceEnabledChanged : quint8 { False, True }; + void clearError(ForceEnabledChanged fec = ForceEnabledChanged::False); QList completeCMakeConfiguration() const; void setCurrentCMakeConfiguration(const QList &items); - void clearError(); void setError(const QString &message); void setWarning(const QString &message);