forked from qt-creator/qt-creator
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:
@@ -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();
|
||||
|
@@ -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:
|
||||
|
@@ -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
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user