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