| 212 | } |
| 213 | |
| 214 | void Config::load(const std::filesystem::path& gamepath) { |
| 215 | |
| 216 | /* Open the general preferences */ |
| 217 | std::filesystem::path generalPath = configdir / "libTAS.ini"; |
| 218 | QSettings general_settings(QString(generalPath.c_str()), QSettings::IniFormat); |
| 219 | general_settings.setFallbacksEnabled(false); |
| 220 | |
| 221 | int size = general_settings.beginReadArray("recent_gamepaths"); |
| 222 | if (size > 0) |
| 223 | recent_gamepaths.clear(); |
| 224 | for (int i = 0; i < size; ++i) { |
| 225 | general_settings.setArrayIndex(i); |
| 226 | std::string path = general_settings.value("gamepath").toString().toStdString(); |
| 227 | recent_gamepaths.push_back(path); |
| 228 | } |
| 229 | general_settings.endArray(); |
| 230 | |
| 231 | #ifdef __unix__ |
| 232 | debugger = general_settings.value("debugger", debugger).toInt(); |
| 233 | #elif defined(__APPLE__) && defined(__MACH__) |
| 234 | debugger = DEBUGGER_LLDB; |
| 235 | #endif |
| 236 | strace_events = general_settings.value("strace_events").toString().toStdString(); |
| 237 | allow_downloads = general_settings.value("allow_downloads", allow_downloads).toInt(); |
| 238 | |
| 239 | ffmpegoptions = general_settings.value("ffmpegoptions", ffmpegoptions.c_str()).toString().toStdString(); |
| 240 | |
| 241 | char *path; |
| 242 | if (general_settings.contains("datadir")) { |
| 243 | datadir = general_settings.value("datadir").toString().toStdString(); |
| 244 | } |
| 245 | else { |
| 246 | path = getenv("XDG_DATA_HOME"); |
| 247 | if (path) { |
| 248 | datadir = path; |
| 249 | } |
| 250 | else { |
| 251 | datadir = getenv("HOME"); |
| 252 | datadir /= ".local"; |
| 253 | datadir /= "share"; |
| 254 | } |
| 255 | datadir /= "libTAS"; |
| 256 | } |
| 257 | |
| 258 | std::filesystem::path subpath; |
| 259 | |
| 260 | subpath = datadir / "steam"; |
| 261 | steamuserdir = general_settings.value("steamuserdir", subpath.c_str()).toString().toStdString(); |
| 262 | |
| 263 | subpath = datadir / "movie"; |
| 264 | tempmoviedir = general_settings.value("tempmoviedir", subpath.c_str()).toString().toStdString(); |
| 265 | |
| 266 | subpath = datadir / "states"; |
| 267 | savestatedir = general_settings.value("savestatedir", subpath.c_str()).toString().toStdString(); |
| 268 | |
| 269 | subpath = datadir / "ramsearch"; |
| 270 | ramsearchdir = general_settings.value("ramsearchdir", subpath.c_str()).toString().toStdString(); |
| 271 |
no test coverage detected