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 <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-02-14 10:25:47 +01:00
parent 9f2bb5d0c5
commit 018581a8c2
10 changed files with 33 additions and 49 deletions

View File

@@ -448,12 +448,24 @@ const QList<IRunConfigurationFactory *> 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<RunConfigurationCreationInfo>
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 *> 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<RunConfigurationCreationInfo>
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<RunControl::WorkerFactory>;