Windows compile fix.

e8b5c6dfcca3fc139049136b42459e7840efed7 :
Provide terminal emulator functionality in ConsoleProcess for
Windows as well.

e833b794b3 :
Use Core::Id().

Change-Id: Idad2bd2180e9a5dd2d1266496e340726435835d3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
Friedemann Kleint
2012-12-29 20:41:11 +01:00
parent 2344456b3f
commit 033f211a10
6 changed files with 31 additions and 17 deletions

View File

@@ -29,6 +29,8 @@
#include "consoleprocess_p.h" #include "consoleprocess_p.h"
#include <QSettings>
namespace Utils { namespace Utils {
ConsoleProcess::~ConsoleProcess() ConsoleProcess::~ConsoleProcess()
@@ -137,4 +139,19 @@ 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)
{
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);
}
} }

View File

@@ -85,11 +85,12 @@ public:
static QString createWinCommandline(const QString &program, const QString &args); static QString createWinCommandline(const QString &program, const QString &args);
#else #else
void setSettings(QSettings *settings); void setSettings(QSettings *settings);
#endif
static QString defaultTerminalEmulator(); static QString defaultTerminalEmulator();
static QStringList availableTerminalEmulators(); static QStringList availableTerminalEmulators();
static QString terminalEmulator(const QSettings *settings); static QString terminalEmulator(const QSettings *settings);
static void setTerminalEmulator(QSettings *settings, const QString &term); static void setTerminalEmulator(QSettings *settings, const QString &term);
#endif
signals: signals:
void processError(const QString &error); void processError(const QString &error);

View File

@@ -335,18 +335,4 @@ QStringList ConsoleProcess::availableTerminalEmulators()
return result; 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 } // namespace Utils

View File

@@ -358,4 +358,14 @@ QString ConsoleProcess::createWinCommandline(const QString &program, const QStri
return programName; return programName;
} }
QString ConsoleProcess::defaultTerminalEmulator()
{
return QString::fromLocal8Bit(qgetenv("COMSPEC"));
}
QStringList ConsoleProcess::availableTerminalEmulators()
{
return QStringList(ConsoleProcess::defaultTerminalEmulator());
}
} // namespace Utils } // namespace Utils

View File

@@ -124,7 +124,7 @@ void FileUtils::openTerminal(const QString &path)
QString terminalEmulator; QString terminalEmulator;
QStringList args; QStringList args;
if (HostOsInfo::isWindowsHost()) { if (HostOsInfo::isWindowsHost()) {
terminalEmulator = QString::fromLocal8Bit(qgetenv("COMSPEC")); terminalEmulator = ConsoleProcess::defaultTerminalEmulator();
} else if (HostOsInfo::isMacHost()) { } else if (HostOsInfo::isMacHost()) {
terminalEmulator = ICore::resourcePath() terminalEmulator = ICore::resourcePath()
+ QLatin1String("/scripts/openTerminal.command"); + QLatin1String("/scripts/openTerminal.command");

View File

@@ -5378,7 +5378,7 @@ bool GdbEngine::prepareCommand()
// perr == BadQuoting is never returned on Windows // perr == BadQuoting is never returned on Windows
// FIXME? QTCREATORBUG-2809 // FIXME? QTCREATORBUG-2809
handleAdapterStartFailed(QCoreApplication::translate("DebuggerEngine", // Same message in CdbEngine 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; return false;
} }
#endif #endif