Merge pull request #3617 from BreadFish64/multiple-game-dirs

QT: Add support for multiple game directories
This commit is contained in:
James Rowe 2018-06-17 21:04:24 -06:00 committed by GitHub
commit c39dee1569
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 646 additions and 177 deletions

View file

@ -207,8 +207,34 @@ void Config::ReadValues() {
qt_config->beginGroup("Paths");
UISettings::values.roms_path = qt_config->value("romsPath").toString();
UISettings::values.symbols_path = qt_config->value("symbolsPath").toString();
UISettings::values.gamedir = qt_config->value("gameListRootDir", ".").toString();
UISettings::values.gamedir_deepscan = qt_config->value("gameListDeepScan", false).toBool();
UISettings::values.game_dir_deprecated = qt_config->value("gameListRootDir", ".").toString();
UISettings::values.game_dir_deprecated_deepscan =
qt_config->value("gameListDeepScan", false).toBool();
int size = qt_config->beginReadArray("gamedirs");
for (int i = 0; i < size; ++i) {
qt_config->setArrayIndex(i);
UISettings::GameDir game_dir;
game_dir.path = qt_config->value("path").toString();
game_dir.deep_scan = qt_config->value("deep_scan", false).toBool();
game_dir.expanded = qt_config->value("expanded", true).toBool();
UISettings::values.game_dirs.append(game_dir);
}
qt_config->endArray();
// create NAND and SD card directories if empty, these are not removable through the UI, also
// carries over old game list settings if present
if (UISettings::values.game_dirs.isEmpty()) {
UISettings::GameDir game_dir;
game_dir.path = "INSTALLED";
game_dir.expanded = true;
UISettings::values.game_dirs.append(game_dir);
game_dir.path = "SYSTEM";
UISettings::values.game_dirs.append(game_dir);
if (UISettings::values.game_dir_deprecated != ".") {
game_dir.path = UISettings::values.game_dir_deprecated;
game_dir.deep_scan = UISettings::values.game_dir_deprecated_deepscan;
UISettings::values.game_dirs.append(game_dir);
}
}
UISettings::values.recent_files = qt_config->value("recentFiles").toStringList();
UISettings::values.language = qt_config->value("language", "").toString();
qt_config->endGroup();
@ -386,8 +412,15 @@ void Config::SaveValues() {
qt_config->beginGroup("Paths");
qt_config->setValue("romsPath", UISettings::values.roms_path);
qt_config->setValue("symbolsPath", UISettings::values.symbols_path);
qt_config->setValue("gameListRootDir", UISettings::values.gamedir);
qt_config->setValue("gameListDeepScan", UISettings::values.gamedir_deepscan);
qt_config->beginWriteArray("gamedirs");
for (int i = 0; i < UISettings::values.game_dirs.size(); ++i) {
qt_config->setArrayIndex(i);
const auto& game_dir = UISettings::values.game_dirs.at(i);
qt_config->setValue("path", game_dir.path);
qt_config->setValue("deep_scan", game_dir.deep_scan);
qt_config->setValue("expanded", game_dir.expanded);
}
qt_config->endArray();
qt_config->setValue("recentFiles", UISettings::values.recent_files);
qt_config->setValue("language", UISettings::values.language);
qt_config->endGroup();