diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index 3803ac50733..9c75cdaca17 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -50,6 +50,7 @@ AndroidDevice::AndroidDevice() setupId(IDevice::AutoDetected, Constants::ANDROID_DEVICE_ID); setType(Constants::ANDROID_DEVICE_TYPE); setDisplayName(QCoreApplication::translate("Android::Internal::AndroidDevice", "Run on Android")); + setDisplayType(QCoreApplication::translate("Android::Internal::AndroidDevice", "Android")); setMachineType(IDevice::Hardware); setDeviceState(DeviceReadyToUse); QString activityPath; @@ -65,11 +66,6 @@ IDevice::DeviceInfo AndroidDevice::deviceInformation() const return IDevice::DeviceInfo(); } -QString AndroidDevice::displayType() const -{ - return QCoreApplication::translate("Android::Internal::AndroidDevice", "Android"); -} - IDeviceWidget *AndroidDevice::createWidget() { return nullptr; diff --git a/src/plugins/android/androiddevice.h b/src/plugins/android/androiddevice.h index 7a66e1d15c9..37ed1b5612f 100644 --- a/src/plugins/android/androiddevice.h +++ b/src/plugins/android/androiddevice.h @@ -41,7 +41,6 @@ private: ProjectExplorer::IDevice::DeviceInfo deviceInformation() const override; - QString displayType() const override; ProjectExplorer::IDeviceWidget *createWidget() override; bool canAutoDetectPorts() const override; ProjectExplorer::DeviceProcessSignalOperation::Ptr signalOperation() const override; diff --git a/src/plugins/baremetal/baremetaldevice.cpp b/src/plugins/baremetal/baremetaldevice.cpp index 340ca1a2291..e543615aeec 100644 --- a/src/plugins/baremetal/baremetaldevice.cpp +++ b/src/plugins/baremetal/baremetaldevice.cpp @@ -52,6 +52,8 @@ const char gdbServerProviderIdKeyC[] = "GdbServerProviderId"; BareMetalDevice::~BareMetalDevice() { + setDisplayType(QCoreApplication::translate("BareMetal::Internal::BareMetalDevice", "Bare Metal")); + if (GdbServerProvider *provider = GdbServerProviderManager::findProvider(m_gdbServerProviderId)) provider->unregisterDevice(this); } @@ -135,11 +137,6 @@ DeviceProcessSignalOperation::Ptr BareMetalDevice::signalOperation() const return DeviceProcessSignalOperation::Ptr(); } -QString BareMetalDevice::displayType() const -{ - return QCoreApplication::translate("BareMetal::Internal::BareMetalDevice", "Bare Metal"); -} - IDeviceWidget *BareMetalDevice::createWidget() { return new BareMetalDeviceConfigurationWidget(sharedFromThis()); diff --git a/src/plugins/baremetal/baremetaldevice.h b/src/plugins/baremetal/baremetaldevice.h index b4d1b3afceb..ee1b186d1ce 100644 --- a/src/plugins/baremetal/baremetaldevice.h +++ b/src/plugins/baremetal/baremetaldevice.h @@ -45,7 +45,6 @@ public: static Ptr create() { return Ptr(new BareMetalDevice); } ~BareMetalDevice() final; - QString displayType() const final; ProjectExplorer::IDeviceWidget *createWidget() final; Utils::OsType osType() const final; diff --git a/src/plugins/boot2qt/qdbdevice.cpp b/src/plugins/boot2qt/qdbdevice.cpp index 8156ee7a89a..c863962c451 100644 --- a/src/plugins/boot2qt/qdbdevice.cpp +++ b/src/plugins/boot2qt/qdbdevice.cpp @@ -141,6 +141,8 @@ private: QdbDevice::QdbDevice() { + setDisplayType(tr("Boot2Qt Device")); + addDeviceAction({tr("Reboot Device"), [](const IDevice::Ptr &device, QWidget *) { CommandLine cmd{FilePath::fromString("reboot")}; (void) new DeviceApplicationObserver(device, cmd); @@ -152,11 +154,6 @@ QdbDevice::QdbDevice() }}); } -QString QdbDevice::displayType() const -{ - return tr("Boot2Qt Device"); -} - ProjectExplorer::IDeviceWidget *QdbDevice::createWidget() { ProjectExplorer::IDeviceWidget *w = RemoteLinux::LinuxDevice::createWidget(); diff --git a/src/plugins/boot2qt/qdbdevice.h b/src/plugins/boot2qt/qdbdevice.h index db0ff76aea1..d7a816097b5 100644 --- a/src/plugins/boot2qt/qdbdevice.h +++ b/src/plugins/boot2qt/qdbdevice.h @@ -40,7 +40,6 @@ public: static Ptr create() { return Ptr(new QdbDevice); } - QString displayType() const final; ProjectExplorer::IDeviceWidget *createWidget() final; ProjectExplorer::DeviceProcess *createProcess(QObject *parent) const final; diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp index 6fe7bfe40c7..0ec0302cd55 100644 --- a/src/plugins/ios/iosdevice.cpp +++ b/src/plugins/ios/iosdevice.cpp @@ -84,6 +84,7 @@ IosDevice::IosDevice() setupId(IDevice::AutoDetected, Constants::IOS_DEVICE_ID); setType(Constants::IOS_DEVICE_TYPE); setDisplayName(IosDevice::name()); + setDisplayType(QCoreApplication::translate("Ios::Internal::IosDevice", "iOS")); setMachineType(IDevice::Hardware); setDeviceState(DeviceDisconnected); Utils::PortList ports; @@ -98,6 +99,7 @@ IosDevice::IosDevice(const QString &uid) setupId(IDevice::AutoDetected, Core::Id(Constants::IOS_DEVICE_ID).withSuffix(uid)); setType(Constants::IOS_DEVICE_TYPE); setDisplayName(IosDevice::name()); + setDisplayType(QCoreApplication::translate("Ios::Internal::IosDevice", "iOS")); setMachineType(IDevice::Hardware); setDeviceState(DeviceDisconnected); } @@ -116,11 +118,6 @@ IDevice::DeviceInfo IosDevice::deviceInformation() const return res; } -QString IosDevice::displayType() const -{ - return QCoreApplication::translate("Ios::Internal::IosDevice", "iOS"); -} - IDeviceWidget *IosDevice::createWidget() { return nullptr; diff --git a/src/plugins/ios/iosdevice.h b/src/plugins/ios/iosdevice.h index 79037d8eb3e..beb731da328 100644 --- a/src/plugins/ios/iosdevice.h +++ b/src/plugins/ios/iosdevice.h @@ -52,7 +52,6 @@ public: ProjectExplorer::IDevice::DeviceInfo deviceInformation() const override; ProjectExplorer::IDeviceWidget *createWidget() override; ProjectExplorer::DeviceProcessSignalOperation::Ptr signalOperation() const override; - QString displayType() const override; void fromMap(const QVariantMap &map) override; QVariantMap toMap() const override; diff --git a/src/plugins/ios/iossimulator.cpp b/src/plugins/ios/iossimulator.cpp index 2312a5b10c8..4f63e8facca 100644 --- a/src/plugins/ios/iossimulator.cpp +++ b/src/plugins/ios/iossimulator.cpp @@ -51,29 +51,19 @@ IosSimulator::IosSimulator(Core::Id id) setType(Constants::IOS_SIMULATOR_TYPE); setMachineType(IDevice::Emulator); setDisplayName(QCoreApplication::translate("Ios::Internal::IosSimulator", "iOS Simulator")); + setDisplayType(QCoreApplication::translate("Ios::Internal::IosSimulator", "iOS Simulator")); setDeviceState(DeviceReadyToUse); } IosSimulator::IosSimulator() - : m_lastPort(Constants::IOS_SIMULATOR_PORT_START) -{ - setupId(IDevice::AutoDetected, Constants::IOS_SIMULATOR_DEVICE_ID); - setType(Constants::IOS_SIMULATOR_TYPE); - setMachineType(IDevice::Emulator); - setDisplayName(QCoreApplication::translate("Ios::Internal::IosSimulator", "iOS Simulator")); - setDeviceState(DeviceReadyToUse); -} + : IosSimulator(Constants::IOS_SIMULATOR_DEVICE_ID) +{} IDevice::DeviceInfo IosSimulator::deviceInformation() const { return IDevice::DeviceInfo(); } -QString IosSimulator::displayType() const -{ - return QCoreApplication::translate("Ios::Internal::IosSimulator", "iOS Simulator"); -} - IDeviceWidget *IosSimulator::createWidget() { return nullptr; diff --git a/src/plugins/ios/iossimulator.h b/src/plugins/ios/iossimulator.h index c2a390a5feb..be6652e4178 100644 --- a/src/plugins/ios/iossimulator.h +++ b/src/plugins/ios/iossimulator.h @@ -69,7 +69,6 @@ public: using Ptr = QSharedPointer; ProjectExplorer::IDevice::DeviceInfo deviceInformation() const override; - QString displayType() const override; ProjectExplorer::IDeviceWidget *createWidget() override; ProjectExplorer::DeviceProcessSignalOperation::Ptr signalOperation() const override; Utils::Port nextPort() const; diff --git a/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp b/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp index a725658b9bf..d3892bd95f5 100644 --- a/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp +++ b/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp @@ -55,6 +55,8 @@ DesktopDevice::DesktopDevice() setupId(IDevice::AutoDetected, DESKTOP_DEVICE_ID); setType(DESKTOP_DEVICE_TYPE); setDisplayName(QCoreApplication::translate("ProjectExplorer::DesktopDevice", "Local PC")); + setDisplayType(QCoreApplication::translate("ProjectExplorer::DesktopDevice", "Desktop")); + setDeviceState(IDevice::DeviceStateUnknown); setMachineType(IDevice::Hardware); const QString portRange = @@ -70,11 +72,6 @@ IDevice::DeviceInfo DesktopDevice::deviceInformation() const return DeviceInfo(); } -QString DesktopDevice::displayType() const -{ - return QCoreApplication::translate("ProjectExplorer::DesktopDevice", "Desktop"); -} - IDeviceWidget *DesktopDevice::createWidget() { return nullptr; diff --git a/src/plugins/projectexplorer/devicesupport/desktopdevice.h b/src/plugins/projectexplorer/devicesupport/desktopdevice.h index dec063b5e5a..a3cf7608dbc 100644 --- a/src/plugins/projectexplorer/devicesupport/desktopdevice.h +++ b/src/plugins/projectexplorer/devicesupport/desktopdevice.h @@ -40,7 +40,6 @@ class PROJECTEXPLORER_EXPORT DesktopDevice : public IDevice public: IDevice::DeviceInfo deviceInformation() const override; - QString displayType() const override; IDeviceWidget *createWidget() override; bool canAutoDetectPorts() const override; bool canCreateProcessModel() const override; diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp index cd6e7421aab..8ef3777ed4d 100644 --- a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp @@ -410,11 +410,11 @@ public: setupId(AutoDetected, Core::Id::fromString(QUuid::createUuid().toString())); setType(testTypeId()); setMachineType(Hardware); + setDisplayType("blubb"); } static Core::Id testTypeId() { return "TestType"; } private: - QString displayType() const override { return QLatin1String("blubb"); } IDeviceWidget *createWidget() override { return nullptr; } DeviceProcessSignalOperation::Ptr signalOperation() const override { diff --git a/src/plugins/projectexplorer/devicesupport/idevice.cpp b/src/plugins/projectexplorer/devicesupport/idevice.cpp index 86d783a6d99..9978fc61e31 100644 --- a/src/plugins/projectexplorer/devicesupport/idevice.cpp +++ b/src/plugins/projectexplorer/devicesupport/idevice.cpp @@ -138,6 +138,7 @@ public: IDevicePrivate() = default; QString displayName; + QString displayType; Core::Id type; IDevice::Origin origin = IDevice::AutoDetected; Core::Id id; @@ -199,11 +200,19 @@ QString IDevice::displayName() const void IDevice::setDisplayName(const QString &name) { - if (d->displayName == name) - return; d->displayName = name; } +QString IDevice::displayType() const +{ + return d->displayType; +} + +void IDevice::setDisplayType(const QString &type) +{ + d->displayType = type; +} + IDevice::DeviceInfo IDevice::deviceInformation() const { const QString key = QCoreApplication::translate("ProjectExplorer::IDevice", "Device"); diff --git a/src/plugins/projectexplorer/devicesupport/idevice.h b/src/plugins/projectexplorer/devicesupport/idevice.h index b2635440000..246d17687c2 100644 --- a/src/plugins/projectexplorer/devicesupport/idevice.h +++ b/src/plugins/projectexplorer/devicesupport/idevice.h @@ -155,7 +155,8 @@ public: virtual bool isCompatibleWith(const Kit *k) const; - virtual QString displayType() const = 0; + QString displayType() const; + virtual IDeviceWidget *createWidget() = 0; struct DeviceAction { @@ -227,6 +228,7 @@ protected: using OpenTerminal = std::function; void setOpenTerminal(const OpenTerminal &openTerminal); + void setDisplayType(const QString &type); private: IDevice(const IDevice &) = delete; diff --git a/src/plugins/qnx/qnxdevice.cpp b/src/plugins/qnx/qnxdevice.cpp index 7794dbde1b3..28128bb0006 100644 --- a/src/plugins/qnx/qnxdevice.cpp +++ b/src/plugins/qnx/qnxdevice.cpp @@ -82,17 +82,13 @@ class QnxPortsGatheringMethod : public PortsGatheringMethod QnxDevice::QnxDevice() { + setDisplayType(tr("QNX")); addDeviceAction({tr("Deploy Qt libraries..."), [](const IDevice::Ptr &device, QWidget *parent) { QnxDeployQtLibrariesDialog dialog(device, parent); dialog.exec(); }}); } -QString QnxDevice::displayType() const -{ - return tr("QNX"); -} - OsType QnxDevice::osType() const { return OsTypeOtherUnix; diff --git a/src/plugins/qnx/qnxdevice.h b/src/plugins/qnx/qnxdevice.h index ae6a2681435..31590cc0961 100644 --- a/src/plugins/qnx/qnxdevice.h +++ b/src/plugins/qnx/qnxdevice.h @@ -49,7 +49,6 @@ public: ProjectExplorer::DeviceTester *createDeviceTester() const override; ProjectExplorer::DeviceProcess *createProcess(QObject *parent) const override; - QString displayType() const override; Utils::OsType osType() const override; int qnxVersion() const; diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 6e05739c019..b7cf627abad 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -172,11 +172,6 @@ class LinuxPortsGatheringMethod : public PortsGatheringMethod } }; -QString LinuxDevice::displayType() const -{ - return tr("Generic Linux"); -} - IDeviceWidget *LinuxDevice::createWidget() { return new GenericLinuxDeviceConfigurationWidget(sharedFromThis()); @@ -189,6 +184,8 @@ Utils::OsType LinuxDevice::osType() const LinuxDevice::LinuxDevice() { + setDisplayType(tr("Generic Linux")); + addDeviceAction({tr("Deploy Public Key..."), [](const IDevice::Ptr &device, QWidget *parent) { if (auto d = PublicKeyDeploymentDialog::createDialog(device, parent)) { d->exec(); diff --git a/src/plugins/remotelinux/linuxdevice.h b/src/plugins/remotelinux/linuxdevice.h index 18faf4ae059..112830860a8 100644 --- a/src/plugins/remotelinux/linuxdevice.h +++ b/src/plugins/remotelinux/linuxdevice.h @@ -44,7 +44,6 @@ public: static Ptr create() { return Ptr(new LinuxDevice); } - QString displayType() const override; ProjectExplorer::IDeviceWidget *createWidget() override; Utils::OsType osType() const override; diff --git a/src/plugins/winrt/winrtdevice.cpp b/src/plugins/winrt/winrtdevice.cpp index b291ef31776..c26788a762a 100644 --- a/src/plugins/winrt/winrtdevice.cpp +++ b/src/plugins/winrt/winrtdevice.cpp @@ -60,17 +60,13 @@ Q_LOGGING_CATEGORY(winrtDeviceLog, "qtc.winrt.deviceParser", QtWarningMsg) WinRtDevice::WinRtDevice() { + setDisplayType(displayNameForType(type())); Utils::PortList portList; portList.addRange(Utils::Port(ProjectExplorer::Constants::DESKTOP_PORT_START), Utils::Port(ProjectExplorer::Constants::DESKTOP_PORT_END)); setFreePorts(portList); } -QString WinRtDevice::displayType() const -{ - return displayNameForType(type()); -} - IDeviceWidget *WinRtDevice::createWidget() { return nullptr; diff --git a/src/plugins/winrt/winrtdevice.h b/src/plugins/winrt/winrtdevice.h index f66c6c31ab2..989fa433ca3 100644 --- a/src/plugins/winrt/winrtdevice.h +++ b/src/plugins/winrt/winrtdevice.h @@ -41,7 +41,6 @@ public: static Ptr create() { return Ptr(new WinRtDevice); } - QString displayType() const override; ProjectExplorer::IDeviceWidget *createWidget() override; ProjectExplorer::DeviceProcessSignalOperation::Ptr signalOperation() const override; void fromMap(const QVariantMap &map) override;