From 1a1791abba4e0ce00b84d86a7606ac39d778c334 Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed Date: Tue, 16 Apr 2013 10:56:56 +0200 Subject: [PATCH] consoleprocess: use empty string as default terminal Using empty string as default terminal avoids storing a path to QtCreator resources (which becomes invalid if creator is deleted) on mac. Change-Id: I9d5fe9bce38387d82de451652df6be9ec5eb5960 Reviewed-by: Oswald Buddenhagen Reviewed-by: Eike Ziller --- src/libs/utils/consoleprocess.cpp | 4 ++-- src/libs/utils/consoleprocess.h | 2 +- src/plugins/coreplugin/generalsettings.cpp | 6 ++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libs/utils/consoleprocess.cpp b/src/libs/utils/consoleprocess.cpp index 630783fa18d..d5430d91d90 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 8dcff02bf13..5b99961ad94 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 e65f26978bc..92f03dd2d09 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 }