// Copyright 2016 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include #include #include #include #include #include #include "common/common_types.h" #include "common/settings.h" namespace UISettings { using ContextualShortcut = std::pair; struct Shortcut { QString name; QString group; ContextualShortcut shortcut; }; using Themes = std::array, 6>; extern const Themes themes; struct GameDir { QString path; bool deep_scan = false; bool expanded = false; bool operator==(const GameDir& rhs) const { return path == rhs.path; } bool operator!=(const GameDir& rhs) const { return !operator==(rhs); } }; struct Values { QByteArray geometry; QByteArray state; QByteArray renderwindow_geometry; QByteArray gamelist_header_state; QByteArray microprofile_geometry; Settings::BasicSetting microprofile_visible{false, "microProfileDialogVisible"}; Settings::BasicSetting single_window_mode{true, "singleWindowMode"}; Settings::BasicSetting fullscreen{false, "fullscreen"}; Settings::BasicSetting display_titlebar{true, "displayTitleBars"}; Settings::BasicSetting show_filter_bar{true, "showFilterBar"}; Settings::BasicSetting show_status_bar{true, "showStatusBar"}; Settings::BasicSetting confirm_before_closing{true, "confirmClose"}; Settings::BasicSetting first_start{true, "firstStart"}; Settings::BasicSetting pause_when_in_background{false, "pauseWhenInBackground"}; Settings::BasicSetting hide_mouse{false, "hideInactiveMouse"}; Settings::BasicSetting select_user_on_boot{false, "select_user_on_boot"}; // Discord RPC Settings::BasicSetting enable_discord_presence{true, "enable_discord_presence"}; Settings::BasicSetting enable_screenshot_save_as{true, "enable_screenshot_save_as"}; Settings::BasicSetting screenshot_resolution_factor{0, "screenshot_resolution_factor"}; QString roms_path; QString symbols_path; QString game_dir_deprecated; bool game_dir_deprecated_deepscan; QVector game_dirs; QVector favorited_ids; QStringList recent_files; QString language; QString theme; // Shortcut name std::vector shortcuts; Settings::BasicSetting callout_flags{0, "calloutFlags"}; // logging Settings::BasicSetting show_console{false, "showConsole"}; // Game List Settings::BasicSetting show_add_ons{true, "show_add_ons"}; Settings::BasicSetting game_icon_size{64, "game_icon_size"}; Settings::BasicSetting folder_icon_size{48, "folder_icon_size"}; Settings::BasicSetting row_1_text_id{3, "row_1_text_id"}; Settings::BasicSetting row_2_text_id{2, "row_2_text_id"}; std::atomic_bool is_game_list_reload_pending{false}; Settings::BasicSetting cache_game_list{true, "cache_game_list"}; bool configuration_applied; bool reset_to_defaults; }; extern Values values; } // namespace UISettings Q_DECLARE_METATYPE(UISettings::GameDir*);