diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index 7a59abea961..a14b985ad74 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -673,23 +673,24 @@ AndroidDeviceFactory::AndroidDeviceFactory() ":/android/images/androiddevice.png"); setConstructionFunction(&AndroidDevice::create); - setCanCreate(m_androidConfig.sdkToolsOk()); - setCreator([this] { - AvdDialog dialog = AvdDialog(m_androidConfig, Core::ICore::dialogParent()); - if (dialog.exec() != QDialog::Accepted) - return IDevice::Ptr(); + if (m_androidConfig.sdkToolsOk()) { + setCreator([this] { + AvdDialog dialog = AvdDialog(m_androidConfig, Core::ICore::dialogParent()); + if (dialog.exec() != QDialog::Accepted) + return IDevice::Ptr(); - const IDevice::Ptr dev = dialog.device(); - if (const auto androidDev = static_cast(dev.data())) { - qCDebug(androidDeviceLog, "Created new Android AVD id \"%s\".", - qPrintable(androidDev->avdName())); - } else { - AndroidDeviceWidget::criticalDialog( - AndroidDevice::tr("The device info returned from AvdDialog is invalid.")); - } + const IDevice::Ptr dev = dialog.device(); + if (const auto androidDev = static_cast(dev.data())) { + qCDebug(androidDeviceLog, "Created new Android AVD id \"%s\".", + qPrintable(androidDev->avdName())); + } else { + AndroidDeviceWidget::criticalDialog( + AndroidDevice::tr("The device info returned from AvdDialog is invalid.")); + } - return IDevice::Ptr(dev); - }); + return IDevice::Ptr(dev); + }); + } } } // namespace Internal diff --git a/src/plugins/baremetal/baremetaldevice.cpp b/src/plugins/baremetal/baremetaldevice.cpp index c5679898c84..61a31e8bc59 100644 --- a/src/plugins/baremetal/baremetaldevice.cpp +++ b/src/plugins/baremetal/baremetaldevice.cpp @@ -126,7 +126,6 @@ BareMetalDeviceFactory::BareMetalDeviceFactory() setCombinedIcon(":/baremetal/images/baremetaldevicesmall.png", ":/baremetal/images/baremetaldevice.png"); setConstructionFunction(&BareMetalDevice::create); - setCanCreate(true); setCreator([] { BareMetalDeviceConfigurationWizard wizard; if (wizard.exec() != QDialog::Accepted) diff --git a/src/plugins/boot2qt/qdbdevice.cpp b/src/plugins/boot2qt/qdbdevice.cpp index e372c92b622..7b858747e50 100644 --- a/src/plugins/boot2qt/qdbdevice.cpp +++ b/src/plugins/boot2qt/qdbdevice.cpp @@ -287,7 +287,6 @@ QdbLinuxDeviceFactory::QdbLinuxDeviceFactory() setDisplayName(QdbDevice::tr("Boot2Qt Device")); setCombinedIcon(":/qdb/images/qdbdevicesmall.png", ":/qdb/images/qdbdevice.png"); setConstructionFunction(&QdbDevice::create); - setCanCreate(true); setCreator([] { QdbDeviceWizard wizard(Core::ICore::dialogParent()); if (wizard.exec() != QDialog::Accepted) diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 2f81b4d4f67..99c795ae22a 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -1892,7 +1892,6 @@ DockerDeviceFactory::DockerDeviceFactory() { setDisplayName(DockerDevice::tr("Docker Device")); setIcon(QIcon()); - setCanCreate(true); setCreator([] { DockerDeviceSetupWizard wizard; if (wizard.exec() != QDialog::Accepted) diff --git a/src/plugins/mcusupport/mcusupportdevice.cpp b/src/plugins/mcusupport/mcusupportdevice.cpp index 7ff559ea70a..b1198303771 100644 --- a/src/plugins/mcusupport/mcusupportdevice.cpp +++ b/src/plugins/mcusupport/mcusupportdevice.cpp @@ -60,7 +60,6 @@ McuSupportDeviceFactory::McuSupportDeviceFactory() setCombinedIcon(":/mcusupport/images/mcusupportdevicesmall.png", ":/mcusupport/images/mcusupportdevice.png"); setConstructionFunction(&McuSupportDevice::create); - setCanCreate(true); setCreator(&McuSupportDevice::create); } diff --git a/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp b/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp index c286a97f9e3..1ff8498d3eb 100644 --- a/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp +++ b/src/plugins/projectexplorer/devicesupport/idevicefactory.cpp @@ -27,6 +27,7 @@ #include #include +#include using namespace Utils; @@ -78,7 +79,7 @@ namespace ProjectExplorer { bool IDeviceFactory::canCreate() const { - return m_canCreate; + return bool(m_creator); } IDevice::Ptr IDeviceFactory::create() const @@ -119,13 +120,9 @@ void IDeviceFactory::setCombinedIcon(const FilePath &small, const FilePath &larg Icon({{large, Theme::IconsBaseColor}})}); } -void IDeviceFactory::setCanCreate(bool canCreate) -{ - m_canCreate = canCreate; -} - void IDeviceFactory::setCreator(const std::function &creator) { + QTC_ASSERT(creator, return); m_creator = creator; } diff --git a/src/plugins/projectexplorer/devicesupport/idevicefactory.h b/src/plugins/projectexplorer/devicesupport/idevicefactory.h index 2d44ebf162f..59034aaef5f 100644 --- a/src/plugins/projectexplorer/devicesupport/idevicefactory.h +++ b/src/plugins/projectexplorer/devicesupport/idevicefactory.h @@ -58,7 +58,6 @@ protected: void setDisplayName(const QString &displayName); void setIcon(const QIcon &icon); void setCombinedIcon(const Utils::FilePath &small, const Utils::FilePath &large); - void setCanCreate(bool canCreate); void setConstructionFunction(const std::function &constructor); void setCreator(const std::function &creator); @@ -67,7 +66,6 @@ private: const Utils::Id m_deviceType; QString m_displayName; QIcon m_icon; - bool m_canCreate = false; std::function m_constructor; }; diff --git a/src/plugins/qnx/qnxdevice.cpp b/src/plugins/qnx/qnxdevice.cpp index 318761c1255..764355b1e1e 100644 --- a/src/plugins/qnx/qnxdevice.cpp +++ b/src/plugins/qnx/qnxdevice.cpp @@ -176,7 +176,6 @@ QnxDeviceFactory::QnxDeviceFactory() : IDeviceFactory(Constants::QNX_QNX_OS_TYPE setCombinedIcon(":/qnx/images/qnxdevicesmall.png", ":/qnx/images/qnxdevice.png"); setConstructionFunction(&QnxDevice::create); - setCanCreate(true); setCreator([] { QnxDeviceWizard wizard; if (wizard.exec() != QDialog::Accepted) diff --git a/src/plugins/remotelinux/filesystemaccess_test.cpp b/src/plugins/remotelinux/filesystemaccess_test.cpp index 9623b6f12d2..2c95a5ca81b 100644 --- a/src/plugins/remotelinux/filesystemaccess_test.cpp +++ b/src/plugins/remotelinux/filesystemaccess_test.cpp @@ -52,7 +52,6 @@ TestLinuxDeviceFactory::TestLinuxDeviceFactory() setDisplayName("Generic Linux Device"); setIcon(QIcon()); setConstructionFunction(&LinuxDevice::create); - setCanCreate(true); setCreator([] { LinuxDevice::Ptr newDev = LinuxDevice::create(); qDebug() << "device : " << newDev->type(); diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 79028450c7e..7b19d51b2e9 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -800,7 +800,6 @@ LinuxDeviceFactory::LinuxDeviceFactory() setDisplayName(LinuxDevice::tr("Generic Linux Device")); setIcon(QIcon()); setConstructionFunction(&LinuxDevice::create); - setCanCreate(true); setCreator([] { GenericLinuxDeviceConfigurationWizard wizard(Core::ICore::dialogParent()); if (wizard.exec() != QDialog::Accepted) diff --git a/src/plugins/webassembly/webassemblydevice.cpp b/src/plugins/webassembly/webassemblydevice.cpp index 2e1eb31180d..ae9fb02ae3e 100644 --- a/src/plugins/webassembly/webassemblydevice.cpp +++ b/src/plugins/webassembly/webassemblydevice.cpp @@ -59,7 +59,6 @@ WebAssemblyDeviceFactory::WebAssemblyDeviceFactory() setCombinedIcon(":/webassembly/images/webassemblydevicesmall.png", ":/webassembly/images/webassemblydevice.png"); setConstructionFunction(&WebAssemblyDevice::create); - setCanCreate(true); setCreator(&WebAssemblyDevice::create); }