diff --git a/src/libs/utils/consoleprocess.cpp b/src/libs/utils/consoleprocess.cpp index 630783fa18d14f37b3b2461e3a780d975a3e8734..d5430d91d90b87a3b46225b9f0ea556660387034 100644 --- a/src/libs/utils/consoleprocess.cpp +++ b/src/libs/utils/consoleprocess.cpp @@ -141,11 +141,11 @@ QString ConsoleProcess::msgCannotExecute(const QString & p, const QString &why) return tr("Cannot execute '%1': %2").arg(p, why); } -QString ConsoleProcess::terminalEmulator(const QSettings *settings) +QString ConsoleProcess::terminalEmulator(const QSettings *settings, bool nonEmpty) { if (settings) { const QString value = settings->value(QLatin1String("General/TerminalEmulator")).toString(); - if (!value.isEmpty()) + if (!nonEmpty || !value.isEmpty()) return value; } return defaultTerminalEmulator(); diff --git a/src/libs/utils/consoleprocess.h b/src/libs/utils/consoleprocess.h index 8dcff02bf13e808387c61b864968fbe9475d077c..5b99961ad94800d722ba366fe3e979744f46e70f 100644 --- a/src/libs/utils/consoleprocess.h +++ b/src/libs/utils/consoleprocess.h @@ -96,7 +96,7 @@ public: static QString defaultTerminalEmulator(); static QStringList availableTerminalEmulators(); - static QString terminalEmulator(const QSettings *settings); + static QString terminalEmulator(const QSettings *settings, bool nonEmpty = true); static void setTerminalEmulator(QSettings *settings, const QString &term); signals: diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp index e65f26978bc774fb0b23b12892862d63ddbf355a..92f03dd2d0919af6f53ceafb84af13fb49d2efc8 100644 --- a/src/plugins/coreplugin/generalsettings.cpp +++ b/src/plugins/coreplugin/generalsettings.cpp @@ -116,9 +116,11 @@ QWidget *GeneralSettings::createPage(QWidget *parent) m_page->reloadBehavior->setCurrentIndex(EditorManager::instance()->reloadSetting()); #ifdef Q_OS_UNIX const QStringList availableTerminals = ConsoleProcess::availableTerminalEmulators(); - const QString currentTerminal = ConsoleProcess::terminalEmulator(settings); + const QString currentTerminal = ConsoleProcess::terminalEmulator(settings, false); + const QString currentTerminalExplicit = ConsoleProcess::terminalEmulator(settings, true); m_page->terminalComboBox->addItems(availableTerminals); m_page->terminalComboBox->lineEdit()->setText(currentTerminal); + m_page->terminalComboBox->lineEdit()->setPlaceholderText(currentTerminalExplicit); #else m_page->terminalLabel->hide(); m_page->terminalComboBox->hide(); @@ -214,7 +216,7 @@ void GeneralSettings::resetWarnings() void GeneralSettings::resetTerminal() { #if defined(Q_OS_UNIX) - m_page->terminalComboBox->lineEdit()->setText(ConsoleProcess::defaultTerminalEmulator()); + m_page->terminalComboBox->lineEdit()->setText(QString()); #endif }