diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp index 396cd177d8e..007a1eb5695 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp @@ -411,10 +411,10 @@ QbsRunConfigurationWidget::QbsRunConfigurationWidget(QbsRunConfiguration *rc, QW toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); toplayout->setMargin(0); - m_executableLineEdit = new QLineEdit(this); - m_executableLineEdit->setEnabled(false); - m_executableLineEdit->setPlaceholderText(tr("")); - toplayout->addRow(tr("Executable:"), m_executableLineEdit); + m_executableLineLabel = new QLabel(this); + m_executableLineLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + setExecutableLineText(); + toplayout->addRow(tr("Executable:"), m_executableLineLabel); QLabel *argumentsLabel = new QLabel(tr("Arguments:"), this); m_argumentsLineEdit = new QLineEdit(m_rc->rawCommandLineArguments(), this); @@ -526,13 +526,19 @@ void QbsRunConfigurationWidget::termToggled(bool on) void QbsRunConfigurationWidget::targetInformationHasChanged() { m_ignoreChange = true; - m_executableLineEdit->setText(m_rc->executable()); + setExecutableLineText(m_rc->executable()); m_workingDirectoryEdit->setPath(m_rc->baseWorkingDirectory()); m_workingDirectoryEdit->setBaseFileName(m_rc->target()->project()->projectDirectory()); m_ignoreChange = false; } +void QbsRunConfigurationWidget::setExecutableLineText(const QString &text) +{ + const QString newText = text.isEmpty() ? tr("") : text; + m_executableLineLabel->setText(newText); +} + void QbsRunConfigurationWidget::workingDirectoryChanged(const QString &workingDirectory) { if (!m_ignoreChange) diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h index 39aaa9f542b..c40fab74512 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h @@ -157,11 +157,13 @@ private slots: void targetInformationHasChanged(); private: + void setExecutableLineText(const QString &text = QString()); + QbsRunConfiguration *m_rc; bool m_ignoreChange; QLabel *m_disabledIcon; QLabel *m_disabledReason; - QLineEdit *m_executableLineEdit; + QLabel *m_executableLineLabel; Utils::PathChooser *m_workingDirectoryEdit; QLineEdit *m_argumentsLineEdit; QCheckBox *m_useTerminalCheck; diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp index 97639768f32..47245929f26 100644 --- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp @@ -213,9 +213,9 @@ DesktopQmakeRunConfigurationWidget::DesktopQmakeRunConfigurationWidget(DesktopQm toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); toplayout->setMargin(0); - m_executableLineEdit = new QLineEdit(m_qmakeRunConfiguration->executable(), this); - m_executableLineEdit->setEnabled(false); - toplayout->addRow(tr("Executable:"), m_executableLineEdit); + m_executableLineLabel = new QLabel(m_qmakeRunConfiguration->executable(), this); + m_executableLineLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + toplayout->addRow(tr("Executable:"), m_executableLineLabel); QLabel *argumentsLabel = new QLabel(tr("Arguments:"), this); m_argumentsLineEdit = new QLineEdit(qmakeRunConfiguration->rawCommandLineArguments(), this); @@ -393,7 +393,7 @@ void DesktopQmakeRunConfigurationWidget::usingDyldImageSuffixChanged(bool state) void DesktopQmakeRunConfigurationWidget::effectiveTargetInformationChanged() { if (m_isShown) { - m_executableLineEdit->setText(QDir::toNativeSeparators(m_qmakeRunConfiguration->executable())); + m_executableLineLabel->setText(QDir::toNativeSeparators(m_qmakeRunConfiguration->executable())); m_ignoreChange = true; m_workingDirectoryEdit->setPath(QDir::toNativeSeparators(m_qmakeRunConfiguration->baseWorkingDirectory())); m_ignoreChange = false; diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h index f6ee08e80c5..901e1831f13 100644 --- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h +++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h @@ -171,7 +171,7 @@ private: bool m_ignoreChange; QLabel *m_disabledIcon; QLabel *m_disabledReason; - QLineEdit *m_executableLineEdit; + QLabel *m_executableLineLabel; Utils::PathChooser *m_workingDirectoryEdit; QLineEdit *m_argumentsLineEdit; QCheckBox *m_useTerminalCheck;