From 033f211a10c726fecd3b661394c4248f678a3240 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@digia.com> Date: Sat, 29 Dec 2012 20:41:11 +0100 Subject: [PATCH] Windows compile fix. e8b5c6dfcca3fc139049136b42459e7840efed7 : Provide terminal emulator functionality in ConsoleProcess for Windows as well. e833b794b3ebdba075f6fb533a3343f05fbce0fc : Use Core::Id(). Change-Id: Idad2bd2180e9a5dd2d1266496e340726435835d3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> --- src/libs/utils/consoleprocess.cpp | 17 +++++++++++++++++ src/libs/utils/consoleprocess.h | 3 ++- src/libs/utils/consoleprocess_unix.cpp | 14 -------------- src/libs/utils/consoleprocess_win.cpp | 10 ++++++++++ src/plugins/coreplugin/fileutils.cpp | 2 +- src/plugins/debugger/gdb/gdbengine.cpp | 2 +- 6 files changed, 31 insertions(+), 17 deletions(-) diff --git a/src/libs/utils/consoleprocess.cpp b/src/libs/utils/consoleprocess.cpp index a4876a9b5d5..964ae45eb2f 100644 --- a/src/libs/utils/consoleprocess.cpp +++ b/src/libs/utils/consoleprocess.cpp @@ -29,6 +29,8 @@ #include "consoleprocess_p.h" +#include <QSettings> + namespace Utils { ConsoleProcess::~ConsoleProcess() @@ -137,4 +139,19 @@ QString ConsoleProcess::msgCannotExecute(const QString & p, const QString &why) return tr("Cannot execute '%1': %2").arg(p, why); } +QString ConsoleProcess::terminalEmulator(const QSettings *settings) +{ + if (settings) { + const QString value = settings->value(QLatin1String("General/TerminalEmulator")).toString(); + if (!value.isEmpty()) + return value; + } + return defaultTerminalEmulator(); +} + +void ConsoleProcess::setTerminalEmulator(QSettings *settings, const QString &term) +{ + return settings->setValue(QLatin1String("General/TerminalEmulator"), term); +} + } diff --git a/src/libs/utils/consoleprocess.h b/src/libs/utils/consoleprocess.h index 42387713de0..9a5403c4d7c 100644 --- a/src/libs/utils/consoleprocess.h +++ b/src/libs/utils/consoleprocess.h @@ -85,11 +85,12 @@ public: static QString createWinCommandline(const QString &program, const QString &args); #else void setSettings(QSettings *settings); +#endif + static QString defaultTerminalEmulator(); static QStringList availableTerminalEmulators(); static QString terminalEmulator(const QSettings *settings); static void setTerminalEmulator(QSettings *settings, const QString &term); -#endif signals: void processError(const QString &error); diff --git a/src/libs/utils/consoleprocess_unix.cpp b/src/libs/utils/consoleprocess_unix.cpp index 6607e71ed70..a8ba73debc2 100644 --- a/src/libs/utils/consoleprocess_unix.cpp +++ b/src/libs/utils/consoleprocess_unix.cpp @@ -335,18 +335,4 @@ QStringList ConsoleProcess::availableTerminalEmulators() return result; } -QString ConsoleProcess::terminalEmulator(const QSettings *settings) -{ - if (settings) { - const QString value = settings->value(QLatin1String("General/TerminalEmulator")).toString(); - if (!value.isEmpty()) - return value; - } - return defaultTerminalEmulator(); -} - -void ConsoleProcess::setTerminalEmulator(QSettings *settings, const QString &term) -{ - return settings->setValue(QLatin1String("General/TerminalEmulator"), term); -} } // namespace Utils diff --git a/src/libs/utils/consoleprocess_win.cpp b/src/libs/utils/consoleprocess_win.cpp index c245990f7f0..c038dd8d400 100644 --- a/src/libs/utils/consoleprocess_win.cpp +++ b/src/libs/utils/consoleprocess_win.cpp @@ -358,4 +358,14 @@ QString ConsoleProcess::createWinCommandline(const QString &program, const QStri return programName; } +QString ConsoleProcess::defaultTerminalEmulator() +{ + return QString::fromLocal8Bit(qgetenv("COMSPEC")); +} + +QStringList ConsoleProcess::availableTerminalEmulators() +{ + return QStringList(ConsoleProcess::defaultTerminalEmulator()); +} + } // namespace Utils diff --git a/src/plugins/coreplugin/fileutils.cpp b/src/plugins/coreplugin/fileutils.cpp index 58ee844d741..9cd06264076 100644 --- a/src/plugins/coreplugin/fileutils.cpp +++ b/src/plugins/coreplugin/fileutils.cpp @@ -124,7 +124,7 @@ void FileUtils::openTerminal(const QString &path) QString terminalEmulator; QStringList args; if (HostOsInfo::isWindowsHost()) { - terminalEmulator = QString::fromLocal8Bit(qgetenv("COMSPEC")); + terminalEmulator = ConsoleProcess::defaultTerminalEmulator(); } else if (HostOsInfo::isMacHost()) { terminalEmulator = ICore::resourcePath() + QLatin1String("/scripts/openTerminal.command"); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index ff9641fb287..27da9164d15 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -5378,7 +5378,7 @@ bool GdbEngine::prepareCommand() // perr == BadQuoting is never returned on Windows // FIXME? QTCREATORBUG-2809 handleAdapterStartFailed(QCoreApplication::translate("DebuggerEngine", // Same message in CdbEngine - "Debugging complex command lines is currently not supported on Windows."), QString()); + "Debugging complex command lines is currently not supported on Windows."), Core::Id()); return false; } #endif -- GitLab