Qnx: Simplify QnxDeviceWizard interface

Also provide a parent.

Change-Id: I8ca95d09af8126b9e822f891ef815bfcaa84a9d2
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
hjk
2023-03-14 16:15:13 +01:00
parent 2704f8ff0b
commit ba39377edb
5 changed files with 52 additions and 64 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -4,30 +4,36 @@
#include "qnxdevicewizard.h"
#include "qnxconstants.h"
#include "qnxdevice.h"
#include "qnxtr.h"
#include <coreplugin/icore.h>
#include <projectexplorer/devicesupport/sshparameters.h>
#include <remotelinux/genericlinuxdeviceconfigurationwizardpages.h>
#include <utils/portlist.h>
#include <utils/wizard.h>
using namespace ProjectExplorer;
using namespace RemoteLinux;
using namespace Utils;
namespace Qnx::Internal {
QnxDeviceWizard::QnxDeviceWizard(QWidget *parent) :
Utils::Wizard(parent)
class QnxDeviceWizard : public Wizard
{
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();
@@ -35,14 +41,29 @@ QnxDeviceWizard::QnxDeviceWizard(QWidget *parent) :
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);
m_device->setFreePorts(PortList::fromString("10000-10100"));
m_setupPage.setDevice(m_device);
m_keyDeploymentPage.setDevice(m_device);
}
IDevice::Ptr QnxDeviceWizard::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

View File

@@ -3,36 +3,10 @@
#pragma once
#include "qnxdevice.h"
#include <utils/wizard.h>
namespace RemoteLinux {
class GenericLinuxDeviceConfigurationWizardSetupPage;
class GenericLinuxDeviceConfigurationWizardKeyDeploymentPage;
class GenericLinuxDeviceConfigurationWizardFinalPage;
}
#include <projectexplorer/devicesupport/idevice.h>
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

View File

@@ -64,7 +64,7 @@ class REMOTELINUX_EXPORT GenericLinuxDeviceConfigurationWizardFinalPage final :
{
Q_OBJECT
public:
GenericLinuxDeviceConfigurationWizardFinalPage(QWidget *parent);
GenericLinuxDeviceConfigurationWizardFinalPage(QWidget *parent = nullptr);
~GenericLinuxDeviceConfigurationWizardFinalPage() override;
protected: