From ba39377edb674b75ae8fe3526e230c91a7eb93f3 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 14 Mar 2023 16:15:13 +0100 Subject: [PATCH] Qnx: Simplify QnxDeviceWizard interface Also provide a parent. Change-Id: I8ca95d09af8126b9e822f891ef815bfcaa84a9d2 Reviewed-by: Marcus Tillmanns --- src/plugins/qnx/qnxdevice.cpp | 8 +-- src/plugins/qnx/qnxdevice.h | 7 +- src/plugins/qnx/qnxdevicewizard.cpp | 69 ++++++++++++------- src/plugins/qnx/qnxdevicewizard.h | 30 +------- ...nericlinuxdeviceconfigurationwizardpages.h | 2 +- 5 files changed, 52 insertions(+), 64 deletions(-) diff --git a/src/plugins/qnx/qnxdevice.cpp b/src/plugins/qnx/qnxdevice.cpp index 4460d5bf00d..7f1d73ae0d1 100644 --- a/src/plugins/qnx/qnxdevice.cpp +++ b/src/plugins/qnx/qnxdevice.cpp @@ -41,7 +41,6 @@ public: : RemoteLinuxSignalOperation(device) {} - QString killProcessByNameCommandLine(const QString &filePath) const override { return QString::fromLatin1("%1; %2").arg(signalProcessByNameQnxCommandLine(filePath, 15), @@ -138,12 +137,7 @@ QnxDeviceFactory::QnxDeviceFactory() : IDeviceFactory(Constants::QNX_QNX_OS_TYPE setCombinedIcon(":/qnx/images/qnxdevicesmall.png", ":/qnx/images/qnxdevice.png"); setConstructionFunction(&QnxDevice::create); - setCreator([] { - QnxDeviceWizard wizard; - if (wizard.exec() != QDialog::Accepted) - return IDevice::Ptr(); - return wizard.device(); - }); + setCreator(&runDeviceWizard); } } // Qnx::Internal diff --git a/src/plugins/qnx/qnxdevice.h b/src/plugins/qnx/qnxdevice.h index f1deaf6a377..34940580e1a 100644 --- a/src/plugins/qnx/qnxdevice.h +++ b/src/plugins/qnx/qnxdevice.h @@ -22,16 +22,15 @@ public: int qnxVersion() const; -protected: +private: + QnxDevice(); + void fromMap(const QVariantMap &map) final; QVariantMap toMap() const final; QString interruptProcessByNameCommandLine(const QString &filePath) const; QString killProcessByNameCommandLine(const QString &filePath) const; -private: - QnxDevice(); - void updateVersionNumber() const; mutable int m_versionNumber = 0; diff --git a/src/plugins/qnx/qnxdevicewizard.cpp b/src/plugins/qnx/qnxdevicewizard.cpp index 1e7d1cfcdd6..cd4a132ee4a 100644 --- a/src/plugins/qnx/qnxdevicewizard.cpp +++ b/src/plugins/qnx/qnxdevicewizard.cpp @@ -4,45 +4,66 @@ #include "qnxdevicewizard.h" #include "qnxconstants.h" +#include "qnxdevice.h" #include "qnxtr.h" +#include + #include + #include + #include +#include using namespace ProjectExplorer; +using namespace RemoteLinux; +using namespace Utils; namespace Qnx::Internal { -QnxDeviceWizard::QnxDeviceWizard(QWidget *parent) : - Utils::Wizard(parent) +class QnxDeviceWizard : public Wizard { - setWindowTitle(Tr::tr("New QNX Device Configuration Setup")); +public: + QnxDeviceWizard() : Wizard(Core::ICore::dialogParent()) + { + setWindowTitle(Tr::tr("New QNX Device Configuration Setup")); - m_setupPage = new RemoteLinux::GenericLinuxDeviceConfigurationWizardSetupPage(this); - m_keyDeploymentPage - = new RemoteLinux::GenericLinuxDeviceConfigurationWizardKeyDeploymentPage(this); - m_finalPage = new RemoteLinux::GenericLinuxDeviceConfigurationWizardFinalPage(this); + addPage(&m_setupPage); + addPage(&m_keyDeploymentPage); + addPage(&m_finalPage); + m_finalPage.setCommitPage(true); - setPage(SetupPageId, m_setupPage); - setPage(KeyDeploymenPageId, m_keyDeploymentPage); - setPage(FinalPageId, m_finalPage); - m_finalPage->setCommitPage(true); - SshParameters sshParams; - sshParams.timeout = 10; - m_device = QnxDevice::create(); - m_device->setupId(IDevice::ManuallyAdded); - 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"))); - m_setupPage->setDevice(m_device); - m_keyDeploymentPage->setDevice(m_device); -} + SshParameters sshParams; + sshParams.timeout = 10; + m_device = QnxDevice::create(); + m_device->setupId(IDevice::ManuallyAdded); + m_device->setType(Constants::QNX_QNX_OS_TYPE); + m_device->setMachineType(IDevice::Hardware); + m_device->setSshParameters(sshParams); + m_device->setFreePorts(PortList::fromString("10000-10100")); -IDevice::Ptr QnxDeviceWizard::device() + m_setupPage.setDevice(m_device); + m_keyDeploymentPage.setDevice(m_device); + } + + IDevice::Ptr device() const { return m_device; } + +private: + GenericLinuxDeviceConfigurationWizardSetupPage m_setupPage; + GenericLinuxDeviceConfigurationWizardKeyDeploymentPage m_keyDeploymentPage; + GenericLinuxDeviceConfigurationWizardFinalPage m_finalPage; + + LinuxDevice::Ptr m_device; +}; + + +IDevice::Ptr runDeviceWizard() { - return m_device; + QnxDeviceWizard wizard; + if (wizard.exec() != QDialog::Accepted) + return IDevice::Ptr(); + return wizard.device(); } } // Qnx::Internal diff --git a/src/plugins/qnx/qnxdevicewizard.h b/src/plugins/qnx/qnxdevicewizard.h index ce30658ce11..3adaa337011 100644 --- a/src/plugins/qnx/qnxdevicewizard.h +++ b/src/plugins/qnx/qnxdevicewizard.h @@ -3,36 +3,10 @@ #pragma once -#include "qnxdevice.h" - -#include - -namespace RemoteLinux { -class GenericLinuxDeviceConfigurationWizardSetupPage; -class GenericLinuxDeviceConfigurationWizardKeyDeploymentPage; -class GenericLinuxDeviceConfigurationWizardFinalPage; -} +#include namespace Qnx::Internal { -class QnxDeviceWizard : public Utils::Wizard -{ -public: - explicit QnxDeviceWizard(QWidget *parent = nullptr); - - ProjectExplorer::IDevice::Ptr device(); - -private: - enum PageId { - SetupPageId, - KeyDeploymenPageId, - FinalPageId - }; - - RemoteLinux::GenericLinuxDeviceConfigurationWizardSetupPage *m_setupPage; - RemoteLinux::GenericLinuxDeviceConfigurationWizardKeyDeploymentPage *m_keyDeploymentPage; - RemoteLinux::GenericLinuxDeviceConfigurationWizardFinalPage *m_finalPage; - QnxDevice::Ptr m_device; -}; +ProjectExplorer::IDevice::Ptr runDeviceWizard(); } // Qnx::Internal diff --git a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizardpages.h b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizardpages.h index 6e5e00119ad..55388f48147 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizardpages.h +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwizardpages.h @@ -64,7 +64,7 @@ class REMOTELINUX_EXPORT GenericLinuxDeviceConfigurationWizardFinalPage final : { Q_OBJECT public: - GenericLinuxDeviceConfigurationWizardFinalPage(QWidget *parent); + GenericLinuxDeviceConfigurationWizardFinalPage(QWidget *parent = nullptr); ~GenericLinuxDeviceConfigurationWizardFinalPage() override; protected: