diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-11-25 13:31:27 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-11-25 13:25:02 +0000 |
commit | 6c66af5c233dafe40d4c4e53c6ef506aaec704cd (patch) | |
tree | 0bf28994c0dd9d5f0875dfe293f7d9a4f19041f1 /src/plugins/qbsprojectmanager | |
parent | 9811f95aa7a4384d5fe21233b9019dd13a01c979 (diff) |
ProjectExplorer: Add a base class for build aspects
... and make use of it in the QmlDebuggingAspect.
A build setting is conceptually not a boolean, but a tri-state, as we
need to support force-switching a feature on and off as well as
specifying that it is to be left at its default value.
Change-Id: I15552614c5cf4f5187c026909d233c13e3487e81
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/qbsprojectmanager')
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp | 10 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsbuildconfiguration.h | 2 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsbuildstep.cpp | 21 |
3 files changed, 26 insertions, 7 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp index 7acbaccccb9..c49bf6bc205 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp @@ -45,7 +45,6 @@ #include <projectexplorer/target.h> #include <projectexplorer/toolchain.h> -#include <qtsupport/qtbuildaspects.h> #include <qtsupport/qtkitinformation.h> #include <utils/mimetypes/mimedatabase.h> @@ -150,8 +149,6 @@ void QbsBuildConfiguration::initialize() + '_' + kitHash.toHex().left(16); m_configurationName->setValue(uniqueConfigName); - if (initialBuildType() == Release) - aspect<QtSupport::QmlDebuggingAspect>()->setDefaultValue(false); BuildStepList *buildSteps = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); auto bs = new QbsBuildStep(buildSteps); @@ -377,7 +374,12 @@ QString QbsBuildConfiguration::equivalentCommandLine(const BuildStep *buildStep) bool QbsBuildConfiguration::isQmlDebuggingEnabled() const { - return aspect<QtSupport::QmlDebuggingAspect>()->value(); + return qmlDebuggingSetting() == QtSupport::QmlDebuggingAspect::Value::Enabled; +} + +BaseTriStateAspect::Value QbsBuildConfiguration::qmlDebuggingSetting() const +{ + return aspect<QtSupport::QmlDebuggingAspect>()->setting(); } // --------------------------------------------------------------------------- diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h index 01edafc3218..ee33ef729f4 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h @@ -31,6 +31,7 @@ #include <projectexplorer/buildconfiguration.h> #include <qtsupport/baseqtversion.h> +#include <qtsupport/qtbuildaspects.h> namespace ProjectExplorer { class BuildStep; } @@ -75,6 +76,7 @@ public: QString equivalentCommandLine(const ProjectExplorer::BuildStep *buildStep) const; bool isQmlDebuggingEnabled() const; + QtSupport::QmlDebuggingAspect::Value qmlDebuggingSetting() const; signals: void qbsConfigurationChanged(); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 45d9b4f63db..d47f3671f03 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -213,10 +213,17 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co { QVariantMap config = m_qbsConfiguration; config.insert(Constants::QBS_FORCE_PROBES_KEY, m_forceProbes); - if (static_cast<QbsBuildConfiguration *>(buildConfiguration())->isQmlDebuggingEnabled()) + switch (static_cast<QbsBuildConfiguration *>(buildConfiguration())->qmlDebuggingSetting()) { + case QtSupport::QmlDebuggingAspect::Value::Enabled: config.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, true); - else + break; + case QtSupport::QmlDebuggingAspect::Value::Disabled: + config.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, false); + break; + default: config.remove(Constants::QBS_CONFIG_QUICK_DEBUG_KEY); + break; + } if (variableHandling == ExpandVariables) { const MacroExpander * const expander = buildConfiguration()->macroExpander(); for (auto it = config.begin(), end = config.end(); it != end; ++it) { @@ -667,8 +674,16 @@ void QbsBuildStepConfigWidget::updateState() command += ' ' + m_propertyCache.at(i).name + ':' + m_propertyCache.at(i).effectiveValue; } - if (qbsBuildConfig->isQmlDebuggingEnabled()) + switch (qbsBuildConfig->qmlDebuggingSetting()) { + case QtSupport::QmlDebuggingAspect::Value::Enabled: command.append(' ').append(Constants::QBS_CONFIG_QUICK_DEBUG_KEY).append(":true"); + break; + case QtSupport::QmlDebuggingAspect::Value::Disabled: + command.append(' ').append(Constants::QBS_CONFIG_QUICK_DEBUG_KEY).append(":false"); + break; + default: + break; + } commandLineTextEdit->setPlainText(command); setSummaryText(tr("<b>Qbs:</b> %1").arg(command)); |