forked from qt-creator/qt-creator
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:
@@ -59,8 +59,8 @@ QList<RunConfigurationCreationInfo> 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<BareMetalCustomRunConfiguration>("BareMetal.CustomRunConfig");
|
||||
|
@@ -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>;
|
||||
|
@@ -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<RunConfigurationCreationInfo> availableCreators(Target *parent) const override;
|
||||
|
||||
private:
|
||||
const QString m_fixedBuildTarget;
|
||||
const bool m_decorateTargetName;
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT RunConfigWidget : public QWidget
|
||||
|
@@ -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<QmlProjectRunConfiguration>(Constants::QML_SCENE_RC_ID);
|
||||
|
@@ -29,13 +29,6 @@
|
||||
#include "qnxrunconfiguration.h"
|
||||
#include "qnxdevicefactory.h"
|
||||
|
||||
#include <projectexplorer/kitinformation.h>
|
||||
#include <projectexplorer/target.h>
|
||||
|
||||
#include <QFileInfo>
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
|
||||
namespace Qnx {
|
||||
namespace Internal {
|
||||
|
||||
@@ -46,12 +39,5 @@ QnxRunConfigurationFactory::QnxRunConfigurationFactory(QObject *parent) :
|
||||
setSupportedTargetDeviceTypes({Constants::QNX_QNX_OS_TYPE});
|
||||
}
|
||||
|
||||
QList<RunConfigurationCreationInfo> 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
|
||||
|
@@ -35,9 +35,6 @@ class QnxRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFact
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QnxRunConfigurationFactory(QObject *parent = nullptr);
|
||||
|
||||
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||
availableCreators(ProjectExplorer::Target *parent) const override;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
@@ -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()
|
||||
|
@@ -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");
|
||||
}
|
||||
|
@@ -29,12 +29,6 @@
|
||||
#include "remotelinuxcustomrunconfiguration.h"
|
||||
#include "remotelinuxrunconfiguration.h"
|
||||
|
||||
#include <projectexplorer/buildtargetinfo.h>
|
||||
#include <projectexplorer/target.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QFileInfo>
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
|
||||
namespace RemoteLinux {
|
||||
@@ -50,16 +44,6 @@ RemoteLinuxRunConfigurationFactory::RemoteLinuxRunConfigurationFactory(QObject *
|
||||
setSupportedTargetDeviceTypes({RemoteLinux::Constants::GenericLinuxOsType});
|
||||
}
|
||||
|
||||
QList<RunConfigurationCreationInfo>
|
||||
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)
|
||||
|
@@ -36,9 +36,6 @@ class RemoteLinuxRunConfigurationFactory : public ProjectExplorer::IRunConfigura
|
||||
|
||||
public:
|
||||
explicit RemoteLinuxRunConfigurationFactory(QObject *parent = nullptr);
|
||||
|
||||
QList<ProjectExplorer::RunConfigurationCreationInfo>
|
||||
availableCreators(ProjectExplorer::Target *parent) const override;
|
||||
};
|
||||
|
||||
class RemoteLinuxCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
|
||||
|
Reference in New Issue
Block a user