diff --git a/src/libs/utils/pathchooser.cpp b/src/libs/utils/pathchooser.cpp index b396081f189..19c4aa7cebc 100644 --- a/src/libs/utils/pathchooser.cpp +++ b/src/libs/utils/pathchooser.cpp @@ -530,6 +530,16 @@ void PathChooser::setDefaultValue(const QString &defaultValue) d->m_lineEdit->validate(); } +void PathChooser::setPlaceholderText(const QString &placeholderText) +{ + d->m_lineEdit->setPlaceholderText(placeholderText); +} + +void PathChooser::setToolTip(const QString &toolTip) +{ + d->m_lineEdit->setToolTip(toolTip); +} + FancyLineEdit::ValidationFunction PathChooser::defaultValidationFunction() const { return std::bind(&PathChooser::validatePath, this, std::placeholders::_1, std::placeholders::_2); diff --git a/src/libs/utils/pathchooser.h b/src/libs/utils/pathchooser.h index d87918db380..ce7527437d0 100644 --- a/src/libs/utils/pathchooser.h +++ b/src/libs/utils/pathchooser.h @@ -133,6 +133,8 @@ public: // input value during validation if the real value is empty // setting an empty QString will disable this and clear the placeHolderText void setDefaultValue(const QString &defaultValue); + void setPlaceholderText(const QString &placeholderText); + void setToolTip(const QString &toolTip); void setAllowPathFromDevice(bool allow); bool allowPathFromDevice() const; diff --git a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.cpp b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.cpp index 96784f70b59..5d98cdf30ad 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.cpp +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.cpp @@ -63,18 +63,20 @@ GenericLinuxDeviceConfigurationWidget::GenericLinuxDeviceConfigurationWidget( m_keyLabel = new QLabel(Tr::tr("Private key file:")); - m_keyFileLineEdit = new Utils::PathChooser(this); + m_keyFileLineEdit = new PathChooser(this); auto createKeyButton = new QPushButton(Tr::tr("Create New...")); m_machineTypeValueLabel = new QLabel(this); const QString hint = Tr::tr("Leave empty to look up executable in $PATH"); - m_gdbServerLineEdit = new QLineEdit(this); + m_gdbServerLineEdit = new PathChooser(this); + m_gdbServerLineEdit->setExpectedKind(PathChooser::ExistingCommand); m_gdbServerLineEdit->setPlaceholderText(hint); m_gdbServerLineEdit->setToolTip(hint); - m_qmlRuntimeLineEdit = new QLineEdit(this); + m_qmlRuntimeLineEdit = new PathChooser(this); + m_qmlRuntimeLineEdit->setExpectedKind(PathChooser::ExistingCommand); m_qmlRuntimeLineEdit->setPlaceholderText(hint); m_qmlRuntimeLineEdit->setToolTip(hint); @@ -116,9 +118,9 @@ GenericLinuxDeviceConfigurationWidget::GenericLinuxDeviceConfigurationWidget( this, &GenericLinuxDeviceConfigurationWidget::handleFreePortsChanged); connect(createKeyButton, &QAbstractButton::clicked, this, &GenericLinuxDeviceConfigurationWidget::createNewKey); - connect(m_gdbServerLineEdit, &QLineEdit::editingFinished, + connect(m_gdbServerLineEdit, &PathChooser::editingFinished, this, &GenericLinuxDeviceConfigurationWidget::gdbServerEditingFinished); - connect(m_qmlRuntimeLineEdit, &QLineEdit::editingFinished, + connect(m_qmlRuntimeLineEdit, &PathChooser::editingFinished, this, &GenericLinuxDeviceConfigurationWidget::qmlRuntimeEditingFinished); connect(m_hostKeyCheckBox, &QCheckBox::toggled, this, &GenericLinuxDeviceConfigurationWidget::hostKeyCheckingChanged); @@ -177,12 +179,12 @@ void GenericLinuxDeviceConfigurationWidget::keyFileEditingFinished() void GenericLinuxDeviceConfigurationWidget::gdbServerEditingFinished() { - device()->setDebugServerPath(device()->filePath(m_gdbServerLineEdit->text())); + device()->setDebugServerPath(m_gdbServerLineEdit->filePath()); } void GenericLinuxDeviceConfigurationWidget::qmlRuntimeEditingFinished() { - device()->setQmlRunCommand(device()->filePath(m_qmlRuntimeLineEdit->text())); + device()->setQmlRunCommand(m_qmlRuntimeLineEdit->filePath()); } void GenericLinuxDeviceConfigurationWidget::handleFreePortsChanged() @@ -265,9 +267,8 @@ void GenericLinuxDeviceConfigurationWidget::initGui() m_timeoutSpinBox->setValue(sshParams.timeout); m_userLineEdit->setText(sshParams.userName()); m_keyFileLineEdit->setFilePath(sshParams.privateKeyFile); - // FIXME: Use a remote executable line edit - m_gdbServerLineEdit->setText(device()->debugServerPath().path()); - m_qmlRuntimeLineEdit->setText(device()->qmlRunCommand().path()); + m_gdbServerLineEdit->setFilePath(device()->debugServerPath()); + m_qmlRuntimeLineEdit->setFilePath(device()->qmlRunCommand()); updatePortsWarningLabel(); } diff --git a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.h b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.h index 4d3a380bb5d..8b73768d57f 100644 --- a/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.h +++ b/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.h @@ -59,8 +59,8 @@ private: QSpinBox *m_timeoutSpinBox; Utils::PathChooser *m_keyFileLineEdit; QLabel *m_machineTypeValueLabel; - QLineEdit *m_gdbServerLineEdit; - QLineEdit *m_qmlRuntimeLineEdit; + Utils::PathChooser *m_gdbServerLineEdit; + Utils::PathChooser *m_qmlRuntimeLineEdit; }; } // RemoteLinux::Internal