citra_qt: support multiple game directories
This commit is contained in:
parent
88ebd844e5
commit
1a57f9488f
26 changed files with 561 additions and 132 deletions
|
@ -202,8 +202,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();
|
||||
|
@ -378,8 +404,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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue