From 018581a8c20ea08f5349df159599ca5c34db524f Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 14 Feb 2018 10:25:47 +0100 Subject: [PATCH] ProjectExplorer: Show non-desktop device names in remote run config names So far we used device type in some cases, not even following a specific pattern. Showing the device name gives a bit more detail in cases of multiple devices of the same type and offers the user a bit more control on what it shown. Change-Id: I2bd6bbd404577db3afca0f84b8a976cb07b1cfd0 Reviewed-by: Christian Kandeler --- .../baremetalrunconfigurationfactory.cpp | 4 +-- .../projectexplorer/runconfiguration.cpp | 28 +++++++++++++++---- .../projectexplorer/runconfiguration.h | 7 ++++- .../qmlprojectrunconfigurationfactory.cpp | 2 +- .../qnx/qnxrunconfigurationfactory.cpp | 14 ---------- src/plugins/qnx/qnxrunconfigurationfactory.h | 3 -- .../remotelinuxcustomrunconfiguration.cpp | 2 +- .../remotelinuxrunconfiguration.cpp | 3 +- .../remotelinuxrunconfigurationfactory.cpp | 16 ----------- .../remotelinuxrunconfigurationfactory.h | 3 -- 10 files changed, 33 insertions(+), 49 deletions(-) diff --git a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp b/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp index 62b82f36b6f..37e0dd37022 100644 --- a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp +++ b/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp @@ -59,8 +59,8 @@ QList BareMetalRunConfigurationFactory::availableC // BareMetalCustomRunConfigurationFactory BareMetalCustomRunConfigurationFactory::BareMetalCustomRunConfigurationFactory(QObject *parent) : - FixedRunConfigurationFactory(BareMetalCustomRunConfiguration::tr("Custom Executable (on GDB server or hardware debugger)"), - parent) + FixedRunConfigurationFactory(BareMetalCustomRunConfiguration::tr("Custom Executable)"), + true, parent) { setObjectName("BareMetalCustomRunConfigurationFactory"); registerRunConfiguration("BareMetal.CustomRunConfig"); diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 182b510b892..304a2b4f590 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -448,12 +448,24 @@ const QList IRunConfigurationFactory::allRunConfigur return g_runConfigurationFactories; } +QString IRunConfigurationFactory::decoratedTargetName(const QString targetName, Target *target) +{ + QString displayName = QFileInfo(targetName).completeBaseName(); + Core::Id devType = DeviceTypeKitInformation::deviceTypeId(target->kit()); + if (devType != Constants::DESKTOP_DEVICE_TYPE) { + if (IDevice::ConstPtr dev = DeviceKitInformation::device(target->kit())) + //: Shown in Run configuration, Add menu: "name of runnable (on device name)" + displayName = tr("%1 (on %2)").arg(displayName, dev->displayName()); + } + return displayName; +} + QList IRunConfigurationFactory::availableCreators(Target *parent) const { - return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &ti) { - return RunConfigurationCreationInfo(this, m_runConfigBaseId, ti.targetName, - QFileInfo(ti.targetName).completeBaseName()); + 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); }); } @@ -604,15 +616,19 @@ QList IRunConfigurationFactory::find(Target *parent) } FixedRunConfigurationFactory::FixedRunConfigurationFactory(const QString &displayName, + bool addDeviceName, QObject *parent) : - IRunConfigurationFactory(parent), m_fixedBuildTarget(displayName) + IRunConfigurationFactory(parent), + m_fixedBuildTarget(displayName), + m_decorateTargetName(addDeviceName) { } QList FixedRunConfigurationFactory::availableCreators(Target *parent) const { - Q_UNUSED(parent); - return {RunConfigurationCreationInfo(this, runConfigurationBaseId(), QString(), m_fixedBuildTarget)}; + QString displayName = m_decorateTargetName ? decoratedTargetName(m_fixedBuildTarget, parent) + : m_fixedBuildTarget; + return {RunConfigurationCreationInfo(this, runConfigurationBaseId(), QString(), displayName)}; } using WorkerFactories = std::vector; diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index c335318630c..64855b26481 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -324,6 +324,8 @@ public: Core::Id runConfigurationBaseId() const { return m_runConfigBaseId; } + static QString decoratedTargetName(const QString targetName, Target *kit); + protected: virtual bool canCreateHelper(Target *parent, const QString &buildTarget) const; @@ -355,12 +357,15 @@ class PROJECTEXPLORER_EXPORT FixedRunConfigurationFactory : public IRunConfigura Q_OBJECT public: - explicit FixedRunConfigurationFactory(const QString &displayName, QObject *parent = nullptr); + explicit FixedRunConfigurationFactory(const QString &displayName, + bool addDeviceName = false, + QObject *parent = nullptr); QList availableCreators(Target *parent) const override; private: const QString m_fixedBuildTarget; + const bool m_decorateTargetName; }; class PROJECTEXPLORER_EXPORT RunConfigWidget : public QWidget diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp index 1c7f3776ad9..05d8e896065 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp @@ -32,7 +32,7 @@ namespace QmlProjectManager { namespace Internal { QmlProjectRunConfigurationFactory::QmlProjectRunConfigurationFactory(QObject *parent) : - ProjectExplorer::FixedRunConfigurationFactory(tr("QML Scene"), parent) + ProjectExplorer::FixedRunConfigurationFactory(tr("QML Scene"), false, parent) { setObjectName("QmlProjectRunConfigurationFactory"); registerRunConfiguration(Constants::QML_SCENE_RC_ID); diff --git a/src/plugins/qnx/qnxrunconfigurationfactory.cpp b/src/plugins/qnx/qnxrunconfigurationfactory.cpp index 9a8ac138d61..8a74b8b0c67 100644 --- a/src/plugins/qnx/qnxrunconfigurationfactory.cpp +++ b/src/plugins/qnx/qnxrunconfigurationfactory.cpp @@ -29,13 +29,6 @@ #include "qnxrunconfiguration.h" #include "qnxdevicefactory.h" -#include -#include - -#include - -using namespace ProjectExplorer; - namespace Qnx { namespace Internal { @@ -46,12 +39,5 @@ QnxRunConfigurationFactory::QnxRunConfigurationFactory(QObject *parent) : setSupportedTargetDeviceTypes({Constants::QNX_QNX_OS_TYPE}); } -QList QnxRunConfigurationFactory::availableCreators(Target *parent) const -{ - return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &bti) { - return convert(tr("%1 on QNX Device").arg(QFileInfo(bti.targetName).completeBaseName()), bti.targetName); - }); -} - } // namespace Internal } // namespace Qnx diff --git a/src/plugins/qnx/qnxrunconfigurationfactory.h b/src/plugins/qnx/qnxrunconfigurationfactory.h index 6e557da32d2..8ddcd6516ef 100644 --- a/src/plugins/qnx/qnxrunconfigurationfactory.h +++ b/src/plugins/qnx/qnxrunconfigurationfactory.h @@ -35,9 +35,6 @@ class QnxRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFact Q_OBJECT public: explicit QnxRunConfigurationFactory(QObject *parent = nullptr); - - QList - availableCreators(ProjectExplorer::Target *parent) const override; }; } // namespace Internal diff --git a/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp b/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp index 64f4f67ce17..9f5a3c32f20 100644 --- a/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp +++ b/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp @@ -154,7 +154,7 @@ Core::Id RemoteLinuxCustomRunConfiguration::runConfigId() QString RemoteLinuxCustomRunConfiguration::runConfigDefaultDisplayName() { - return tr("Custom Executable (on Remote Generic Linux Host)"); + return tr("Custom Executable"); } static QString localExeKey() diff --git a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp index 0f5eb89a863..6b029147207 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp +++ b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp @@ -158,8 +158,7 @@ bool RemoteLinuxRunConfiguration::fromMap(const QVariantMap &map) QString RemoteLinuxRunConfiguration::defaultDisplayName() { if (!d->targetName.isEmpty()) - //: %1 is the name of a project which is being run on remote Linux - return tr("%1 (on Remote Device)").arg(d->targetName); + return IRunConfigurationFactory::decoratedTargetName(d->targetName, target()); //: Remote Linux run configuration default display name return tr("Run on Remote Device"); } diff --git a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp index af9ba0cbb3e..adb27d1c3c1 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp +++ b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp @@ -29,12 +29,6 @@ #include "remotelinuxcustomrunconfiguration.h" #include "remotelinuxrunconfiguration.h" -#include -#include -#include - -#include - using namespace ProjectExplorer; namespace RemoteLinux { @@ -50,16 +44,6 @@ RemoteLinuxRunConfigurationFactory::RemoteLinuxRunConfigurationFactory(QObject * setSupportedTargetDeviceTypes({RemoteLinux::Constants::GenericLinuxOsType}); } -QList - RemoteLinuxRunConfigurationFactory::availableCreators(Target *parent) const -{ - return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &bti) { - return convert(tr("%1 (on Remote Generic Linux Host)").arg(bti.targetName), - QFileInfo(bti.targetName).completeBaseName()); - }); - } - - // RemoteLinuxCustomRunConfigurationFactory RemoteLinuxCustomRunConfigurationFactory::RemoteLinuxCustomRunConfigurationFactory(QObject *parent) diff --git a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h index 9ce9d1a9799..0a5273c94b2 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h +++ b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h @@ -36,9 +36,6 @@ class RemoteLinuxRunConfigurationFactory : public ProjectExplorer::IRunConfigura public: explicit RemoteLinuxRunConfigurationFactory(QObject *parent = nullptr); - - QList - availableCreators(ProjectExplorer::Target *parent) const override; }; class RemoteLinuxCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory