From 701ddd5c10fc7a9ff7855dbdb798d00aa86bec22 Mon Sep 17 00:00:00 2001 From: Jonathan Young Date: Fri, 9 May 2014 12:56:11 +1000 Subject: [PATCH] Calculate the ioquake3 home path on startup. --- mainwindow.cpp | 28 +++++++++++++++++++++++++++- mainwindow.h | 1 + 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index e5f4c8c..74da1ab 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,4 +1,12 @@ +#include #include + +#ifdef Q_OS_WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#include +#endif + #include "mainwindow.h" #include "ui_mainwindow.h" @@ -11,6 +19,24 @@ ioLaunch::ioLaunch(QWidget *parent) : resOption = ""; screenOption = ""; + // Calculate ioquake3 home path. +#ifdef Q_OS_WIN32 + wchar_t path[MAX_PATH]; + + if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, path))) + { + homePath = QString::fromWCharArray(path) + "/Quake3"; + } +#elif defined(Q_OS_MAC) || defined(Q_OS_UNIX) + const QByteArray homeEnvRaw = qgetenv("HOME"); + const QString homeEnv(homeEnvRaw.constData()); + + #if defined Q_OS_MAC + homePath = homeEnv + "/Library/Application Support/Quake3"; + #elif defined Q_OS_UNIX + homePath = homeEnv + "/.q3a"; + #endif +#endif } ioLaunch::~ioLaunch() @@ -48,7 +74,7 @@ void ioLaunch::on_btnLaunch_clicked() settings.setQuakePath(path); } - ioq3 = QString("\"") + settings.getQuakePath() + QDir::separator() + "ioquake3.x86.exe\" +set r_mode -1"; + ioq3 = QString("\"") + settings.getQuakePath() + "/ioquake3.x86.exe\" +set r_mode -1"; #elif defined Q_OS_MAC ioq3 = "open -a ioquake3 --args +set r_mode -1"; #elif defined Q_OS_UNIX diff --git a/mainwindow.h b/mainwindow.h index ad924d6..1eacc7d 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -51,6 +51,7 @@ private: bool ioWedited; bool ioHedited; Settings settings; + QString homePath; }; #endif // MAINWINDOW_H