RemoteLinux: Inline genericlinuxdeviceconfigurationwidget.ui

Change-Id: I1f93b7886bb8d0217a9e169990e20361e540aec4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2022-07-14 17:02:19 +02:00
parent 421cdd8021
commit 034acdeeb2
6 changed files with 154 additions and 357 deletions

View File

@@ -8,7 +8,7 @@ add_qtc_plugin(RemoteLinux
deploymenttimeinfo.cpp deploymenttimeinfo.h deploymenttimeinfo.cpp deploymenttimeinfo.h
genericdirectuploadservice.cpp genericdirectuploadservice.h genericdirectuploadservice.cpp genericdirectuploadservice.h
genericdirectuploadstep.cpp genericdirectuploadstep.h genericdirectuploadstep.cpp genericdirectuploadstep.h
genericlinuxdeviceconfigurationwidget.cpp genericlinuxdeviceconfigurationwidget.h genericlinuxdeviceconfigurationwidget.ui genericlinuxdeviceconfigurationwidget.cpp genericlinuxdeviceconfigurationwidget.h
genericlinuxdeviceconfigurationwizard.cpp genericlinuxdeviceconfigurationwizard.h genericlinuxdeviceconfigurationwizard.cpp genericlinuxdeviceconfigurationwizard.h
genericlinuxdeviceconfigurationwizardpages.cpp genericlinuxdeviceconfigurationwizardpages.h genericlinuxdeviceconfigurationwizardpages.cpp genericlinuxdeviceconfigurationwizardpages.h
killappstep.cpp killappstep.h killappstep.cpp killappstep.h

View File

@@ -24,124 +24,186 @@
****************************************************************************/ ****************************************************************************/
#include "genericlinuxdeviceconfigurationwidget.h" #include "genericlinuxdeviceconfigurationwidget.h"
#include "ui_genericlinuxdeviceconfigurationwidget.h"
#include "sshkeycreationdialog.h" #include "sshkeycreationdialog.h"
#include <coreplugin/coreconstants.h>
#include <projectexplorer/devicesupport/idevice.h> #include <projectexplorer/devicesupport/idevice.h>
#include <projectexplorer/devicesupport/sshparameters.h> #include <projectexplorer/devicesupport/sshparameters.h>
#include <utils/portlist.h>
#include <utils/fancylineedit.h> #include <utils/fancylineedit.h>
#include <utils/layoutbuilder.h>
#include <utils/pathchooser.h>
#include <utils/portlist.h>
#include <utils/utilsicons.h> #include <utils/utilsicons.h>
#include <QCheckBox>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QRadioButton>
#include <QSpacerItem>
#include <QSpinBox>
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace RemoteLinux;
using namespace Utils; using namespace Utils;
namespace RemoteLinux::Internal {
GenericLinuxDeviceConfigurationWidget::GenericLinuxDeviceConfigurationWidget( GenericLinuxDeviceConfigurationWidget::GenericLinuxDeviceConfigurationWidget(
const IDevice::Ptr &deviceConfig) : const IDevice::Ptr &device) :
IDeviceWidget(deviceConfig), IDeviceWidget(device)
m_ui(new Ui::GenericLinuxDeviceConfigurationWidget)
{ {
m_ui->setupUi(this); resize(556, 309);
connect(m_ui->hostLineEdit, &QLineEdit::editingFinished,
m_defaultAuthButton = new QRadioButton(tr("Default"), this);
m_keyButton = new QRadioButton(tr("Specific &key"));
m_hostLineEdit = new QLineEdit(this);
m_hostLineEdit->setPlaceholderText(tr("IP or host name of the device"));
m_sshPortSpinBox = new QSpinBox(this);
m_sshPortSpinBox->setMinimum(0);
m_sshPortSpinBox->setMaximum(65535);
m_sshPortSpinBox->setValue(22);
m_hostKeyCheckBox = new QCheckBox(tr("&Check host key"));
m_portsLineEdit = new QLineEdit(this);
m_portsLineEdit->setToolTip(tr("You can enter lists and ranges like this: '1024,1026-1028,1030'."));
m_portsWarningLabel = new QLabel(this);
m_timeoutSpinBox = new QSpinBox(this);
m_timeoutSpinBox->setMaximum(10000);
m_timeoutSpinBox->setSingleStep(10);
m_timeoutSpinBox->setValue(1000);
m_timeoutSpinBox->setSuffix(tr("s"));
m_userLineEdit = new QLineEdit(this);
m_keyLabel = new QLabel(tr("Private key file:"));
m_keyFileLineEdit = new Utils::PathChooser(this);
auto createKeyButton = new QPushButton(tr("Create New..."));
m_machineTypeValueLabel = new QLabel(this);
m_gdbServerLineEdit = new QLineEdit(this);
m_gdbServerLineEdit->setPlaceholderText(tr("Leave empty to look up executable in $PATH"));
auto sshPortLabel = new QLabel(tr("&SSH port:"));
sshPortLabel->setBuddy(m_sshPortSpinBox);
using namespace Layouting;
const Break nl;
const Stretch st;
Form {
tr("Machine type:"), m_machineTypeValueLabel, st, nl,
tr("Authentication type:"), m_defaultAuthButton, m_keyButton, st, nl,
tr("&Host name:"), m_hostLineEdit, sshPortLabel, m_sshPortSpinBox, m_hostKeyCheckBox, st, nl,
tr("Free ports:"), m_portsLineEdit, m_portsWarningLabel, tr("Timeout:"), m_timeoutSpinBox, st, nl,
tr("&Username:"), m_userLineEdit, st, nl,
m_keyLabel, m_keyFileLineEdit, createKeyButton, st, nl,
tr("GDB server executable:"), m_gdbServerLineEdit, st, nl
}.attachTo(this);
connect(m_hostLineEdit, &QLineEdit::editingFinished,
this, &GenericLinuxDeviceConfigurationWidget::hostNameEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::hostNameEditingFinished);
connect(m_ui->userLineEdit, &QLineEdit::editingFinished, connect(m_userLineEdit, &QLineEdit::editingFinished,
this, &GenericLinuxDeviceConfigurationWidget::userNameEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::userNameEditingFinished);
connect(m_ui->keyFileLineEdit, &PathChooser::editingFinished, connect(m_keyFileLineEdit, &PathChooser::editingFinished,
this, &GenericLinuxDeviceConfigurationWidget::keyFileEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::keyFileEditingFinished);
connect(m_ui->keyFileLineEdit, &PathChooser::browsingFinished, connect(m_keyFileLineEdit, &PathChooser::browsingFinished,
this, &GenericLinuxDeviceConfigurationWidget::keyFileEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::keyFileEditingFinished);
connect(m_ui->keyButton, &QAbstractButton::toggled, connect(m_keyButton, &QAbstractButton::toggled,
this, &GenericLinuxDeviceConfigurationWidget::authenticationTypeChanged); this, &GenericLinuxDeviceConfigurationWidget::authenticationTypeChanged);
connect(m_ui->timeoutSpinBox, &QAbstractSpinBox::editingFinished, connect(m_timeoutSpinBox, &QAbstractSpinBox::editingFinished,
this, &GenericLinuxDeviceConfigurationWidget::timeoutEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::timeoutEditingFinished);
connect(m_ui->timeoutSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), connect(m_timeoutSpinBox, &QSpinBox::valueChanged,
this, &GenericLinuxDeviceConfigurationWidget::timeoutEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::timeoutEditingFinished);
connect(m_ui->sshPortSpinBox, &QAbstractSpinBox::editingFinished, connect(m_sshPortSpinBox, &QAbstractSpinBox::editingFinished,
this, &GenericLinuxDeviceConfigurationWidget::sshPortEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::sshPortEditingFinished);
connect(m_ui->sshPortSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), connect(m_sshPortSpinBox, &QSpinBox::valueChanged,
this, &GenericLinuxDeviceConfigurationWidget::sshPortEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::sshPortEditingFinished);
connect(m_ui->portsLineEdit, &QLineEdit::editingFinished, connect(m_portsLineEdit, &QLineEdit::editingFinished,
this, &GenericLinuxDeviceConfigurationWidget::handleFreePortsChanged); this, &GenericLinuxDeviceConfigurationWidget::handleFreePortsChanged);
connect(m_ui->createKeyButton, &QAbstractButton::clicked, connect(createKeyButton, &QAbstractButton::clicked,
this, &GenericLinuxDeviceConfigurationWidget::createNewKey); this, &GenericLinuxDeviceConfigurationWidget::createNewKey);
connect(m_ui->gdbServerLineEdit, &QLineEdit::editingFinished, connect(m_gdbServerLineEdit, &QLineEdit::editingFinished,
this, &GenericLinuxDeviceConfigurationWidget::gdbServerEditingFinished); this, &GenericLinuxDeviceConfigurationWidget::gdbServerEditingFinished);
connect(m_ui->hostKeyCheckBox, &QCheckBox::toggled, connect(m_hostKeyCheckBox, &QCheckBox::toggled,
this, &GenericLinuxDeviceConfigurationWidget::hostKeyCheckingChanged); this, &GenericLinuxDeviceConfigurationWidget::hostKeyCheckingChanged);
m_ui->gdbServerLineEdit->setToolTip(m_ui->gdbServerLineEdit->placeholderText()); m_gdbServerLineEdit->setToolTip(m_gdbServerLineEdit->placeholderText());
initGui(); initGui();
} }
GenericLinuxDeviceConfigurationWidget::~GenericLinuxDeviceConfigurationWidget() GenericLinuxDeviceConfigurationWidget::~GenericLinuxDeviceConfigurationWidget() = default;
{
delete m_ui;
}
void GenericLinuxDeviceConfigurationWidget::authenticationTypeChanged() void GenericLinuxDeviceConfigurationWidget::authenticationTypeChanged()
{ {
SshParameters sshParams = device()->sshParameters(); SshParameters sshParams = device()->sshParameters();
const bool useKeyFile = m_ui->keyButton->isChecked(); const bool useKeyFile = m_keyButton->isChecked();
sshParams.authenticationType = useKeyFile sshParams.authenticationType = useKeyFile
? SshParameters::AuthenticationTypeSpecificKey ? SshParameters::AuthenticationTypeSpecificKey
: SshParameters::AuthenticationTypeAll; : SshParameters::AuthenticationTypeAll;
device()->setSshParameters(sshParams); device()->setSshParameters(sshParams);
m_ui->keyFileLineEdit->setEnabled(useKeyFile); m_keyFileLineEdit->setEnabled(useKeyFile);
m_ui->keyLabel->setEnabled(useKeyFile); m_keyLabel->setEnabled(useKeyFile);
} }
void GenericLinuxDeviceConfigurationWidget::hostNameEditingFinished() void GenericLinuxDeviceConfigurationWidget::hostNameEditingFinished()
{ {
SshParameters sshParams = device()->sshParameters(); SshParameters sshParams = device()->sshParameters();
sshParams.setHost(m_ui->hostLineEdit->text().trimmed()); sshParams.setHost(m_hostLineEdit->text().trimmed());
device()->setSshParameters(sshParams); device()->setSshParameters(sshParams);
} }
void GenericLinuxDeviceConfigurationWidget::sshPortEditingFinished() void GenericLinuxDeviceConfigurationWidget::sshPortEditingFinished()
{ {
SshParameters sshParams = device()->sshParameters(); SshParameters sshParams = device()->sshParameters();
sshParams.setPort(m_ui->sshPortSpinBox->value()); sshParams.setPort(m_sshPortSpinBox->value());
device()->setSshParameters(sshParams); device()->setSshParameters(sshParams);
} }
void GenericLinuxDeviceConfigurationWidget::timeoutEditingFinished() void GenericLinuxDeviceConfigurationWidget::timeoutEditingFinished()
{ {
SshParameters sshParams = device()->sshParameters(); SshParameters sshParams = device()->sshParameters();
sshParams.timeout = m_ui->timeoutSpinBox->value(); sshParams.timeout = m_timeoutSpinBox->value();
device()->setSshParameters(sshParams); device()->setSshParameters(sshParams);
} }
void GenericLinuxDeviceConfigurationWidget::userNameEditingFinished() void GenericLinuxDeviceConfigurationWidget::userNameEditingFinished()
{ {
SshParameters sshParams = device()->sshParameters(); SshParameters sshParams = device()->sshParameters();
sshParams.setUserName(m_ui->userLineEdit->text()); sshParams.setUserName(m_userLineEdit->text());
device()->setSshParameters(sshParams); device()->setSshParameters(sshParams);
} }
void GenericLinuxDeviceConfigurationWidget::keyFileEditingFinished() void GenericLinuxDeviceConfigurationWidget::keyFileEditingFinished()
{ {
SshParameters sshParams = device()->sshParameters(); SshParameters sshParams = device()->sshParameters();
sshParams.privateKeyFile = m_ui->keyFileLineEdit->filePath(); sshParams.privateKeyFile = m_keyFileLineEdit->filePath();
device()->setSshParameters(sshParams); device()->setSshParameters(sshParams);
} }
void GenericLinuxDeviceConfigurationWidget::gdbServerEditingFinished() void GenericLinuxDeviceConfigurationWidget::gdbServerEditingFinished()
{ {
device()->setDebugServerPath(device()->filePath(m_ui->gdbServerLineEdit->text())); device()->setDebugServerPath(device()->filePath(m_gdbServerLineEdit->text()));
} }
void GenericLinuxDeviceConfigurationWidget::handleFreePortsChanged() void GenericLinuxDeviceConfigurationWidget::handleFreePortsChanged()
{ {
device()->setFreePorts(PortList::fromString(m_ui->portsLineEdit->text())); device()->setFreePorts(PortList::fromString(m_portsLineEdit->text()));
updatePortsWarningLabel(); updatePortsWarningLabel();
} }
void GenericLinuxDeviceConfigurationWidget::setPrivateKey(const FilePath &path) void GenericLinuxDeviceConfigurationWidget::setPrivateKey(const FilePath &path)
{ {
m_ui->keyFileLineEdit->setFilePath(path); m_keyFileLineEdit->setFilePath(path);
keyFileEditingFinished(); keyFileEditingFinished();
} }
@@ -173,47 +235,50 @@ void GenericLinuxDeviceConfigurationWidget::updateDeviceFromUi()
void GenericLinuxDeviceConfigurationWidget::updatePortsWarningLabel() void GenericLinuxDeviceConfigurationWidget::updatePortsWarningLabel()
{ {
m_ui->portsWarningLabel->setVisible(!device()->freePorts().hasMore()); m_portsWarningLabel->setVisible(!device()->freePorts().hasMore());
} }
void GenericLinuxDeviceConfigurationWidget::initGui() void GenericLinuxDeviceConfigurationWidget::initGui()
{ {
if (device()->machineType() == IDevice::Hardware) if (device()->machineType() == IDevice::Hardware)
m_ui->machineTypeValueLabel->setText(tr("Physical Device")); m_machineTypeValueLabel->setText(tr("Physical Device"));
else else
m_ui->machineTypeValueLabel->setText(tr("Emulator")); m_machineTypeValueLabel->setText(tr("Emulator"));
m_ui->portsWarningLabel->setPixmap(Utils::Icons::CRITICAL.pixmap()); m_portsWarningLabel->setPixmap(Utils::Icons::CRITICAL.pixmap());
m_ui->portsWarningLabel->setToolTip(QLatin1String("<font color=\"red\">") m_portsWarningLabel->setToolTip(QLatin1String("<font color=\"red\">")
+ tr("You will need at least one port.") + QLatin1String("</font>")); + tr("You will need at least one port.") + QLatin1String("</font>"));
m_ui->keyFileLineEdit->setExpectedKind(PathChooser::File); m_keyFileLineEdit->setExpectedKind(PathChooser::File);
m_ui->keyFileLineEdit->setHistoryCompleter(QLatin1String("Ssh.KeyFile.History")); m_keyFileLineEdit->setHistoryCompleter(QLatin1String("Ssh.KeyFile.History"));
m_ui->keyFileLineEdit->lineEdit()->setMinimumWidth(0); m_keyFileLineEdit->lineEdit()->setMinimumWidth(0);
QRegularExpressionValidator * const portsValidator QRegularExpressionValidator * const portsValidator
= new QRegularExpressionValidator(QRegularExpression(PortList::regularExpression()), this); = new QRegularExpressionValidator(QRegularExpression(PortList::regularExpression()), this);
m_ui->portsLineEdit->setValidator(portsValidator); m_portsLineEdit->setValidator(portsValidator);
const SshParameters &sshParams = device()->sshParameters(); const SshParameters &sshParams = device()->sshParameters();
switch (sshParams.authenticationType) { switch (sshParams.authenticationType) {
case SshParameters::AuthenticationTypeSpecificKey: case SshParameters::AuthenticationTypeSpecificKey:
m_ui->keyButton->setChecked(true); m_keyButton->setChecked(true);
break; break;
case SshParameters::AuthenticationTypeAll: case SshParameters::AuthenticationTypeAll:
m_ui->defaultAuthButton->setChecked(true); m_defaultAuthButton->setChecked(true);
break; break;
} }
m_ui->timeoutSpinBox->setValue(sshParams.timeout); m_timeoutSpinBox->setValue(sshParams.timeout);
m_ui->hostLineEdit->setEnabled(!device()->isAutoDetected()); m_hostLineEdit->setEnabled(!device()->isAutoDetected());
m_ui->sshPortSpinBox->setEnabled(!device()->isAutoDetected()); m_sshPortSpinBox->setEnabled(!device()->isAutoDetected());
m_ui->hostKeyCheckBox->setChecked(sshParams.hostKeyCheckingMode != SshHostKeyCheckingNone); m_hostKeyCheckBox->setChecked(sshParams.hostKeyCheckingMode != SshHostKeyCheckingNone);
m_ui->hostLineEdit->setText(sshParams.host()); m_hostLineEdit->setText(sshParams.host());
m_ui->sshPortSpinBox->setValue(sshParams.port()); m_sshPortSpinBox->setValue(sshParams.port());
m_ui->portsLineEdit->setText(device()->freePorts().toString()); m_portsLineEdit->setText(device()->freePorts().toString());
m_ui->timeoutSpinBox->setValue(sshParams.timeout); m_timeoutSpinBox->setValue(sshParams.timeout);
m_ui->userLineEdit->setText(sshParams.userName()); m_userLineEdit->setText(sshParams.userName());
m_ui->keyFileLineEdit->setFilePath(sshParams.privateKeyFile); m_keyFileLineEdit->setFilePath(sshParams.privateKeyFile);
// FIXME: Use a remote executable line edit // FIXME: Use a remote executable line edit
m_ui->gdbServerLineEdit->setText(device()->debugServerPath().path()); m_gdbServerLineEdit->setText(device()->debugServerPath().path());
updatePortsWarningLabel(); updatePortsWarningLabel();
} }
} // RemoteLinux::Internal

View File

@@ -25,24 +25,30 @@
#pragma once #pragma once
#include "remotelinux_export.h"
#include <projectexplorer/devicesupport/idevicewidget.h> #include <projectexplorer/devicesupport/idevicewidget.h>
namespace Utils { class FilePath; } QT_BEGIN_NAMESPACE
class QCheckBox;
class QLabel;
class QLineEdit;
class QRadioButton;
class QSpinBox;
QT_END_NAMESPACE
namespace RemoteLinux { namespace Utils {
class FilePath;
class PathChooser;
} // Utils
namespace Ui { class GenericLinuxDeviceConfigurationWidget; } namespace RemoteLinux::Internal {
class REMOTELINUX_EXPORT GenericLinuxDeviceConfigurationWidget class GenericLinuxDeviceConfigurationWidget
: public ProjectExplorer::IDeviceWidget : public ProjectExplorer::IDeviceWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit GenericLinuxDeviceConfigurationWidget( explicit GenericLinuxDeviceConfigurationWidget(const ProjectExplorer::IDevicePtr &device);
const ProjectExplorer::IDevicePtr &deviceConfig);
~GenericLinuxDeviceConfigurationWidget() override; ~GenericLinuxDeviceConfigurationWidget() override;
private: private:
@@ -62,7 +68,19 @@ private:
void updatePortsWarningLabel(); void updatePortsWarningLabel();
void initGui(); void initGui();
Ui::GenericLinuxDeviceConfigurationWidget *m_ui; QRadioButton *m_defaultAuthButton;
QLabel *m_keyLabel;
QRadioButton *m_keyButton;
QLineEdit *m_hostLineEdit;
QSpinBox *m_sshPortSpinBox;
QCheckBox *m_hostKeyCheckBox;
QLineEdit *m_portsLineEdit;
QLabel *m_portsWarningLabel;
QLineEdit *m_userLineEdit;
QSpinBox *m_timeoutSpinBox;
Utils::PathChooser *m_keyFileLineEdit;
QLabel *m_machineTypeValueLabel;
QLineEdit *m_gdbServerLineEdit;
}; };
} // namespace RemoteLinux } // RemoteLinux::Internal

View File

@@ -1,285 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RemoteLinux::GenericLinuxDeviceConfigurationWidget</class>
<widget class="QWidget" name="RemoteLinux::GenericLinuxDeviceConfigurationWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>556</width>
<height>309</height>
</rect>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::FieldsStayAtSizeHint</enum>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0">
<widget class="QLabel" name="authTypeLabel">
<property name="text">
<string>Authentication type:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QWidget" name="authTypeButtonsWidget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="defaultAuthButton">
<property name="text">
<string>Default</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="keyButton">
<property name="text">
<string>Specific &amp;key</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="hostNameLabel">
<property name="text">
<string>&amp;Host name:</string>
</property>
<property name="buddy">
<cstring>hostLineEdit</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLineEdit" name="hostLineEdit">
<property name="placeholderText">
<string>IP or host name of the device</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="sshPortLabel">
<property name="text">
<string>&amp;SSH port:</string>
</property>
<property name="buddy">
<cstring>sshPortSpinBox</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="sshPortSpinBox">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>22</number>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="hostKeyCheckBox">
<property name="text">
<string>&amp;Check host key</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<widget class="QLabel" name="freePortsLabel">
<property name="text">
<string>Free ports:</string>
</property>
<property name="buddy">
<cstring>portsLineEdit</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLineEdit" name="portsLineEdit">
<property name="toolTip">
<string>You can enter lists and ranges like this: '1024,1026-1028,1030'.</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="portsWarningLabel">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="connectionTimeoutLabel">
<property name="text">
<string>Timeout:</string>
</property>
<property name="buddy">
<cstring>timeoutSpinBox</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="timeoutSpinBox">
<property name="suffix">
<string>s</string>
</property>
<property name="maximum">
<number>10000</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<widget class="QLabel" name="userNameLabel">
<property name="text">
<string>&amp;Username:</string>
</property>
<property name="buddy">
<cstring>userLineEdit</cstring>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="userLineEdit"/>
</item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_6"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="keyLabel">
<property name="text">
<string>Private key file:</string>
</property>
</widget>
</item>
<item row="6" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="Utils::PathChooser" name="keyFileLineEdit" native="true"/>
</item>
<item>
<widget class="QPushButton" name="createKeyButton">
<property name="text">
<string>Create New...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="machineTypeLabel">
<property name="text">
<string>Machine type:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="machineTypeValueLabel"/>
</item>
<item row="7" column="0">
<widget class="QLabel" name="gdbServerLabel">
<property name="text">
<string>GDB server executable:</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLineEdit" name="gdbServerLineEdit">
<property name="placeholderText">
<string>Leave empty to look up executable in $PATH</string>
</property>
</widget>
</item>
</layout>
<zorder>authTypeButtonsWidget</zorder>
<zorder>hostNameLabel</zorder>
<zorder>userNameLabel</zorder>
<zorder>freePortsLabel</zorder>
<zorder>userLineEdit</zorder>
<zorder>authTypeLabel</zorder>
<zorder>keyLabel</zorder>
<zorder>machineTypeLabel</zorder>
<zorder>machineTypeValueLabel</zorder>
<zorder>gdbServerLabel</zorder>
<zorder>gdbServerLineEdit</zorder>
</widget>
<customwidgets>
<customwidget>
<class>Utils::PathChooser</class>
<extends>QWidget</extends>
<header location="global">utils/pathchooser.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>defaultAuthButton</tabstop>
<tabstop>keyButton</tabstop>
<tabstop>hostLineEdit</tabstop>
<tabstop>sshPortSpinBox</tabstop>
<tabstop>hostKeyCheckBox</tabstop>
<tabstop>portsLineEdit</tabstop>
<tabstop>timeoutSpinBox</tabstop>
<tabstop>userLineEdit</tabstop>
<tabstop>createKeyButton</tabstop>
<tabstop>gdbServerLineEdit</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@@ -969,7 +969,7 @@ LinuxDevice::~LinuxDevice()
IDeviceWidget *LinuxDevice::createWidget() IDeviceWidget *LinuxDevice::createWidget()
{ {
return new GenericLinuxDeviceConfigurationWidget(sharedFromThis()); return new Internal::GenericLinuxDeviceConfigurationWidget(sharedFromThis());
} }
bool LinuxDevice::canAutoDetectPorts() const bool LinuxDevice::canAutoDetectPorts() const

View File

@@ -27,7 +27,6 @@ Project {
"genericdirectuploadstep.h", "genericdirectuploadstep.h",
"genericlinuxdeviceconfigurationwidget.cpp", "genericlinuxdeviceconfigurationwidget.cpp",
"genericlinuxdeviceconfigurationwidget.h", "genericlinuxdeviceconfigurationwidget.h",
"genericlinuxdeviceconfigurationwidget.ui",
"genericlinuxdeviceconfigurationwizard.cpp", "genericlinuxdeviceconfigurationwizard.cpp",
"genericlinuxdeviceconfigurationwizard.h", "genericlinuxdeviceconfigurationwizard.h",
"genericlinuxdeviceconfigurationwizardpages.cpp", "genericlinuxdeviceconfigurationwizardpages.cpp",