diff --git a/src/plugins/android/androiddevicefactory.cpp b/src/plugins/android/androiddevicefactory.cpp index 2eb8726fa4d..dc94a8fb151 100644 --- a/src/plugins/android/androiddevicefactory.cpp +++ b/src/plugins/android/androiddevicefactory.cpp @@ -36,25 +36,18 @@ namespace Android { namespace Internal { AndroidDeviceFactory::AndroidDeviceFactory() + : ProjectExplorer::IDeviceFactory(Constants::ANDROID_DEVICE_TYPE) { setObjectName(QLatin1String("AndroidDeviceFactory")); } -QString AndroidDeviceFactory::displayNameForId(Core::Id type) const +QString AndroidDeviceFactory::displayName() const { - if (type == Constants::ANDROID_DEVICE_TYPE) - return tr("Android Device"); - return QString(); + return tr("Android Device"); } -QList AndroidDeviceFactory::availableCreationIds() const +QIcon AndroidDeviceFactory::icon() const { - return QList() << Core::Id(Constants::ANDROID_DEVICE_TYPE); -} - -QIcon AndroidDeviceFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) using namespace Utils; static const QIcon icon = Icon::combinedIcon({Icon({{":/android/images/androiddevicesmall.png", @@ -69,15 +62,14 @@ bool AndroidDeviceFactory::canCreate() const return false; } -ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::create(Core::Id id) const +ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::create() const { - Q_UNUSED(id) return ProjectExplorer::IDevice::Ptr(); } bool AndroidDeviceFactory::canRestore(const QVariantMap &map) const { - return ProjectExplorer::IDevice::typeFromMap(map) == Constants::ANDROID_DEVICE_TYPE; + return ProjectExplorer::IDevice::typeFromMap(map) == deviceType(); } ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::restore(const QVariantMap &map) const diff --git a/src/plugins/android/androiddevicefactory.h b/src/plugins/android/androiddevicefactory.h index 781c6ae1f55..4eb512f57c8 100644 --- a/src/plugins/android/androiddevicefactory.h +++ b/src/plugins/android/androiddevicefactory.h @@ -36,12 +36,11 @@ class AndroidDeviceFactory : public ProjectExplorer::IDeviceFactory public: AndroidDeviceFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + QString displayName() const override; + QIcon icon() const override; bool canCreate() const override; - ProjectExplorer::IDevice::Ptr create(Core::Id id) 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 6272450fdb3..1965f28c413 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationfactory.cpp +++ b/src/plugins/baremetal/baremetaldeviceconfigurationfactory.cpp @@ -40,22 +40,17 @@ namespace BareMetal { namespace Internal { BareMetalDeviceConfigurationFactory::BareMetalDeviceConfigurationFactory() + : IDeviceFactory(Constants::BareMetalOsType) { } -QString BareMetalDeviceConfigurationFactory::displayNameForId(Core::Id type) const +QString BareMetalDeviceConfigurationFactory::displayName() const { - return type == Constants::BareMetalOsType ? tr("Bare Metal Device") : QString(); + return tr("Bare Metal Device"); } -QList BareMetalDeviceConfigurationFactory::availableCreationIds() const +QIcon BareMetalDeviceConfigurationFactory::icon() const { - return QList() << Core::Id(Constants::BareMetalOsType); -} - -QIcon BareMetalDeviceConfigurationFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) using namespace Utils; static const QIcon icon = Icon::combinedIcon({Icon({{":/baremetal/images/baremetaldevicesmall.png", @@ -65,9 +60,8 @@ QIcon BareMetalDeviceConfigurationFactory::iconForId(Core::Id type) const return icon; } -IDevice::Ptr BareMetalDeviceConfigurationFactory::create(Core::Id id) const +IDevice::Ptr BareMetalDeviceConfigurationFactory::create() const { - QTC_ASSERT(id == Constants::BareMetalOsType, return IDevice::Ptr()); BareMetalDeviceConfigurationWizard wizard; if (wizard.exec() != QDialog::Accepted) return IDevice::Ptr(); @@ -76,7 +70,7 @@ IDevice::Ptr BareMetalDeviceConfigurationFactory::create(Core::Id id) const bool BareMetalDeviceConfigurationFactory::canRestore(const QVariantMap &map) const { - return IDevice::typeFromMap(map) == Constants::BareMetalOsType; + return IDevice::typeFromMap(map) == deviceType(); } IDevice::Ptr BareMetalDeviceConfigurationFactory::restore(const QVariantMap &map) const diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h b/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h index c4f0b57e604..139945a35f7 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h +++ b/src/plugins/baremetal/baremetaldeviceconfigurationfactory.h @@ -38,11 +38,10 @@ class BareMetalDeviceConfigurationFactory public: BareMetalDeviceConfigurationFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + QString displayName() const override; + QIcon icon() const override; - ProjectExplorer::IDevice::Ptr create(Core::Id id) 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 c3eaa1f840f..e77e91c78fd 100644 --- a/src/plugins/ios/iosdevicefactory.cpp +++ b/src/plugins/ios/iosdevicefactory.cpp @@ -36,23 +36,18 @@ namespace Ios { namespace Internal { IosDeviceFactory::IosDeviceFactory() + : ProjectExplorer::IDeviceFactory(Constants::IOS_DEVICE_ID) { setObjectName(QLatin1String("IosDeviceFactory")); } -QString IosDeviceFactory::displayNameForId(Core::Id type) const +QString IosDeviceFactory::displayName() const { - return type == Constants::IOS_DEVICE_TYPE ? IosDevice::name() : QString(); + return IosDevice::name(); } -QList IosDeviceFactory::availableCreationIds() const +QIcon IosDeviceFactory::icon() const { - return QList() << Core::Id(Constants::IOS_DEVICE_TYPE); -} - -QIcon IosDeviceFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) using namespace Utils; static const QIcon icon = Icon::combinedIcon({Icon({{":/ios/images/iosdevicesmall.png", @@ -67,9 +62,8 @@ bool IosDeviceFactory::canCreate() const return false; } -ProjectExplorer::IDevice::Ptr IosDeviceFactory::create(Core::Id id) const +ProjectExplorer::IDevice::Ptr IosDeviceFactory::create() const { - Q_UNUSED(id) return ProjectExplorer::IDevice::Ptr(); } diff --git a/src/plugins/ios/iosdevicefactory.h b/src/plugins/ios/iosdevicefactory.h index 0b7004d6fce..9bb1db7b77e 100644 --- a/src/plugins/ios/iosdevicefactory.h +++ b/src/plugins/ios/iosdevicefactory.h @@ -40,12 +40,11 @@ class IosDeviceFactory : public ProjectExplorer::IDeviceFactory public: IosDeviceFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + QString displayName() const override; + QIcon icon() const override; bool canCreate() const override; - ProjectExplorer::IDevice::Ptr create(Core::Id id) 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/iossimulatorfactory.cpp b/src/plugins/ios/iossimulatorfactory.cpp index bede066b759..d745fa8a774 100644 --- a/src/plugins/ios/iossimulatorfactory.cpp +++ b/src/plugins/ios/iossimulatorfactory.cpp @@ -36,25 +36,18 @@ namespace Ios { namespace Internal { IosSimulatorFactory::IosSimulatorFactory() + : ProjectExplorer::IDeviceFactory(Constants::IOS_SIMULATOR_TYPE) { setObjectName(QLatin1String("IosSimulatorFactory")); } -QString IosSimulatorFactory::displayNameForId(Core::Id type) const +QString IosSimulatorFactory::displayName() const { - if (type == Constants::IOS_SIMULATOR_TYPE) - return tr("iOS Simulator"); - return QString(); + return tr("iOS Simulator"); } -QList IosSimulatorFactory::availableCreationIds() const +QIcon IosSimulatorFactory::icon() const { - return QList() << Core::Id(Constants::IOS_SIMULATOR_TYPE); -} - -QIcon IosSimulatorFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) using namespace Utils; static const QIcon icon = Icon::combinedIcon({Icon({{":/ios/images/iosdevicesmall.png", @@ -69,15 +62,14 @@ bool IosSimulatorFactory::canCreate() const return false; } -ProjectExplorer::IDevice::Ptr IosSimulatorFactory::create(Core::Id id) const +ProjectExplorer::IDevice::Ptr IosSimulatorFactory::create() const { - Q_UNUSED(id) return ProjectExplorer::IDevice::Ptr(); } bool IosSimulatorFactory::canRestore(const QVariantMap &map) const { - return ProjectExplorer::IDevice::typeFromMap(map) == Constants::IOS_SIMULATOR_TYPE; + return ProjectExplorer::IDevice::typeFromMap(map) == deviceType(); } ProjectExplorer::IDevice::Ptr IosSimulatorFactory::restore(const QVariantMap &map) const diff --git a/src/plugins/ios/iossimulatorfactory.h b/src/plugins/ios/iossimulatorfactory.h index 013695e7859..838fcd9163d 100644 --- a/src/plugins/ios/iossimulatorfactory.h +++ b/src/plugins/ios/iossimulatorfactory.h @@ -36,12 +36,11 @@ class IosSimulatorFactory : public ProjectExplorer::IDeviceFactory public: IosSimulatorFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + QString displayName() const override; + QIcon icon() const override; bool canCreate() const override; - ProjectExplorer::IDevice::Ptr create(Core::Id id) 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 b6060c56cb1..5342af482ed 100644 --- a/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.cpp +++ b/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.cpp @@ -38,24 +38,17 @@ namespace ProjectExplorer { namespace Internal { -DesktopDeviceFactory::DesktopDeviceFactory(QObject *parent) : IDeviceFactory(parent) +DesktopDeviceFactory::DesktopDeviceFactory() + : IDeviceFactory(Constants::DESKTOP_DEVICE_TYPE) { } -QString DesktopDeviceFactory::displayNameForId(Core::Id type) const +QString DesktopDeviceFactory::displayName() const { - if (type == Constants::DESKTOP_DEVICE_TYPE) - return tr("Desktop"); - return QString(); + return tr("Desktop"); } -QList DesktopDeviceFactory::availableCreationIds() const +QIcon DesktopDeviceFactory::icon() const { - return QList() << Core::Id(Constants::DESKTOP_DEVICE_TYPE); -} - -QIcon DesktopDeviceFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) static const QIcon icon = Utils::creatorTheme()->flag(Utils::Theme::FlatSideBarIcons) ? Utils::Icon::combinedIcon({Icons::DESKTOP_DEVICE.icon(), @@ -69,15 +62,14 @@ bool DesktopDeviceFactory::canCreate() const return false; } -IDevice::Ptr DesktopDeviceFactory::create(Core::Id id) const +IDevice::Ptr DesktopDeviceFactory::create() const { - Q_UNUSED(id); return IDevice::Ptr(); } bool DesktopDeviceFactory::canRestore(const QVariantMap &map) const { - return IDevice::idFromMap(map) == Constants::DESKTOP_DEVICE_ID; + return IDevice::idFromMap(map) == deviceType(); } IDevice::Ptr DesktopDeviceFactory::restore(const QVariantMap &map) const diff --git a/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h b/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h index c712f12dedc..9dc00305b64 100644 --- a/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h +++ b/src/plugins/projectexplorer/devicesupport/desktopdevicefactory.h @@ -35,14 +35,13 @@ class DesktopDeviceFactory : public IDeviceFactory Q_OBJECT public: - explicit DesktopDeviceFactory(QObject *parent = 0); + DesktopDeviceFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + QString displayName() const override; + QIcon icon() const override; bool canCreate() const override; - IDevice::Ptr create(Core::Id id) 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/devicecheckbuildstep.cpp b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp index f90f9843c2c..4d1e8c894fb 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp @@ -62,7 +62,7 @@ bool DeviceCheckBuildStep::init(QList &earlierSteps) return false; } - IDevice::Ptr newDevice = factory->create(deviceTypeId); + IDevice::Ptr newDevice = factory->create(); if (newDevice.isNull()) { emit addOutput(tr("No device configured."), BuildStep::OutputFormat::ErrorMessage); return false; diff --git a/src/plugins/projectexplorer/devicesupport/devicefactoryselectiondialog.cpp b/src/plugins/projectexplorer/devicesupport/devicefactoryselectiondialog.cpp index 86afd635ded..55915d32897 100644 --- a/src/plugins/projectexplorer/devicesupport/devicefactoryselectiondialog.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicefactoryselectiondialog.cpp @@ -45,11 +45,9 @@ DeviceFactorySelectionDialog::DeviceFactorySelectionDialog(QWidget *parent) : for (const IDeviceFactory * const factory : IDeviceFactory::allDeviceFactories()) { if (!factory->canCreate()) continue; - foreach (Core::Id id, factory->availableCreationIds()) { - QListWidgetItem *item = new QListWidgetItem(factory->displayNameForId(id)); - item->setData(Qt::UserRole, QVariant::fromValue(id)); - ui->listWidget->addItem(item); - } + QListWidgetItem *item = new QListWidgetItem(factory->displayName()); + item->setData(Qt::UserRole, QVariant::fromValue(factory->deviceType())); + ui->listWidget->addItem(item); } connect(ui->listWidget, &QListWidget::itemSelectionChanged, diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp index 117ba780430..0d5c528b665 100644 --- a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp @@ -147,7 +147,7 @@ void DeviceSettingsWidget::addDevice() IDeviceFactory *factory = IDeviceFactory::find(toCreate); if (!factory) return; - IDevice::Ptr device = factory->create(toCreate); + IDevice::Ptr device = factory->create(); if (device.isNull()) return; diff --git a/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp b/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp index 8b02da344e1..4addf691666 100644 --- a/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp +++ b/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp @@ -80,7 +80,7 @@ namespace ProjectExplorer { bool IDeviceFactory::canCreate() const { - return !availableCreationIds().isEmpty(); + return true; } static QList g_deviceFactories; @@ -89,11 +89,12 @@ IDeviceFactory *IDeviceFactory::find(Core::Id type) { return Utils::findOrDefault(g_deviceFactories, [&type](IDeviceFactory *factory) { - return factory->availableCreationIds().contains(type); + return factory->deviceType() == type; }); } -IDeviceFactory::IDeviceFactory(QObject *parent) : QObject(parent) +IDeviceFactory::IDeviceFactory(Core::Id deviceType) + : m_deviceType(deviceType) { g_deviceFactories.append(this); } diff --git a/src/plugins/projectexplorer/devicesupport/idevicefactory.h b/src/plugins/projectexplorer/devicesupport/idevicefactory.h index 22f46d50db0..e82f6565832 100644 --- a/src/plugins/projectexplorer/devicesupport/idevicefactory.h +++ b/src/plugins/projectexplorer/devicesupport/idevicefactory.h @@ -47,22 +47,23 @@ public: ~IDeviceFactory() override; static const QList allDeviceFactories(); - virtual QString displayNameForId(Core::Id type) const = 0; - - virtual QList availableCreationIds() const = 0; - - virtual QIcon iconForId(Core::Id type) const = 0; + virtual QString displayName() const = 0; + virtual QIcon icon() const = 0; virtual bool canCreate() const; - virtual IDevice::Ptr create(Core::Id id) const = 0; + virtual IDevice::Ptr create() const = 0; virtual bool canRestore(const QVariantMap &map) const = 0; virtual IDevice::Ptr restore(const QVariantMap &map) const = 0; static IDeviceFactory *find(Core::Id type); + Core::Id deviceType() const { return m_deviceType; } protected: - explicit IDeviceFactory(QObject *parent = nullptr); + explicit IDeviceFactory(Core::Id deviceType); + +private: + const Core::Id m_deviceType; }; } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index 37d71a2aff4..e0f3939bf35 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -356,9 +356,9 @@ static QIcon iconForDeviceType(Core::Id deviceType) { const IDeviceFactory *factory = Utils::findOrDefault(IDeviceFactory::allDeviceFactories(), [&deviceType](const IDeviceFactory *factory) { - return factory->availableCreationIds().contains(deviceType); + return factory->deviceType() == deviceType; }); - return factory ? factory->iconForId(deviceType) : QIcon(); + return factory ? factory->icon() : QIcon(); } QIcon Kit::icon() const diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index c5734dd2bc8..fa50794582a 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -586,13 +586,8 @@ KitInformation::ItemList DeviceTypeKitInformation::toUserOutput(const Kit *k) co Core::Id type = deviceTypeId(k); QString typeDisplayName = tr("Unknown device type"); if (type.isValid()) { - IDeviceFactory *factory = Utils::findOrDefault(IDeviceFactory::allDeviceFactories(), - [&type](IDeviceFactory *factory) { - return factory->availableCreationIds().contains(type); - }); - - if (factory) - typeDisplayName = factory->displayNameForId(type); + if (IDeviceFactory *factory = IDeviceFactory::find(type)) + typeDisplayName = factory->displayName(); } return ItemList() << qMakePair(tr("Device type"), typeDisplayName); } diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp index c6fafe74699..d979367f87a 100644 --- a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp @@ -262,10 +262,8 @@ int ToolChainInformationConfigWidget::indexOf(QComboBox *cb, const ToolChain *tc DeviceTypeInformationConfigWidget::DeviceTypeInformationConfigWidget(Kit *workingCopy, const KitInformation *ki) : KitConfigWidget(workingCopy, ki), m_comboBox(new QComboBox) { - for (IDeviceFactory *factory : IDeviceFactory::allDeviceFactories()) { - foreach (Id id, factory->availableCreationIds()) - m_comboBox->addItem(factory->displayNameForId(id), id.toSetting()); - } + for (IDeviceFactory *factory : IDeviceFactory::allDeviceFactories()) + m_comboBox->addItem(factory->displayName(), factory->deviceType().toSetting()); m_comboBox->setToolTip(toolTip()); diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index 9ed48df0bde..090b34765f0 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -515,12 +515,10 @@ QSet KitFeatureProvider::availablePlatforms() const QString KitFeatureProvider::displayNameForPlatform(Id id) const { - for (IDeviceFactory *f : IDeviceFactory::allDeviceFactories()) { - if (f->availableCreationIds().contains(id)) { - const QString dn = f->displayNameForId(id); - QTC_ASSERT(!dn.isEmpty(), continue); - return dn; - } + if (IDeviceFactory *f = IDeviceFactory::find(id)) { + const QString dn = f->displayName(); + QTC_CHECK(!dn.isEmpty()); + return dn; } return QString(); } diff --git a/src/plugins/qnx/qnxdevicefactory.cpp b/src/plugins/qnx/qnxdevicefactory.cpp index 9a44baab09d..6299e98fd26 100644 --- a/src/plugins/qnx/qnxdevicefactory.cpp +++ b/src/plugins/qnx/qnxdevicefactory.cpp @@ -37,25 +37,18 @@ namespace Qnx { namespace Internal { -QnxDeviceFactory::QnxDeviceFactory(QObject *parent) : - ProjectExplorer::IDeviceFactory(parent) +QnxDeviceFactory::QnxDeviceFactory() + : ProjectExplorer::IDeviceFactory(Constants::QNX_QNX_OS_TYPE) { } -QString QnxDeviceFactory::displayNameForId(Core::Id type) const +QString QnxDeviceFactory::displayName() const { - QTC_ASSERT(type == Constants::QNX_QNX_OS_TYPE, return QString()); return tr("QNX Device"); } -QList QnxDeviceFactory::availableCreationIds() const +QIcon QnxDeviceFactory::icon() const { - return {Constants::QNX_QNX_OS_TYPE}; -} - -QIcon QnxDeviceFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) using namespace Utils; static const QIcon icon = Icon::combinedIcon({Icon({{":/qnx/images/qnxdevicesmall.png", @@ -70,9 +63,8 @@ bool QnxDeviceFactory::canCreate() const return true; } -ProjectExplorer::IDevice::Ptr QnxDeviceFactory::create(Core::Id id) const +ProjectExplorer::IDevice::Ptr QnxDeviceFactory::create() const { - Q_UNUSED(id); QnxDeviceWizard wizard; if (wizard.exec() != QDialog::Accepted) return ProjectExplorer::IDevice::Ptr(); @@ -81,7 +73,7 @@ ProjectExplorer::IDevice::Ptr QnxDeviceFactory::create(Core::Id id) const bool QnxDeviceFactory::canRestore(const QVariantMap &map) const { - return ProjectExplorer::IDevice::typeFromMap(map) == Constants::QNX_QNX_OS_TYPE; + return ProjectExplorer::IDevice::typeFromMap(map) == deviceType(); } ProjectExplorer::IDevice::Ptr QnxDeviceFactory::restore(const QVariantMap &map) const diff --git a/src/plugins/qnx/qnxdevicefactory.h b/src/plugins/qnx/qnxdevicefactory.h index d9481980c17..24d5093fb6a 100644 --- a/src/plugins/qnx/qnxdevicefactory.h +++ b/src/plugins/qnx/qnxdevicefactory.h @@ -35,14 +35,13 @@ class QnxDeviceFactory : public ProjectExplorer::IDeviceFactory Q_OBJECT public: - explicit QnxDeviceFactory(QObject *parent = 0); + QnxDeviceFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + QString displayName() const override; + QIcon icon() const override; bool canCreate() const override; - ProjectExplorer::IDevice::Ptr create(Core::Id id) 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/remotelinux/genericlinuxdeviceconfigurationfactory.cpp b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.cpp index 509f6c0ca2d..357a4020726 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.cpp +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.cpp @@ -39,31 +39,23 @@ using namespace ProjectExplorer; namespace RemoteLinux { -GenericLinuxDeviceConfigurationFactory::GenericLinuxDeviceConfigurationFactory(QObject *parent) - : IDeviceFactory(parent) +GenericLinuxDeviceConfigurationFactory::GenericLinuxDeviceConfigurationFactory() + : IDeviceFactory(Constants::GenericLinuxOsType) { } -QString GenericLinuxDeviceConfigurationFactory::displayNameForId(Core::Id type) const +QString GenericLinuxDeviceConfigurationFactory::displayName() const { - QTC_ASSERT(type == Constants::GenericLinuxOsType, return QString()); return tr("Generic Linux Device"); } -QList GenericLinuxDeviceConfigurationFactory::availableCreationIds() const +QIcon GenericLinuxDeviceConfigurationFactory::icon() const { - return QList() << Core::Id(Constants::GenericLinuxOsType); -} - -QIcon GenericLinuxDeviceConfigurationFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) return QIcon(); } -IDevice::Ptr GenericLinuxDeviceConfigurationFactory::create(Core::Id id) const +IDevice::Ptr GenericLinuxDeviceConfigurationFactory::create() const { - QTC_ASSERT(id == Constants::GenericLinuxOsType, return IDevice::Ptr()); GenericLinuxDeviceConfigurationWizard wizard(Core::ICore::mainWindow()); if (wizard.exec() != QDialog::Accepted) return IDevice::Ptr(); @@ -72,7 +64,7 @@ IDevice::Ptr GenericLinuxDeviceConfigurationFactory::create(Core::Id id) const bool GenericLinuxDeviceConfigurationFactory::canRestore(const QVariantMap &map) const { - return IDevice::typeFromMap(map) == Constants::GenericLinuxOsType; + return IDevice::typeFromMap(map) == deviceType(); } IDevice::Ptr GenericLinuxDeviceConfigurationFactory::restore(const QVariantMap &map) const diff --git a/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h index 11febf6a0f4..7c6e94ac3a3 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationfactory.h @@ -37,13 +37,12 @@ class REMOTELINUX_EXPORT GenericLinuxDeviceConfigurationFactory Q_OBJECT public: - GenericLinuxDeviceConfigurationFactory(QObject *parent = 0); + GenericLinuxDeviceConfigurationFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + QString displayName() const override; + QIcon icon() const override; - ProjectExplorer::IDevice::Ptr create(Core::Id id) 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 c3d04447a0e..4c9277cce7c 100644 --- a/src/plugins/winrt/winrtdevicefactory.cpp +++ b/src/plugins/winrt/winrtdevicefactory.cpp @@ -47,9 +47,8 @@ using QtSupport::QtVersionManager; namespace WinRt { namespace Internal { -WinRtDeviceFactory::WinRtDeviceFactory() - : m_process(0) - , m_initialized(false) +WinRtDeviceFactory::WinRtDeviceFactory(Core::Id deviceType) + : ProjectExplorer::IDeviceFactory(deviceType) { if (allPrerequisitesLoaded()) { onPrerequisitesLoaded(); @@ -62,21 +61,13 @@ WinRtDeviceFactory::WinRtDeviceFactory() } } -QString WinRtDeviceFactory::displayNameForId(Core::Id type) const +QString WinRtDeviceFactory::displayName() const { - return WinRtDevice::displayNameForType(type); + return WinRtDevice::displayNameForType(deviceType()); } -QList WinRtDeviceFactory::availableCreationIds() const +QIcon WinRtDeviceFactory::icon() const { - return QList() << Constants::WINRT_DEVICE_TYPE_LOCAL - << Constants::WINRT_DEVICE_TYPE_PHONE - << Constants::WINRT_DEVICE_TYPE_EMULATOR; -} - -QIcon WinRtDeviceFactory::iconForId(Core::Id type) const -{ - Q_UNUSED(type) using namespace Utils; return Icon::combinedIcon({Icon({{":/winrt/images/winrtdevicesmall.png", Theme::PanelTextColorDark}}, Icon::Tint), @@ -84,16 +75,15 @@ QIcon WinRtDeviceFactory::iconForId(Core::Id type) const Theme::IconsBaseColor}})}); } -IDevice::Ptr WinRtDeviceFactory::create(Core::Id id) const +IDevice::Ptr WinRtDeviceFactory::create() const { - Q_UNUSED(id); QTC_CHECK(false); return IDevice::Ptr(); } bool WinRtDeviceFactory::canRestore(const QVariantMap &map) const { - return availableCreationIds().contains(IDevice::typeFromMap(map)); + return IDevice::typeFromMap(map) == deviceType(); } IDevice::Ptr WinRtDeviceFactory::restore(const QVariantMap &map) const diff --git a/src/plugins/winrt/winrtdevicefactory.h b/src/plugins/winrt/winrtdevicefactory.h index 1f61db6ee2e..f32bd0c8377 100644 --- a/src/plugins/winrt/winrtdevicefactory.h +++ b/src/plugins/winrt/winrtdevicefactory.h @@ -35,12 +35,11 @@ class WinRtDeviceFactory : public ProjectExplorer::IDeviceFactory { Q_OBJECT public: - WinRtDeviceFactory(); - QString displayNameForId(Core::Id type) const override; - QList availableCreationIds() const override; - QIcon iconForId(Core::Id type) const override; + explicit WinRtDeviceFactory(Core::Id deviceType); + QString displayName() const override; + QIcon icon() const override; bool canCreate() const override { return false; } - ProjectExplorer::IDevice::Ptr create(Core::Id id) const override; + ProjectExplorer::IDevice::Ptr create() const override; bool canRestore(const QVariantMap &map) const override; ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override; @@ -55,8 +54,8 @@ private: QString findRunnerFilePath() const; void parseRunnerOutput(const QByteArray &output) const; - Utils::QtcProcess *m_process; - bool m_initialized; + Utils::QtcProcess *m_process = nullptr; + bool m_initialized = false; }; } // Internal diff --git a/src/plugins/winrt/winrtplugin.cpp b/src/plugins/winrt/winrtplugin.cpp index aafed07e301..e2156b6d82c 100644 --- a/src/plugins/winrt/winrtplugin.cpp +++ b/src/plugins/winrt/winrtplugin.cpp @@ -52,7 +52,9 @@ public: WinRtPhoneDeployConfigurationFactory phoneDeployConfigFactory; WinRtEmulatorDeployConfigurationFactory emulatorDeployFactory; WinRtDeployStepFactory deployStepFactory; - WinRtDeviceFactory deviceFactory; + WinRtDeviceFactory localDeviceFactory{Constants::WINRT_DEVICE_TYPE_LOCAL}; + WinRtDeviceFactory phoneDeviceFactory{Constants::WINRT_DEVICE_TYPE_PHONE}; + WinRtDeviceFactory emulatorDeviceFactory{Constants::WINRT_DEVICE_TYPE_EMULATOR}; }; WinRtPlugin::WinRtPlugin()