From db1d69ece41db6db00944b55fd11d4d008663b90 Mon Sep 17 00:00:00 2001 From: collecting Date: Sat, 4 Oct 2025 00:39:13 +0000 Subject: [PATCH] Edit uisettings.cpp --- src/citron/uisettings.cpp | 156 +++++++++++++++++++------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/src/citron/uisettings.cpp b/src/citron/uisettings.cpp index 2ac580d0d..f4db1824d 100644 --- a/src/citron/uisettings.cpp +++ b/src/citron/uisettings.cpp @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: 2016 Citra Emulator Project -// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project +// SPDX-FileCopyrightText: 2025 citron Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include @@ -9,13 +9,13 @@ #ifndef CANNOT_EXPLICITLY_INSTANTIATE namespace Settings { -template class Setting; -template class Setting; -template class Setting; -template class Setting; -template class Setting; -template class Setting; -template class Setting; + template class Setting; + template class Setting; + template class Setting; + template class Setting; + template class Setting; + template class Setting; + template class Setting; } // namespace Settings #endif @@ -23,93 +23,93 @@ namespace FS = Common::FS; namespace UISettings { -const Themes themes{{ - {"Default", "default"}, - {"Default Colorful", "colorful"}, - {"Dark", "qdarkstyle"}, - {"Dark Colorful", "colorful_dark"}, - {"Midnight Blue", "qdarkstyle_midnight_blue"}, - {"Midnight Blue Colorful", "colorful_midnight_blue"}, -}}; + const Themes themes{{ + {"Default", "default"}, + {"Default Colorful", "colorful"}, + {"Dark", "qdarkstyle"}, + {"Dark Colorful", "colorful_dark"}, + {"Midnight Blue", "qdarkstyle_midnight_blue"}, + {"Midnight Blue Colorful", "colorful_midnight_blue"}, + }}; -bool IsDarkTheme() { - const auto& theme = UISettings::values.theme; - return theme == std::string("qdarkstyle") || theme == std::string("qdarkstyle_midnight_blue") || - theme == std::string("colorful_dark") || theme == std::string("colorful_midnight_blue"); -} - -Values values = {}; - -u32 CalculateWidth(u32 height, Settings::AspectRatio ratio) { - switch (ratio) { - case Settings::AspectRatio::R4_3: - return height * 4 / 3; - case Settings::AspectRatio::R21_9: - return height * 21 / 9; - case Settings::AspectRatio::R16_10: - return height * 16 / 10; - case Settings::AspectRatio::R32_9: - return height * 32 / 9; - case Settings::AspectRatio::R16_9: - case Settings::AspectRatio::Stretch: - // TODO: Move this function wherever appropriate to implement Stretched aspect - break; + bool IsDarkTheme() { + const auto& theme = UISettings::values.theme; + return theme == std::string("qdarkstyle") || theme == std::string("qdarkstyle_midnight_blue") || + theme == std::string("colorful_dark") || theme == std::string("colorful_midnight_blue"); } - return height * 16 / 9; -} -void SaveWindowState() { - const auto window_state_config_loc = + Values values = {}; + + u32 CalculateWidth(u32 height, Settings::AspectRatio ratio) { + switch (ratio) { + case Settings::AspectRatio::R4_3: + return height * 4 / 3; + case Settings::AspectRatio::R21_9: + return height * 21 / 9; + case Settings::AspectRatio::R16_10: + return height * 16 / 10; + case Settings::AspectRatio::R32_9: + return height * 32 / 9; + case Settings::AspectRatio::R16_9: + case Settings::AspectRatio::Stretch: + // TODO: Move this function wherever appropriate to implement Stretched aspect + break; + } + return height * 16 / 9; + } + + void SaveWindowState() { + const auto window_state_config_loc = FS::PathToUTF8String(FS::GetCitronPath(FS::CitronPath::ConfigDir) / "window_state.ini"); - void(FS::CreateParentDir(window_state_config_loc)); - QSettings config(QString::fromStdString(window_state_config_loc), QSettings::IniFormat); + void(FS::CreateParentDir(window_state_config_loc)); + QSettings config(QString::fromStdString(window_state_config_loc), QSettings::IniFormat); - config.setValue(QStringLiteral("geometry"), values.geometry); - config.setValue(QStringLiteral("state"), values.state); - config.setValue(QStringLiteral("geometryRenderWindow"), values.renderwindow_geometry); - config.setValue(QStringLiteral("gameListHeaderState"), values.gamelist_header_state); - config.setValue(QStringLiteral("microProfileDialogGeometry"), values.microprofile_geometry); + config.setValue(QStringLiteral("geometry"), values.geometry); + config.setValue(QStringLiteral("state"), values.state); + config.setValue(QStringLiteral("geometryRenderWindow"), values.renderwindow_geometry); + config.setValue(QStringLiteral("gameListHeaderState"), values.gamelist_header_state); + config.setValue(QStringLiteral("microProfileDialogGeometry"), values.microprofile_geometry); - config.sync(); -} + config.sync(); + } -void RestoreWindowState(std::unique_ptr& qtConfig) { - const auto window_state_config_loc = + void RestoreWindowState(std::unique_ptr& qtConfig) { + const auto window_state_config_loc = FS::PathToUTF8String(FS::GetCitronPath(FS::CitronPath::ConfigDir) / "window_state.ini"); - // Migrate window state from old location - if (!FS::Exists(window_state_config_loc) && qtConfig->Exists("UI", "UILayout\\geometry")) { - const auto config_loc = + // Migrate window state from old location + if (!FS::Exists(window_state_config_loc) && qtConfig->Exists("UI", "UILayout\\geometry")) { + const auto config_loc = FS::PathToUTF8String(FS::GetCitronPath(FS::CitronPath::ConfigDir) / "qt-config.ini"); - QSettings config(QString::fromStdString(config_loc), QSettings::IniFormat); + QSettings config(QString::fromStdString(config_loc), QSettings::IniFormat); + + config.beginGroup(QStringLiteral("UI")); + config.beginGroup(QStringLiteral("UILayout")); + values.geometry = config.value(QStringLiteral("geometry")).toByteArray(); + values.state = config.value(QStringLiteral("state")).toByteArray(); + values.renderwindow_geometry = + config.value(QStringLiteral("geometryRenderWindow")).toByteArray(); + values.gamelist_header_state = + config.value(QStringLiteral("gameListHeaderState")).toByteArray(); + values.microprofile_geometry = + config.value(QStringLiteral("microProfileDialogGeometry")).toByteArray(); + config.endGroup(); + config.endGroup(); + return; + } + + void(FS::CreateParentDir(window_state_config_loc)); + const QSettings config(QString::fromStdString(window_state_config_loc), QSettings::IniFormat); - config.beginGroup(QStringLiteral("UI")); - config.beginGroup(QStringLiteral("UILayout")); values.geometry = config.value(QStringLiteral("geometry")).toByteArray(); values.state = config.value(QStringLiteral("state")).toByteArray(); values.renderwindow_geometry = - config.value(QStringLiteral("geometryRenderWindow")).toByteArray(); + config.value(QStringLiteral("geometryRenderWindow")).toByteArray(); values.gamelist_header_state = - config.value(QStringLiteral("gameListHeaderState")).toByteArray(); + config.value(QStringLiteral("gameListHeaderState")).toByteArray(); values.microprofile_geometry = - config.value(QStringLiteral("microProfileDialogGeometry")).toByteArray(); - config.endGroup(); - config.endGroup(); - return; + config.value(QStringLiteral("microProfileDialogGeometry")).toByteArray(); } - void(FS::CreateParentDir(window_state_config_loc)); - const QSettings config(QString::fromStdString(window_state_config_loc), QSettings::IniFormat); - - values.geometry = config.value(QStringLiteral("geometry")).toByteArray(); - values.state = config.value(QStringLiteral("state")).toByteArray(); - values.renderwindow_geometry = - config.value(QStringLiteral("geometryRenderWindow")).toByteArray(); - values.gamelist_header_state = - config.value(QStringLiteral("gameListHeaderState")).toByteArray(); - values.microprofile_geometry = - config.value(QStringLiteral("microProfileDialogGeometry")).toByteArray(); -} - } // namespace UISettings