diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index 167af100ac5..c774d2c7b60 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -46,10 +46,9 @@ namespace Android { namespace Internal { AndroidDevice::AndroidDevice() - : IDevice(Core::Id(Constants::ANDROID_DEVICE_TYPE), - IDevice::AutoDetected, - Core::Id(Constants::ANDROID_DEVICE_ID)) + : IDevice(IDevice::AutoDetected, Core::Id(Constants::ANDROID_DEVICE_ID)) { + setType(Constants::ANDROID_DEVICE_TYPE); setDisplayName(QCoreApplication::translate("Android::Internal::AndroidDevice", "Run on Android")); setMachineType(IDevice::Hardware); setDeviceState(DeviceReadyToUse); diff --git a/src/plugins/baremetal/baremetaldevice.cpp b/src/plugins/baremetal/baremetaldevice.cpp index 0572825b1ea..ba81fc6a9c8 100644 --- a/src/plugins/baremetal/baremetaldevice.cpp +++ b/src/plugins/baremetal/baremetaldevice.cpp @@ -49,9 +49,9 @@ BareMetalDevice::Ptr BareMetalDevice::create() return Ptr(new BareMetalDevice); } -BareMetalDevice::Ptr BareMetalDevice::create(const QString &name, Core::Id type, Origin origin, Core::Id id) +BareMetalDevice::Ptr BareMetalDevice::create(const QString &name, Origin origin, Core::Id id) { - return Ptr(new BareMetalDevice(name, type, origin, id)); + return Ptr(new BareMetalDevice(name, origin, id)); } BareMetalDevice::Ptr BareMetalDevice::create(const BareMetalDevice &other) @@ -169,8 +169,8 @@ DeviceProcess *BareMetalDevice::createProcess(QObject *parent) const return new GdbServerProviderProcess(sharedFromThis(), parent); } -BareMetalDevice::BareMetalDevice(const QString &name, Core::Id type, Origin origin, Core::Id id) - : IDevice(type, origin, id) +BareMetalDevice::BareMetalDevice(const QString &name, Origin origin, Core::Id id) + : IDevice(origin, id) { setDisplayName(name); } diff --git a/src/plugins/baremetal/baremetaldevice.h b/src/plugins/baremetal/baremetaldevice.h index a0a22fc9ce3..331a58d6f3c 100644 --- a/src/plugins/baremetal/baremetaldevice.h +++ b/src/plugins/baremetal/baremetaldevice.h @@ -40,7 +40,7 @@ public: using ConstPtr = QSharedPointer; static Ptr create(); - static Ptr create(const QString &name, Core::Id type, + static Ptr create(const QString &name, Origin origin = ManuallyAdded, Core::Id id = Core::Id()); static Ptr create(const BareMetalDevice &other); @@ -65,8 +65,7 @@ public: protected: BareMetalDevice() = default; - BareMetalDevice(const QString &name, Core::Id type, - Origin origin, Core::Id id); + BareMetalDevice(const QString &name, Origin origin, Core::Id id); BareMetalDevice(const BareMetalDevice &other); private: diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp b/src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp index 95800a54ef4..f021070a3a4 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp +++ b/src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp @@ -45,8 +45,8 @@ BareMetalDeviceConfigurationWizard::BareMetalDeviceConfigurationWizard(QWidget * ProjectExplorer::IDevice::Ptr BareMetalDeviceConfigurationWizard::device() const { - auto dev = BareMetalDevice::create(m_setupPage->configurationName(), - Constants::BareMetalOsType); + auto dev = BareMetalDevice::create(m_setupPage->configurationName()); + dev->setType(Constants::BareMetalOsType); dev->setMachineType(ProjectExplorer::IDevice::Hardware); dev->setGdbServerProviderId(m_setupPage->gdbServerProviderId()); return dev; diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp index 12a4f5f8914..c7b3fa8d0fd 100644 --- a/src/plugins/ios/iosdevice.cpp +++ b/src/plugins/ios/iosdevice.cpp @@ -79,11 +79,10 @@ namespace Ios { namespace Internal { IosDevice::IosDevice() - : IDevice(Core::Id(Constants::IOS_DEVICE_TYPE), - IDevice::AutoDetected, - Constants::IOS_DEVICE_ID), + : IDevice(IDevice::AutoDetected, Constants::IOS_DEVICE_ID), m_lastPort(Constants::IOS_DEVICE_PORT_START) { + setType(Constants::IOS_DEVICE_TYPE); setDisplayName(IosDevice::name()); setMachineType(IDevice::Hardware); setDeviceState(DeviceDisconnected); @@ -96,11 +95,10 @@ IosDevice::IosDevice() IosDevice::IosDevice(const IosDevice &other) = default; IosDevice::IosDevice(const QString &uid) - : IDevice(Core::Id(Constants::IOS_DEVICE_TYPE), - IDevice::AutoDetected, - Core::Id(Constants::IOS_DEVICE_ID).withSuffix(uid)), + : IDevice(IDevice::AutoDetected, Core::Id(Constants::IOS_DEVICE_ID).withSuffix(uid)), m_lastPort(Constants::IOS_DEVICE_PORT_START) { + setType(Constants::IOS_DEVICE_TYPE); setDisplayName(IosDevice::name()); setMachineType(IDevice::Hardware); setDeviceState(DeviceDisconnected); diff --git a/src/plugins/ios/iossimulator.cpp b/src/plugins/ios/iossimulator.cpp index 77da2387487..1e80618e66f 100644 --- a/src/plugins/ios/iossimulator.cpp +++ b/src/plugins/ios/iossimulator.cpp @@ -45,22 +45,20 @@ static const QLatin1String iosDeviceTypeTypeKey = QLatin1String("type"); static const QLatin1String iosDeviceTypeIdentifierKey = QLatin1String("identifier"); IosSimulator::IosSimulator(Core::Id id) - : IDevice(Core::Id(Constants::IOS_SIMULATOR_TYPE), - IDevice::AutoDetected, - id), + : IDevice(IDevice::AutoDetected, id), m_lastPort(Constants::IOS_SIMULATOR_PORT_START) { + setType(Constants::IOS_SIMULATOR_TYPE); setMachineType(IDevice::Emulator); setDisplayName(QCoreApplication::translate("Ios::Internal::IosSimulator", "iOS Simulator")); setDeviceState(DeviceReadyToUse); } IosSimulator::IosSimulator() - : IDevice(Core::Id(Constants::IOS_SIMULATOR_TYPE), - IDevice::AutoDetected, - Core::Id(Constants::IOS_SIMULATOR_DEVICE_ID)), + : IDevice(IDevice::AutoDetected, Core::Id(Constants::IOS_SIMULATOR_DEVICE_ID)), m_lastPort(Constants::IOS_SIMULATOR_PORT_START) { + setType(Constants::IOS_SIMULATOR_TYPE); setMachineType(IDevice::Emulator); setDisplayName(QCoreApplication::translate("Ios::Internal::IosSimulator", "iOS Simulator")); setDeviceState(DeviceReadyToUse); diff --git a/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp b/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp index ba084b156cd..482af581044 100644 --- a/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp +++ b/src/plugins/projectexplorer/devicesupport/desktopdevice.cpp @@ -48,10 +48,9 @@ using namespace Utils; namespace ProjectExplorer { -DesktopDevice::DesktopDevice() : IDevice(Core::Id(DESKTOP_DEVICE_TYPE), - IDevice::AutoDetected, - Core::Id(DESKTOP_DEVICE_ID)) +DesktopDevice::DesktopDevice() : IDevice(IDevice::AutoDetected, Core::Id(DESKTOP_DEVICE_ID)) { + setType(DESKTOP_DEVICE_TYPE); setDisplayName(QCoreApplication::translate("ProjectExplorer::DesktopDevice", "Local PC")); setDeviceState(IDevice::DeviceStateUnknown); setMachineType(IDevice::Hardware); diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp index e3ddf292e84..16aaa5c8db9 100644 --- a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp @@ -406,8 +406,9 @@ class TestDevice : public IDevice { public: TestDevice() - : IDevice(testTypeId(), AutoDetected, Core::Id::fromString(QUuid::createUuid().toString())) + : IDevice(AutoDetected, Core::Id::fromString(QUuid::createUuid().toString())) { + setType(testTypeId()); setMachineType(Hardware); } diff --git a/src/plugins/projectexplorer/devicesupport/idevice.cpp b/src/plugins/projectexplorer/devicesupport/idevice.cpp index 801b02ecd76..5fd6edf5595 100644 --- a/src/plugins/projectexplorer/devicesupport/idevice.cpp +++ b/src/plugins/projectexplorer/devicesupport/idevice.cpp @@ -161,10 +161,9 @@ IDevice::IDevice() : d(new Internal::IDevicePrivate) { } -IDevice::IDevice(Core::Id type, Origin origin, Core::Id id) +IDevice::IDevice(Origin origin, Core::Id id) : d(std::make_unique()) { - d->type = type; d->origin = origin; QTC_CHECK(origin == ManuallyAdded || id.isValid()); d->id = id.isValid() ? id : newId(); @@ -213,6 +212,11 @@ Core::Id IDevice::type() const return d->type; } +void IDevice::setType(Core::Id type) +{ + d->type = type; +} + /*! Returns \c true if the device has been added via some sort of auto-detection mechanism. Devices that are not auto-detected can only ever be created diff --git a/src/plugins/projectexplorer/devicesupport/idevice.h b/src/plugins/projectexplorer/devicesupport/idevice.h index dc22cc2b89f..45cbb05c920 100644 --- a/src/plugins/projectexplorer/devicesupport/idevice.h +++ b/src/plugins/projectexplorer/devicesupport/idevice.h @@ -146,6 +146,8 @@ public: virtual DeviceInfo deviceInformation() const; Core::Id type() const; + void setType(Core::Id type); + bool isAutoDetected() const; Core::Id id() const; @@ -216,7 +218,7 @@ public: protected: IDevice(); - IDevice(Core::Id type, Origin origin, Core::Id id = Core::Id()); + IDevice(Origin origin, Core::Id id = Core::Id()); IDevice(const IDevice &other); private: diff --git a/src/plugins/qnx/qnxdevice.cpp b/src/plugins/qnx/qnxdevice.cpp index 9b4b31bd6c8..1fb587b45d6 100644 --- a/src/plugins/qnx/qnxdevice.cpp +++ b/src/plugins/qnx/qnxdevice.cpp @@ -82,8 +82,8 @@ QnxDevice::QnxDevice() init(); } -QnxDevice::QnxDevice(const QString &name, Core::Id type, Origin origin, Core::Id id) - : RemoteLinux::LinuxDevice(name, type, origin, id) +QnxDevice::QnxDevice(const QString &name, Origin origin, Core::Id id) + : RemoteLinux::LinuxDevice(name, origin, id) { init(); } @@ -103,9 +103,9 @@ QnxDevice::Ptr QnxDevice::create() return Ptr(new QnxDevice); } -QnxDevice::Ptr QnxDevice::create(const QString &name, Core::Id type, Origin origin, Core::Id id) +QnxDevice::Ptr QnxDevice::create(const QString &name, Origin origin, Core::Id id) { - return Ptr(new QnxDevice(name, type, origin, id)); + return Ptr(new QnxDevice(name, origin, id)); } QString QnxDevice::displayType() const diff --git a/src/plugins/qnx/qnxdevice.h b/src/plugins/qnx/qnxdevice.h index e0952b4aee6..72f9b5a2b33 100644 --- a/src/plugins/qnx/qnxdevice.h +++ b/src/plugins/qnx/qnxdevice.h @@ -40,7 +40,7 @@ public: using ConstPtr = QSharedPointer; static Ptr create(); - static Ptr create(const QString &name, Core::Id type, + static Ptr create(const QString &name, Origin origin = ManuallyAdded, Core::Id id = Core::Id()); ProjectExplorer::IDevice::Ptr clone() const override; @@ -61,7 +61,7 @@ public: protected: QnxDevice(); - QnxDevice(const QString &name, Core::Id type, + QnxDevice(const QString &name, Origin origin, Core::Id id); QnxDevice(const QnxDevice &other); diff --git a/src/plugins/qnx/qnxdevicewizard.cpp b/src/plugins/qnx/qnxdevicewizard.cpp index 4a163239db8..e4aa8c66642 100644 --- a/src/plugins/qnx/qnxdevicewizard.cpp +++ b/src/plugins/qnx/qnxdevicewizard.cpp @@ -52,7 +52,8 @@ QnxDeviceWizard::QnxDeviceWizard(QWidget *parent) : m_finalPage->setCommitPage(true); QSsh::SshConnectionParameters sshParams; sshParams.timeout = 10; - m_device = QnxDevice::create(tr("QNX Device"), Core::Id(Constants::QNX_QNX_OS_TYPE)); + m_device = QnxDevice::create(tr("QNX Device")); + m_device->setType(Constants::QNX_QNX_OS_TYPE); m_device->setMachineType(IDevice::Hardware); m_device->setSshParameters(sshParams); m_device->setFreePorts(Utils::PortList::fromString(QLatin1String("10000-10100"))); diff --git a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizard.cpp b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizard.cpp index 74b70d19301..9cce40fdd75 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizard.cpp +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizard.cpp @@ -62,8 +62,8 @@ GenericLinuxDeviceConfigurationWizard::GenericLinuxDeviceConfigurationWizard(QWi setPage(Internal::KeyDeploymentPageId, &d->keyDeploymentPage); setPage(Internal::FinalPageId, &d->finalPage); d->finalPage.setCommitPage(true); - d->device = LinuxDevice::create(tr("Generic Linux Device"), - Core::Id(Constants::GenericLinuxOsType)); + d->device = LinuxDevice::create(tr("Generic Linux Device")); + d->device->setType(Constants::GenericLinuxOsType); d->device->setMachineType(IDevice::Hardware); d->device->setFreePorts(Utils::PortList::fromString(QLatin1String("10000-10100"))); SshConnectionParameters sshParams; diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index e2ffe74f0c1..9645d4c6742 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -166,9 +166,9 @@ class LinuxPortsGatheringMethod : public PortsGatheringMethod }; -LinuxDevice::Ptr LinuxDevice::create(const QString &name, Core::Id type, Origin origin, Core::Id id) +LinuxDevice::Ptr LinuxDevice::create(const QString &name, Origin origin, Core::Id id) { - return Ptr(new LinuxDevice(name, type, origin, id)); + return Ptr(new LinuxDevice(name, origin, id)); } QString LinuxDevice::displayType() const @@ -186,8 +186,8 @@ Utils::OsType LinuxDevice::osType() const return Utils::OsTypeLinux; } -LinuxDevice::LinuxDevice(const QString &name, Core::Id type, Origin origin, Core::Id id) - : IDevice(type, origin, id) +LinuxDevice::LinuxDevice(const QString &name, Origin origin, Core::Id id) + : IDevice(origin, id) { setDisplayName(name); init(); diff --git a/src/plugins/remotelinux/linuxdevice.h b/src/plugins/remotelinux/linuxdevice.h index d7fb1d244c0..7c07975e0cd 100644 --- a/src/plugins/remotelinux/linuxdevice.h +++ b/src/plugins/remotelinux/linuxdevice.h @@ -43,7 +43,7 @@ public: using ConstPtr = QSharedPointer; static Ptr create(); - static Ptr create(const QString &name, Core::Id type, + static Ptr create(const QString &name, Origin origin = ManuallyAdded, Core::Id id = Core::Id()); QString displayType() const override; @@ -67,7 +67,7 @@ public: protected: LinuxDevice() { init(); } - LinuxDevice(const QString &name, Core::Id type, Origin origin, Core::Id id); + LinuxDevice(const QString &name, Origin origin, Core::Id id); LinuxDevice(const LinuxDevice &other); private: diff --git a/src/plugins/winrt/winrtdevice.cpp b/src/plugins/winrt/winrtdevice.cpp index 218e049b1cc..bbc87d3ced5 100644 --- a/src/plugins/winrt/winrtdevice.cpp +++ b/src/plugins/winrt/winrtdevice.cpp @@ -47,8 +47,8 @@ WinRtDevice::WinRtDevice() initFreePorts(); } -WinRtDevice::WinRtDevice(Core::Id type, Core::Id internalId, int deviceId) - : IDevice(type, AutoDetected, internalId), m_deviceId(deviceId) +WinRtDevice::WinRtDevice(Core::Id internalId, int deviceId) + : IDevice(AutoDetected, internalId), m_deviceId(deviceId) { initFreePorts(); } diff --git a/src/plugins/winrt/winrtdevice.h b/src/plugins/winrt/winrtdevice.h index 314a0926f78..8332ee7a48d 100644 --- a/src/plugins/winrt/winrtdevice.h +++ b/src/plugins/winrt/winrtdevice.h @@ -50,7 +50,7 @@ public: protected: WinRtDevice(); - WinRtDevice(Core::Id type, Core::Id internalId, int deviceId); + WinRtDevice(Core::Id internalId, int deviceId); WinRtDevice(const WinRtDevice &other); private: diff --git a/src/plugins/winrt/winrtdevicefactory.cpp b/src/plugins/winrt/winrtdevicefactory.cpp index 3c2bb107d49..61895c9c51a 100644 --- a/src/plugins/winrt/winrtdevicefactory.cpp +++ b/src/plugins/winrt/winrtdevicefactory.cpp @@ -281,7 +281,8 @@ void WinRtDeviceFactory::parseRunnerOutput(const QByteArray &output) const continue; } - WinRtDevice *device = new WinRtDevice(deviceType, internalId, deviceId); + WinRtDevice *device = new WinRtDevice(internalId, deviceId); + device->setType(deviceType); device->setMachineType(machineType); device->setDisplayName(name); deviceManager->addDevice(ProjectExplorer::IDevice::ConstPtr(device));