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 <oswald.buddenhagen@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Fawzi Mohamed
2013-04-16 10:56:56 +02:00
parent 1526011f32
commit 1a1791abba
3 changed files with 7 additions and 5 deletions

View File

@@ -141,11 +141,11 @@ QString ConsoleProcess::msgCannotExecute(const QString & p, const QString &why)
return tr("Cannot execute '%1': %2").arg(p, 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) { if (settings) {
const QString value = settings->value(QLatin1String("General/TerminalEmulator")).toString(); const QString value = settings->value(QLatin1String("General/TerminalEmulator")).toString();
if (!value.isEmpty()) if (!nonEmpty || !value.isEmpty())
return value; return value;
} }
return defaultTerminalEmulator(); return defaultTerminalEmulator();

View File

@@ -96,7 +96,7 @@ public:
static QString defaultTerminalEmulator(); static QString defaultTerminalEmulator();
static QStringList availableTerminalEmulators(); 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); static void setTerminalEmulator(QSettings *settings, const QString &term);
signals: signals:

View File

@@ -116,9 +116,11 @@ QWidget *GeneralSettings::createPage(QWidget *parent)
m_page->reloadBehavior->setCurrentIndex(EditorManager::instance()->reloadSetting()); m_page->reloadBehavior->setCurrentIndex(EditorManager::instance()->reloadSetting());
#ifdef Q_OS_UNIX #ifdef Q_OS_UNIX
const QStringList availableTerminals = ConsoleProcess::availableTerminalEmulators(); 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->addItems(availableTerminals);
m_page->terminalComboBox->lineEdit()->setText(currentTerminal); m_page->terminalComboBox->lineEdit()->setText(currentTerminal);
m_page->terminalComboBox->lineEdit()->setPlaceholderText(currentTerminalExplicit);
#else #else
m_page->terminalLabel->hide(); m_page->terminalLabel->hide();
m_page->terminalComboBox->hide(); m_page->terminalComboBox->hide();
@@ -214,7 +216,7 @@ void GeneralSettings::resetWarnings()
void GeneralSettings::resetTerminal() void GeneralSettings::resetTerminal()
{ {
#if defined(Q_OS_UNIX) #if defined(Q_OS_UNIX)
m_page->terminalComboBox->lineEdit()->setText(ConsoleProcess::defaultTerminalEmulator()); m_page->terminalComboBox->lineEdit()->setText(QString());
#endif #endif
} }