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);
}
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();

View File

@@ -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:

View File

@@ -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
}