// 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 #include "common/settings.h" namespace UISettings { struct ContextualShortcut { QString keyseq; int context; }; 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); } }; enum class GameListIconSize : u32 { NoIcon, ///< Do not display icons SmallIcon, ///< Display a small (24x24) icon LargeIcon, ///< Display a large (48x48) icon }; enum class GameListText : s32 { NoText = -1, ///< No text FileName, ///< Display the file name of the entry FullPath, ///< Display the full path of the entry TitleName, ///< Display the name of the title TitleID, ///< Display the title ID LongTitleName, ///< Display the long name of the title ListEnd, ///< Keep this at the end of the enum. }; struct Values { QByteArray geometry; QByteArray state; QByteArray renderwindow_geometry; QByteArray gamelist_header_state; QByteArray microprofile_geometry; Settings::Setting microprofile_visible{false, "microProfileDialogVisible"}; Settings::Setting single_window_mode{true, "singleWindowMode"}; Settings::Setting fullscreen{false, "fullscreen"}; Settings::Setting display_titlebar{true, "displayTitleBars"}; Settings::Setting show_filter_bar{true, "showFilterBar"}; Settings::Setting show_status_bar{true, "showStatusBar"}; Settings::Setting confirm_before_closing{true, "confirmClose"}; Settings::Setting save_state_warning{true, "saveStateWarning"}; Settings::Setting first_start{true, "firstStart"}; Settings::Setting pause_when_in_background{false, "pauseWhenInBackground"}; Settings::Setting mute_when_in_background{false, "muteWhenInBackground"}; Settings::Setting hide_mouse{false, "hideInactiveMouse"}; bool updater_found; Settings::Setting update_on_close{false, "update_on_close"}; Settings::Setting check_for_update_on_start{true, "check_for_update_on_start"}; // Discord RPC Settings::Setting enable_discord_presence{true, "enable_discord_presence"}; // Game List Settings::Setting game_list_icon_size{GameListIconSize::LargeIcon, "iconSize"}; Settings::Setting game_list_row_1{GameListText::TitleName, "row1"}; Settings::Setting game_list_row_2{GameListText::FileName, "row2"}; Settings::Setting game_list_hide_no_icon{false, "hideNoIcon"}; Settings::Setting game_list_single_line_mode{false, "singleLineMode"}; // Compatibility List Settings::Setting show_compat_column{true, "show_compat_column"}; Settings::Setting show_region_column{true, "show_region_column"}; Settings::Setting show_type_column{true, "show_type_column"}; Settings::Setting show_size_column{true, "show_size_column"}; Settings::Setting screenshot_resolution_factor{0, "screenshot_resolution_factor"}; Settings::SwitchableSetting screenshot_path{"", "screenshotPath"}; QString roms_path; QString symbols_path; QString movie_record_path; QString movie_playback_path; QString video_dumping_path; QString game_dir_deprecated; bool game_dir_deprecated_deepscan; QVector game_dirs; QStringList recent_files; QString language; QString theme; // Shortcut name std::vector shortcuts; Settings::Setting callout_flags{0, "calloutFlags"}; // multiplayer settings QString nickname; QString ip; QString port; QString room_nickname; QString room_name; quint32 max_player; QString room_port; uint host_type; qulonglong game_id; QString room_description; std::pair, std::vector> ban_list; QString multiplayer_filter_text; bool multiplayer_filter_games_owned; bool multiplayer_filter_hide_empty; bool multiplayer_filter_hide_full; // logging Settings::Setting show_console{false, "showConsole"}; }; extern Values values; } // namespace UISettings Q_DECLARE_METATYPE(UISettings::GameDir*);