From 2626e1629f639bcd5be712fc51a1b76f1f3a731c Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 7 Mar 2018 09:32:04 +0100 Subject: [PATCH] Add some pass-through fields for {RunConfiguration,BuildTarget}Info This is unused here by will be used in subsequent changes. Project parsing yields information on whether there's a console requested and whether the "magic" qtc_runnable flag for primary executables has been seen. Also, the current "targetname" is taking different roles in different context, try to split-off the pure visual aspect by allowing to specify an explicit displayName, with fallback to the current decorated targetName if empty. Task-number: QTCREATORBUG-19985 Change-Id: I11edfcaafd17972f6a78aeff3fbbf3d7eb91a213 Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/buildtargetinfo.h | 4 ++++ src/plugins/projectexplorer/runconfiguration.cpp | 9 +++++++-- src/plugins/projectexplorer/runconfiguration.h | 8 ++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/buildtargetinfo.h b/src/plugins/projectexplorer/buildtargetinfo.h index 70011fff886..c41cbea69fb 100644 --- a/src/plugins/projectexplorer/buildtargetinfo.h +++ b/src/plugins/projectexplorer/buildtargetinfo.h @@ -47,10 +47,14 @@ public: { } QString targetName; + QString displayName; Utils::FileName targetFilePath; Utils::FileName projectFilePath; + bool isAutoRunnable = true; + bool usesTerminal = false; + bool isValid() const { return !targetName.isEmpty(); } }; diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 48c4cf123d3..90a32a7bbd6 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -471,8 +471,13 @@ QList RunConfigurationFactory::availableCreators(Target *parent) const { return Utils::transform(parent->applicationTargets().list, [parent, this](const BuildTargetInfo &ti) { - const QString displayName = decoratedTargetName(ti.targetName, parent); - return RunConfigurationCreationInfo(this, m_runConfigBaseId, ti.targetName, displayName); + QString displayName = ti.displayName; + if (displayName.isEmpty()) + displayName = decoratedTargetName(ti.targetName, parent); + return RunConfigurationCreationInfo(this, m_runConfigBaseId, ti.targetName, displayName, + ti.isAutoRunnable ? RunConfigurationCreationInfo::AlwaysCreate + : RunConfigurationCreationInfo::ManualCreationOnly, + ti.usesTerminal); }); } diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index 96db3d5d64e..c6d050928c6 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -283,14 +283,17 @@ class RunConfigurationCreationInfo { public: enum CreationMode {AlwaysCreate, ManualCreationOnly}; + RunConfigurationCreationInfo() = default; RunConfigurationCreationInfo(const RunConfigurationFactory *factory, Core::Id id, QString extra, QString displayName, - CreationMode creationMode = AlwaysCreate) + CreationMode creationMode = AlwaysCreate, + bool useTerminal = false) : factory(factory), id(id), extra(extra), displayName(displayName), - creationMode(creationMode) + creationMode(creationMode), + useTerminal(useTerminal) {} const RunConfigurationFactory *factory = nullptr; @@ -298,6 +301,7 @@ public: QString extra; QString displayName; CreationMode creationMode = AlwaysCreate; + bool useTerminal = false; }; class PROJECTEXPLORER_EXPORT RunConfigurationFactory : public QObject