From 4c06c6cd1e3d19d5b7f83fe6c8b46777963d767b Mon Sep 17 00:00:00 2001 From: Rafael Date: Sun, 10 Apr 2016 23:18:36 +0200 Subject: [PATCH] add setGameFolder, fixed build bug in Linux --- AppEnv.cpp | 30 +++++++++++++++++++++++++++--- AppEnv.h | 1 + 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/AppEnv.cpp b/AppEnv.cpp index b137b21..607c2f1 100755 --- a/AppEnv.cpp +++ b/AppEnv.cpp @@ -45,7 +45,9 @@ QString AppEnv::getGameFolder(bool *ok) #ifdef GTA5SYNC_WIN _putenv(QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str()); #else - putenv(QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str()); + char* GTAV_FOLDER_char = QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str(); + putenv(GTAV_FOLDER_char); + delete GTAV_FOLDER_char; #endif return dir.absolutePath(); } @@ -71,7 +73,9 @@ QString AppEnv::getGameFolder(bool *ok) #ifdef GTA5SYNC_WIN _putenv(QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str()); #else - putenv(QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str()); + char* GTAV_FOLDER_char = QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str(); + putenv(GTAV_FOLDER_char); + delete GTAV_FOLDER_char; #endif return dir.absolutePath(); } @@ -84,7 +88,9 @@ QString AppEnv::getGameFolder(bool *ok) #ifdef GTA5SYNC_WIN _putenv(QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str()); #else - putenv(QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str()); + char* GTAV_FOLDER_char = QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str(); + putenv(GTAV_FOLDER_char); + delete GTAV_FOLDER_char; #endif return dir.absolutePath(); } @@ -93,3 +99,21 @@ QString AppEnv::getGameFolder(bool *ok) ok = &retok; return ""; } + +bool AppEnv::setGameFolder(QString gameFolder) +{ + QDir dir; + dir.setPath(gameFolder); + if (dir.exists()) + { +#ifdef GTA5SYNC_WIN + _putenv(QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str()); +#else + char* GTAV_FOLDER_char = QString("GTAV_FOLDER=" + dir.absolutePath()).toStdString().c_str(); + putenv(GTAV_FOLDER_char); + delete GTAV_FOLDER_char; +#endif + return true; + } + return false; +} diff --git a/AppEnv.h b/AppEnv.h index 96f93fc..39c6ad9 100755 --- a/AppEnv.h +++ b/AppEnv.h @@ -26,6 +26,7 @@ class AppEnv public: AppEnv(); static QString getGameFolder(bool *ok = 0); + static bool setGameFolder(QString gameFolder); }; #endif // APPENV_H