From 4d1b7d4c3ded97bd4480532075c310ce09111d6f Mon Sep 17 00:00:00 2001 From: Sergey Levin Date: Mon, 10 Feb 2020 13:48:05 +0300 Subject: [PATCH] Update run configuration after device change The run configuration name defaults to " (on )". When another device is selected e.g. using the MiniProjectTargetSelector or Kits->Device option, the part in run configuration name is not updated and keeps referring to the initially selected device. Change-Id: Idda828b7f33b754d3b50268d7417c9a2790db30e Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/miniprojecttargetselector.cpp | 6 +++--- src/plugins/projectexplorer/projectconfiguration.cpp | 5 +++++ src/plugins/projectexplorer/projectconfiguration.h | 1 + src/plugins/projectexplorer/projectconfigurationmodel.cpp | 2 +- src/plugins/projectexplorer/runconfiguration.cpp | 4 ++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index a626a489c8e..f255c6bbf9d 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -106,7 +106,7 @@ public: return p->displayName(); if (const auto t = qobject_cast(object())) return t->displayName(); - return static_cast(object())->displayName(); + return static_cast(object())->expandedDisplayName(); } QString displayName() const @@ -1481,7 +1481,7 @@ void MiniProjectTargetSelector::updateActionAndSummary() deployConfig = dc->displayName(); if (RunConfiguration *rc = target->activeRunConfiguration()) - runConfig = rc->displayName(); + runConfig = rc->expandedDisplayName(); targetToolTipText = target->overlayIconToolTip(); targetIcon = createCenteredIcon(target->icon(), target->overlayIcon()); @@ -1530,7 +1530,7 @@ void MiniProjectTargetSelector::updateSummary() activeTarget->activeDeployConfiguration()->displayName())); if (!m_listWidgets[RUN]->isVisibleTo(this) && activeTarget->activeRunConfiguration()) summary.append(tr("Run: %1
").arg( - activeTarget->activeRunConfiguration()->displayName())); + activeTarget->activeRunConfiguration()->expandedDisplayName())); } else if (startupProject->needsConfiguration()) { summary = tr("" diff --git a/src/plugins/projectexplorer/projectconfiguration.cpp b/src/plugins/projectexplorer/projectconfiguration.cpp index e74a1c8ccab..10490df8542 100644 --- a/src/plugins/projectexplorer/projectconfiguration.cpp +++ b/src/plugins/projectexplorer/projectconfiguration.cpp @@ -144,3 +144,8 @@ Utils::Id ProjectExplorer::idFromMap(const QVariantMap &map) { return Utils::Id::fromSetting(map.value(QLatin1String(CONFIGURATION_ID_KEY))); } + +QString ProjectConfiguration::expandedDisplayName() const +{ + return m_target->macroExpander()->expand(m_displayName.value()); +} diff --git a/src/plugins/projectexplorer/projectconfiguration.h b/src/plugins/projectexplorer/projectconfiguration.h index b2161e7f1c3..eb4cc325a6a 100644 --- a/src/plugins/projectexplorer/projectconfiguration.h +++ b/src/plugins/projectexplorer/projectconfiguration.h @@ -56,6 +56,7 @@ public: Utils::Id id() const; QString displayName() const { return m_displayName.value(); } + QString expandedDisplayName() const; bool usesDefaultDisplayName() const { return m_displayName.usesDefaultValue(); } void setDisplayName(const QString &name); void setDefaultDisplayName(const QString &name); diff --git a/src/plugins/projectexplorer/projectconfigurationmodel.cpp b/src/plugins/projectexplorer/projectconfigurationmodel.cpp index a3a8d21e48f..9889b917da7 100644 --- a/src/plugins/projectexplorer/projectconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/projectconfigurationmodel.cpp @@ -116,7 +116,7 @@ QVariant ProjectConfigurationModel::data(const QModelIndex &index, int role) con if (role == Qt::DisplayRole) { const int row = index.row(); if (row < m_projectConfigurations.size()) - return m_projectConfigurations.at(row)->displayName(); + return m_projectConfigurations.at(row)->expandedDisplayName(); } return QVariant(); diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 5d7b613b23f..c79707fe682 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -429,10 +429,10 @@ QString RunConfigurationFactory::decoratedTargetName(const QString &targetName, if (IDevice::ConstPtr dev = DeviceKitAspect::device(target->kit())) { if (displayName.isEmpty()) { //: Shown in Run configuration if no executable is given, %1 is device name - displayName = RunConfiguration::tr("Run on %1").arg(dev->displayName()); + displayName = RunConfiguration::tr("Run on %{Device:Name}"); } else { //: Shown in Run configuration, Add menu: "name of runnable (on device name)" - displayName = RunConfiguration::tr("%1 (on %2)").arg(displayName, dev->displayName()); + displayName = RunConfiguration::tr("%1 (on %{Device:Name})").arg(displayName); } } }