From f2411aa290a46889e35db30bb108340c844fa3a5 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 5 Oct 2018 12:57:04 +0200 Subject: [PATCH] ProjectExplorer: Move common bits of IDeviceFactory::canRestore ... to the single user. As effect, all but the ios re-implementation are not needed. Change-Id: I3c8b8c5d4ab3c8eac70c0bd534c5f1b33f8a3063 Reviewed-by: Christian Kandeler --- src/plugins/android/androiddevicefactory.cpp | 5 ----- src/plugins/android/androiddevicefactory.h | 1 - .../baremetal/baremetaldeviceconfigurationfactory.cpp | 5 ----- src/plugins/baremetal/baremetaldeviceconfigurationfactory.h | 1 - src/plugins/ios/iosdevicefactory.cpp | 2 -- src/plugins/ios/iossimulatorfactory.cpp | 5 ----- src/plugins/ios/iossimulatorfactory.h | 1 - .../projectexplorer/devicesupport/desktopdevicefactory.cpp | 5 ----- .../projectexplorer/devicesupport/desktopdevicefactory.h | 1 - src/plugins/projectexplorer/devicesupport/devicemanager.cpp | 5 +++-- src/plugins/projectexplorer/devicesupport/idevicefactory.h | 2 +- src/plugins/qnx/qnxdevicefactory.cpp | 5 ----- src/plugins/qnx/qnxdevicefactory.h | 2 -- .../remotelinux/genericlinuxdeviceconfigurationfactory.cpp | 5 ----- .../remotelinux/genericlinuxdeviceconfigurationfactory.h | 1 - src/plugins/winrt/winrtdevicefactory.cpp | 5 ----- src/plugins/winrt/winrtdevicefactory.h | 1 - 17 files changed, 4 insertions(+), 48 deletions(-) diff --git a/src/plugins/android/androiddevicefactory.cpp b/src/plugins/android/androiddevicefactory.cpp index dc94a8fb151..2d82b7b39e2 100644 --- a/src/plugins/android/androiddevicefactory.cpp +++ b/src/plugins/android/androiddevicefactory.cpp @@ -67,11 +67,6 @@ ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::create() const return ProjectExplorer::IDevice::Ptr(); } -bool AndroidDeviceFactory::canRestore(const QVariantMap &map) const -{ - return ProjectExplorer::IDevice::typeFromMap(map) == deviceType(); -} - ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::restore(const QVariantMap &map) const { Q_UNUSED(map) diff --git a/src/plugins/android/androiddevicefactory.h b/src/plugins/android/androiddevicefactory.h index 4eb512f57c8..efd9ee94b65 100644 --- a/src/plugins/android/androiddevicefactory.h +++ b/src/plugins/android/androiddevicefactory.h @@ -41,7 +41,6 @@ public: bool canCreate() const override; ProjectExplorer::IDevice::Ptr create() const override; - bool canRestore(const QVariantMap &map) const override; ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override; }; diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationfactory.cpp b/src/plugins/baremetal/baremetaldeviceconfigurationfactory.cpp index 1965f28c413..30747f6c7b8 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationfactory.cpp +++ b/src/plugins/baremetal/baremetaldeviceconfigurationfactory.cpp @@ -68,11 +68,6 @@ IDevice::Ptr BareMetalDeviceConfigurationFactory::create() const return wizard.device(); } -bool BareMetalDeviceConfigurationFactory::canRestore(const QVariantMap &map) const -{ - return IDevice::typeFromMap(map) == deviceType(); -} - IDevice::Ptr BareMetalDeviceConfigurationFactory::restore(const QVariantMap &map) const { QTC_ASSERT(canRestore(map), return IDevice::Ptr()); diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h b/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h index 139945a35f7..24d87db8926 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h +++ b/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h @@ -42,7 +42,6 @@ public: QIcon icon() const override; ProjectExplorer::IDevice::Ptr create() const override; - bool canRestore(const QVariantMap &map) const override; ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override; }; diff --git a/src/plugins/ios/iosdevicefactory.cpp b/src/plugins/ios/iosdevicefactory.cpp index e77e91c78fd..a7c70d2477f 100644 --- a/src/plugins/ios/iosdevicefactory.cpp +++ b/src/plugins/ios/iosdevicefactory.cpp @@ -69,8 +69,6 @@ ProjectExplorer::IDevice::Ptr IosDeviceFactory::create() const bool IosDeviceFactory::canRestore(const QVariantMap &map) const { - if (ProjectExplorer::IDevice::typeFromMap(map) != Constants::IOS_DEVICE_TYPE) - return false; QVariantMap vMap = map.value(QLatin1String(Constants::EXTRA_INFO_KEY)).toMap(); if (vMap.isEmpty() || vMap.value(QLatin1String("deviceName")).toString() == QLatin1String("*unknown*")) diff --git a/src/plugins/ios/iossimulatorfactory.cpp b/src/plugins/ios/iossimulatorfactory.cpp index d745fa8a774..393972b20b2 100644 --- a/src/plugins/ios/iossimulatorfactory.cpp +++ b/src/plugins/ios/iossimulatorfactory.cpp @@ -67,11 +67,6 @@ ProjectExplorer::IDevice::Ptr IosSimulatorFactory::create() const return ProjectExplorer::IDevice::Ptr(); } -bool IosSimulatorFactory::canRestore(const QVariantMap &map) const -{ - return ProjectExplorer::IDevice::typeFromMap(map) == deviceType(); -} - ProjectExplorer::IDevice::Ptr IosSimulatorFactory::restore(const QVariantMap &map) const { QTC_ASSERT(canRestore(map), return ProjectExplorer::IDevice::Ptr()); diff --git a/src/plugins/ios/iossimulatorfactory.h b/src/plugins/ios/iossimulatorfactory.h index 838fcd9163d..dc32f711b22 100644 --- a/src/plugins/ios/iossimulatorfactory.h +++ b/src/plugins/ios/iossimulatorfactory.h @@ -41,7 +41,6 @@ public: bool canCreate() const override; ProjectExplorer::IDevice::Ptr create() const override; - bool canRestore(const QVariantMap &map) const override; ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override; }; diff --git a/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.cpp b/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.cpp index 5342af482ed..98832edda7e 100644 --- a/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.cpp +++ b/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.cpp @@ -67,11 +67,6 @@ IDevice::Ptr DesktopDeviceFactory::create() const return IDevice::Ptr(); } -bool DesktopDeviceFactory::canRestore(const QVariantMap &map) const -{ - return IDevice::idFromMap(map) == deviceType(); -} - IDevice::Ptr DesktopDeviceFactory::restore(const QVariantMap &map) const { QTC_ASSERT(canRestore(map), return ProjectExplorer::IDevice::Ptr()); diff --git a/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h b/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h index 9dc00305b64..9bb46af46ed 100644 --- a/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h +++ b/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h @@ -42,7 +42,6 @@ public: bool canCreate() const override; IDevice::Ptr create() const override; - bool canRestore(const QVariantMap &map) const override; IDevice::Ptr restore(const QVariantMap &map) const override; }; diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp index e6d78e46517..d2f00e343b6 100644 --- a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp @@ -337,9 +337,10 @@ void DeviceManager::setDefaultDevice(Core::Id id) const IDeviceFactory *DeviceManager::restoreFactory(const QVariantMap &map) { + const Core::Id deviceType = IDevice::typeFromMap(map); IDeviceFactory *factory = Utils::findOrDefault(IDeviceFactory::allDeviceFactories(), - [&map](IDeviceFactory *factory) { - return factory->canRestore(map); + [&map, deviceType](IDeviceFactory *factory) { + return factory->canRestore(map) && factory->deviceType() == deviceType; }); if (!factory) diff --git a/src/plugins/projectexplorer/devicesupport/idevicefactory.h b/src/plugins/projectexplorer/devicesupport/idevicefactory.h index e82f6565832..b897175ebbd 100644 --- a/src/plugins/projectexplorer/devicesupport/idevicefactory.h +++ b/src/plugins/projectexplorer/devicesupport/idevicefactory.h @@ -53,7 +53,7 @@ public: virtual bool canCreate() const; virtual IDevice::Ptr create() const = 0; - virtual bool canRestore(const QVariantMap &map) const = 0; + virtual bool canRestore(const QVariantMap &) const { return true; } virtual IDevice::Ptr restore(const QVariantMap &map) const = 0; static IDeviceFactory *find(Core::Id type); diff --git a/src/plugins/qnx/qnxdevicefactory.cpp b/src/plugins/qnx/qnxdevicefactory.cpp index 6299e98fd26..9bdcf247fc1 100644 --- a/src/plugins/qnx/qnxdevicefactory.cpp +++ b/src/plugins/qnx/qnxdevicefactory.cpp @@ -71,11 +71,6 @@ ProjectExplorer::IDevice::Ptr QnxDeviceFactory::create() const return wizard.device(); } -bool QnxDeviceFactory::canRestore(const QVariantMap &map) const -{ - return ProjectExplorer::IDevice::typeFromMap(map) == deviceType(); -} - ProjectExplorer::IDevice::Ptr QnxDeviceFactory::restore(const QVariantMap &map) const { QTC_ASSERT(canRestore(map), return QnxDevice::Ptr()); diff --git a/src/plugins/qnx/qnxdevicefactory.h b/src/plugins/qnx/qnxdevicefactory.h index 24d5093fb6a..051be5ef81f 100644 --- a/src/plugins/qnx/qnxdevicefactory.h +++ b/src/plugins/qnx/qnxdevicefactory.h @@ -42,8 +42,6 @@ public: bool canCreate() const override; ProjectExplorer::IDevice::Ptr create() const override; - - bool canRestore(const QVariantMap &map) const override; ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override; static Core::Id deviceType(); diff --git a/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.cpp b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.cpp index 357a4020726..8473096a40c 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.cpp +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.cpp @@ -62,11 +62,6 @@ IDevice::Ptr GenericLinuxDeviceConfigurationFactory::create() const return wizard.device(); } -bool GenericLinuxDeviceConfigurationFactory::canRestore(const QVariantMap &map) const -{ - return IDevice::typeFromMap(map) == deviceType(); -} - IDevice::Ptr GenericLinuxDeviceConfigurationFactory::restore(const QVariantMap &map) const { QTC_ASSERT(canRestore(map), return IDevice::Ptr()); diff --git a/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h index 7c6e94ac3a3..05cc11c2f22 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h @@ -43,7 +43,6 @@ public: QIcon icon() const override; ProjectExplorer::IDevice::Ptr create() const override; - bool canRestore(const QVariantMap &map) const override; ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override; }; diff --git a/src/plugins/winrt/winrtdevicefactory.cpp b/src/plugins/winrt/winrtdevicefactory.cpp index 4c9277cce7c..66486c68b0d 100644 --- a/src/plugins/winrt/winrtdevicefactory.cpp +++ b/src/plugins/winrt/winrtdevicefactory.cpp @@ -81,11 +81,6 @@ IDevice::Ptr WinRtDeviceFactory::create() const return IDevice::Ptr(); } -bool WinRtDeviceFactory::canRestore(const QVariantMap &map) const -{ - return IDevice::typeFromMap(map) == deviceType(); -} - IDevice::Ptr WinRtDeviceFactory::restore(const QVariantMap &map) const { const IDevice::Ptr device(new WinRtDevice); diff --git a/src/plugins/winrt/winrtdevicefactory.h b/src/plugins/winrt/winrtdevicefactory.h index f32bd0c8377..0ac9c649780 100644 --- a/src/plugins/winrt/winrtdevicefactory.h +++ b/src/plugins/winrt/winrtdevicefactory.h @@ -40,7 +40,6 @@ public: QIcon icon() const override; bool canCreate() const override { return false; } ProjectExplorer::IDevice::Ptr create() const override; - bool canRestore(const QVariantMap &map) const override; ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override; void autoDetect();