@ -83,6 +83,7 @@
# include "core/savestate.h"
# include "core/settings.h"
# include "game_list_p.h"
# include "ui_main.h"
# include "video_core/renderer_base.h"
# include "video_core/video_core.h"
@ -147,7 +148,9 @@ static void InitializeLogging() {
# endif
}
GMainWindow : : GMainWindow ( ) : config ( new Config ( ) ) , emu_thread ( nullptr ) {
GMainWindow : : GMainWindow ( )
: config ( std : : make_unique < Config > ( ) ) , emu_thread ( nullptr ) ,
ui ( std : : make_unique < Ui : : MainWindow > ( ) ) {
InitializeLogging ( ) ;
Debugger : : ToggleConsole ( ) ;
Settings : : LogSettings ( ) ;
@ -160,7 +163,7 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) {
Pica : : g_debug_context = Pica : : DebugContext : : Construct ( ) ;
setAcceptDrops ( true ) ;
ui . setupUi ( this ) ;
ui - > setupUi ( this ) ;
statusBar ( ) - > hide ( ) ;
default_theme_paths = QIcon : : themeSearchPaths ( ) ;
@ -201,12 +204,12 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) {
ShowTelemetryCallout ( ) ;
// make sure menubar has the arrow cursor instead of inheriting from this
ui . menubar - > setCursor ( QCursor ( ) ) ;
ui - > menubar - > setCursor ( QCursor ( ) ) ;
statusBar ( ) - > setCursor ( QCursor ( ) ) ;
mouse_hide_timer . setInterval ( default_mouse_timeout ) ;
connect ( & mouse_hide_timer , & QTimer : : timeout , this , & GMainWindow : : HideMouseCursor ) ;
connect ( ui . menubar , & QMenuBar : : hovered , this , & GMainWindow : : ShowMouseCursor ) ;
connect ( ui - > menubar , & QMenuBar : : hovered , this , & GMainWindow : : ShowMouseCursor ) ;
if ( UISettings : : values . check_for_update_on_start ) {
CheckForUpdates ( ) ;
@ -229,21 +232,21 @@ GMainWindow::~GMainWindow() {
void GMainWindow : : InitializeWidgets ( ) {
# ifdef CITRA_ENABLE_COMPATIBILITY_REPORTING
ui . action_Report_Compatibility - > setVisible ( true ) ;
ui - > action_Report_Compatibility - > setVisible ( true ) ;
# endif
render_window = new GRenderWindow ( this , emu_thread . get ( ) ) ;
render_window - > hide ( ) ;
game_list = new GameList ( this ) ;
ui . horizontalLayout - > addWidget ( game_list ) ;
ui - > horizontalLayout - > addWidget ( game_list ) ;
game_list_placeholder = new GameListPlaceholder ( this ) ;
ui . horizontalLayout - > addWidget ( game_list_placeholder ) ;
ui - > horizontalLayout - > addWidget ( game_list_placeholder ) ;
game_list_placeholder - > setVisible ( false ) ;
loading_screen = new LoadingScreen ( this ) ;
loading_screen - > hide ( ) ;
ui . horizontalLayout - > addWidget ( loading_screen ) ;
ui - > horizontalLayout - > addWidget ( loading_screen ) ;
connect ( loading_screen , & LoadingScreen : : Hidden , [ & ] {
loading_screen - > Clear ( ) ;
if ( emulation_running ) {
@ -252,8 +255,8 @@ void GMainWindow::InitializeWidgets() {
}
} ) ;
multiplayer_state = new MultiplayerState ( this , game_list - > GetModel ( ) , ui . action_Leave_Room ,
ui . action_Show_Room ) ;
multiplayer_state = new MultiplayerState ( this , game_list - > GetModel ( ) , ui - > action_Leave_Room ,
ui - > action_Show_Room ) ;
multiplayer_state - > setVisible ( false ) ;
// Setup updater
@ -298,17 +301,17 @@ void GMainWindow::InitializeWidgets() {
setStyleSheet ( QStringLiteral ( " QStatusBar::item{border: none;} " ) ) ;
QActionGroup * actionGroup_ScreenLayouts = new QActionGroup ( this ) ;
actionGroup_ScreenLayouts - > addAction ( ui . action_Screen_Layout_Default ) ;
actionGroup_ScreenLayouts - > addAction ( ui . action_Screen_Layout_Single_Screen ) ;
actionGroup_ScreenLayouts - > addAction ( ui . action_Screen_Layout_Large_Screen ) ;
actionGroup_ScreenLayouts - > addAction ( ui . action_Screen_Layout_Side_by_Side ) ;
actionGroup_ScreenLayouts - > addAction ( ui - > action_Screen_Layout_Default ) ;
actionGroup_ScreenLayouts - > addAction ( ui - > action_Screen_Layout_Single_Screen ) ;
actionGroup_ScreenLayouts - > addAction ( ui - > action_Screen_Layout_Large_Screen ) ;
actionGroup_ScreenLayouts - > addAction ( ui - > action_Screen_Layout_Side_by_Side ) ;
}
void GMainWindow : : InitializeDebugWidgets ( ) {
connect ( ui . action_Create_Pica_Surface_Viewer , & QAction : : triggered , this ,
connect ( ui - > action_Create_Pica_Surface_Viewer , & QAction : : triggered , this ,
& GMainWindow : : OnCreateGraphicsSurfaceViewer ) ;
QMenu * debug_menu = ui . menu_View_Debugging ;
QMenu * debug_menu = ui - > menu_View_Debugging ;
# if MICROPROFILE_ENABLED
microProfileDialog = new MicroProfileDialog ( this ) ;
@ -386,16 +389,16 @@ void GMainWindow::InitializeRecentFileMenuActions() {
actions_recent_files [ i ] - > setVisible ( false ) ;
connect ( actions_recent_files [ i ] , & QAction : : triggered , this , & GMainWindow : : OnMenuRecentFile ) ;
ui . menu_recent_files - > addAction ( actions_recent_files [ i ] ) ;
ui - > menu_recent_files - > addAction ( actions_recent_files [ i ] ) ;
}
ui . menu_recent_files - > addSeparator ( ) ;
ui - > menu_recent_files - > addSeparator ( ) ;
QAction * action_clear_recent_files = new QAction ( this ) ;
action_clear_recent_files - > setText ( tr ( " Clear Recent Files " ) ) ;
connect ( action_clear_recent_files , & QAction : : triggered , this , [ this ] {
UISettings : : values . recent_files . clear ( ) ;
UpdateRecentFiles ( ) ;
} ) ;
ui . menu_recent_files - > addAction ( action_clear_recent_files ) ;
ui - > menu_recent_files - > addAction ( action_clear_recent_files ) ;
UpdateRecentFiles ( ) ;
}
@ -405,28 +408,28 @@ void GMainWindow::InitializeSaveStateMenuActions() {
actions_load_state [ i ] = new QAction ( this ) ;
actions_load_state [ i ] - > setData ( i + 1 ) ;
connect ( actions_load_state [ i ] , & QAction : : triggered , this , & GMainWindow : : OnLoadState ) ;
ui . menu_Load_State - > addAction ( actions_load_state [ i ] ) ;
ui - > menu_Load_State - > addAction ( actions_load_state [ i ] ) ;
actions_save_state [ i ] = new QAction ( this ) ;
actions_save_state [ i ] - > setData ( i + 1 ) ;
connect ( actions_save_state [ i ] , & QAction : : triggered , this , & GMainWindow : : OnSaveState ) ;
ui . menu_Save_State - > addAction ( actions_save_state [ i ] ) ;
ui - > menu_Save_State - > addAction ( actions_save_state [ i ] ) ;
}
connect ( ui . action_Load_from_Newest_Slot , & QAction : : triggered , [ this ] {
connect ( ui - > action_Load_from_Newest_Slot , & QAction : : triggered , [ this ] {
UpdateSaveStates ( ) ;
if ( newest_slot ! = 0 ) {
actions_load_state [ newest_slot - 1 ] - > trigger ( ) ;
}
} ) ;
connect ( ui . action_Save_to_Oldest_Slot , & QAction : : triggered , [ this ] {
connect ( ui - > action_Save_to_Oldest_Slot , & QAction : : triggered , [ this ] {
UpdateSaveStates ( ) ;
actions_save_state [ oldest_slot - 1 ] - > trigger ( ) ;
} ) ;
connect ( ui . menu_Load_State - > menuAction ( ) , & QAction : : hovered , this ,
connect ( ui - > menu_Load_State - > menuAction ( ) , & QAction : : hovered , this ,
& GMainWindow : : UpdateSaveStates ) ;
connect ( ui . menu_Save_State - > menuAction ( ) , & QAction : : hovered , this ,
connect ( ui - > menu_Save_State - > menuAction ( ) , & QAction : : hovered , this ,
& GMainWindow : : UpdateSaveStates ) ;
UpdateSaveStates ( ) ;
@ -443,24 +446,24 @@ void GMainWindow::InitializeHotkeys() {
const QString toggle_status_bar = QStringLiteral ( " Toggle Status Bar " ) ;
const QString fullscreen = QStringLiteral ( " Fullscreen " ) ;
ui . action_Show_Filter_Bar - > setShortcut (
ui - > action_Show_Filter_Bar - > setShortcut (
hotkey_registry . GetKeySequence ( main_window , toggle_filter_bar ) ) ;
ui . action_Show_Filter_Bar - > setShortcutContext (
ui - > action_Show_Filter_Bar - > setShortcutContext (
hotkey_registry . GetShortcutContext ( main_window , toggle_filter_bar ) ) ;
ui . action_Show_Status_Bar - > setShortcut (
ui - > action_Show_Status_Bar - > setShortcut (
hotkey_registry . GetKeySequence ( main_window , toggle_status_bar ) ) ;
ui . action_Show_Status_Bar - > setShortcutContext (
ui - > action_Show_Status_Bar - > setShortcutContext (
hotkey_registry . GetShortcutContext ( main_window , toggle_status_bar ) ) ;
connect ( hotkey_registry . GetHotkey ( main_window , load_file , this ) , & QShortcut : : activated ,
ui . action_Load_File , & QAction : : trigger ) ;
ui - > action_Load_File , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , stop_emulation , this ) , & QShortcut : : activated ,
ui . action_Stop , & QAction : : trigger ) ;
ui - > action_Stop , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , exit_citra , this ) , & QShortcut : : activated ,
ui . action_Exit , & QAction : : trigger ) ;
ui - > action_Exit , & QAction : : trigger ) ;
connect (
hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Continue/Pause Emulation " ) , this ) ,
@ -480,21 +483,21 @@ void GMainWindow::InitializeHotkeys() {
BootGame ( QString ( game_path ) ) ;
} ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Swap Screens " ) , render_window ) ,
& QShortcut : : activated , ui . action_Screen_Layout_Swap_Screens , & QAction : : trigger ) ;
& QShortcut : : activated , ui - > action_Screen_Layout_Swap_Screens , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Rotate Screens Upright " ) ,
render_window ) ,
& QShortcut : : activated , ui . action_Screen_Layout_Upright_Screens , & QAction : : trigger ) ;
& QShortcut : : activated , ui - > action_Screen_Layout_Upright_Screens , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Toggle Screen Layout " ) ,
render_window ) ,
& QShortcut : : activated , this , & GMainWindow : : ToggleScreenLayout ) ;
connect ( hotkey_registry . GetHotkey ( main_window , fullscreen , render_window ) ,
& QShortcut : : activated , ui . action_Fullscreen , & QAction : : trigger ) ;
& QShortcut : : activated , ui - > action_Fullscreen , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , fullscreen , render_window ) ,
& QShortcut : : activatedAmbiguously , ui . action_Fullscreen , & QAction : : trigger ) ;
& QShortcut : : activatedAmbiguously , ui - > action_Fullscreen , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Exit Fullscreen " ) , this ) ,
& QShortcut : : activated , this , [ & ] {
if ( emulation_running ) {
ui . action_Fullscreen - > setChecked ( false ) ;
ui - > action_Fullscreen - > setChecked ( false ) ;
ToggleFullscreen ( ) ;
}
} ) ;
@ -552,18 +555,18 @@ void GMainWindow::InitializeHotkeys() {
UpdateStatusBar ( ) ;
} ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Toggle Frame Advancing " ) , this ) ,
& QShortcut : : activated , ui . action_Enable_Frame_Advancing , & QAction : : trigger ) ;
& QShortcut : : activated , ui - > action_Enable_Frame_Advancing , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Advance Frame " ) , this ) ,
& QShortcut : : activated , ui . action_Advance_Frame , & QAction : : trigger ) ;
& QShortcut : : activated , ui - > action_Advance_Frame , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Load Amiibo " ) , this ) ,
& QShortcut : : activated , this , [ & ] {
if ( ui . action_Load_Amiibo - > isEnabled ( ) ) {
if ( ui - > action_Load_Amiibo - > isEnabled ( ) ) {
OnLoadAmiibo ( ) ;
}
} ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Remove Amiibo " ) , this ) ,
& QShortcut : : activated , this , [ & ] {
if ( ui . action_Remove_Amiibo - > isEnabled ( ) ) {
if ( ui - > action_Remove_Amiibo - > isEnabled ( ) ) {
OnRemoveAmiibo ( ) ;
}
} ) ;
@ -574,14 +577,14 @@ void GMainWindow::InitializeHotkeys() {
}
} ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Load from Newest Slot " ) , this ) ,
& QShortcut : : activated , ui . action_Load_from_Newest_Slot , & QAction : : trigger ) ;
& QShortcut : : activated , ui - > action_Load_from_Newest_Slot , & QAction : : trigger ) ;
connect ( hotkey_registry . GetHotkey ( main_window , QStringLiteral ( " Save to Oldest Slot " ) , this ) ,
& QShortcut : : activated , ui . action_Save_to_Oldest_Slot , & QAction : : trigger ) ;
& QShortcut : : activated , ui - > action_Save_to_Oldest_Slot , & QAction : : trigger ) ;
}
void GMainWindow : : ShowUpdaterWidgets ( ) {
ui . action_Check_For_Updates - > setVisible ( UISettings : : values . updater_found ) ;
ui . action_Open_Maintenance_Tool - > setVisible ( UISettings : : values . updater_found ) ;
ui - > action_Check_For_Updates - > setVisible ( UISettings : : values . updater_found ) ;
ui - > action_Open_Maintenance_Tool - > setVisible ( UISettings : : values . updater_found ) ;
connect ( updater , & Updater : : CheckUpdatesDone , this , & GMainWindow : : OnUpdateFound ) ;
}
@ -606,24 +609,24 @@ void GMainWindow::RestoreUIState() {
microProfileDialog - > restoreGeometry ( UISettings : : values . microprofile_geometry ) ;
microProfileDialog - > setVisible ( UISettings : : values . microprofile_visible ) ;
# endif
ui . action_Cheats - > setEnabled ( false ) ;
ui - > action_Cheats - > setEnabled ( false ) ;
game_list - > LoadInterfaceLayout ( ) ;
ui . action_Single_Window_Mode - > setChecked ( UISettings : : values . single_window_mode ) ;
ui - > action_Single_Window_Mode - > setChecked ( UISettings : : values . single_window_mode ) ;
ToggleWindowMode ( ) ;
ui . action_Fullscreen - > setChecked ( UISettings : : values . fullscreen ) ;
ui - > action_Fullscreen - > setChecked ( UISettings : : values . fullscreen ) ;
SyncMenuUISettings ( ) ;
ui . action_Display_Dock_Widget_Headers - > setChecked ( UISettings : : values . display_titlebar ) ;
OnDisplayTitleBars ( ui . action_Display_Dock_Widget_Headers - > isChecked ( ) ) ;
ui - > action_Display_Dock_Widget_Headers - > setChecked ( UISettings : : values . display_titlebar ) ;
OnDisplayTitleBars ( ui - > action_Display_Dock_Widget_Headers - > isChecked ( ) ) ;
ui . action_Show_Filter_Bar - > setChecked ( UISettings : : values . show_filter_bar ) ;
game_list - > setFilterVisible ( ui . action_Show_Filter_Bar - > isChecked ( ) ) ;
ui - > action_Show_Filter_Bar - > setChecked ( UISettings : : values . show_filter_bar ) ;
game_list - > setFilterVisible ( ui - > action_Show_Filter_Bar - > isChecked ( ) ) ;
ui . action_Show_Status_Bar - > setChecked ( UISettings : : values . show_status_bar ) ;
statusBar ( ) - > setVisible ( ui . action_Show_Status_Bar - > isChecked ( ) ) ;
ui - > action_Show_Status_Bar - > setChecked ( UISettings : : values . show_status_bar ) ;
statusBar ( ) - > setVisible ( ui - > action_Show_Status_Bar - > isChecked ( ) ) ;
}
void GMainWindow : : OnAppFocusStateChanged ( Qt : : ApplicationState state ) {
@ -634,11 +637,11 @@ void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) {
state ! = Qt : : ApplicationActive ) {
LOG_DEBUG ( Frontend , " ApplicationState unusual flag: {} " , state ) ;
}
if ( ui . action_Pause - > isEnabled ( ) & &
if ( ui - > action_Pause - > isEnabled ( ) & &
( state & ( Qt : : ApplicationHidden | Qt : : ApplicationInactive ) ) ) {
auto_paused = true ;
OnPauseGame ( ) ;
} else if ( ui . action_Start - > isEnabled ( ) & & auto_paused & & state = = Qt : : ApplicationActive ) {
} else if ( ui - > action_Start - > isEnabled ( ) & & auto_paused & & state = = Qt : : ApplicationActive ) {
auto_paused = false ;
OnStartGame ( ) ;
}
@ -674,116 +677,117 @@ void GMainWindow::ConnectWidgetEvents() {
void GMainWindow : : ConnectMenuEvents ( ) {
// File
connect ( ui . action_Load_File , & QAction : : triggered , this , & GMainWindow : : OnMenuLoadFile ) ;
connect ( ui . action_Install_CIA , & QAction : : triggered , this , & GMainWindow : : OnMenuInstallCIA ) ;
connect ( ui . action_Exit , & QAction : : triggered , this , & QMainWindow : : close ) ;
connect ( ui . action_Load_Amiibo , & QAction : : triggered , this , & GMainWindow : : OnLoadAmiibo ) ;
connect ( ui . action_Remove_Amiibo , & QAction : : triggered , this , & GMainWindow : : OnRemoveAmiibo ) ;
connect ( ui - > action_Load_File , & QAction : : triggered , this , & GMainWindow : : OnMenuLoadFile ) ;
connect ( ui - > action_Install_CIA , & QAction : : triggered , this , & GMainWindow : : OnMenuInstallCIA ) ;
connect ( ui - > action_Exit , & QAction : : triggered , this , & QMainWindow : : close ) ;
connect ( ui - > action_Load_Amiibo , & QAction : : triggered , this , & GMainWindow : : OnLoadAmiibo ) ;
connect ( ui - > action_Remove_Amiibo , & QAction : : triggered , this , & GMainWindow : : OnRemoveAmiibo ) ;
// Emulation
connect ( ui . action_Start , & QAction : : triggered , this , & GMainWindow : : OnStartGame ) ;
connect ( ui . action_Pause , & QAction : : triggered , this , & GMainWindow : : OnPauseGame ) ;
connect ( ui . action_Stop , & QAction : : triggered , this , & GMainWindow : : OnStopGame ) ;
connect ( ui . action_Restart , & QAction : : triggered , this , [ this ] { BootGame ( QString ( game_path ) ) ; } ) ;
connect ( ui . action_Report_Compatibility , & QAction : : triggered , this ,
connect ( ui - > action_Start , & QAction : : triggered , this , & GMainWindow : : OnStartGame ) ;
connect ( ui - > action_Pause , & QAction : : triggered , this , & GMainWindow : : OnPauseGame ) ;
connect ( ui - > action_Stop , & QAction : : triggered , this , & GMainWindow : : OnStopGame ) ;
connect ( ui - > action_Restart , & QAction : : triggered , this ,
[ this ] { BootGame ( QString ( game_path ) ) ; } ) ;
connect ( ui - > action_Report_Compatibility , & QAction : : triggered , this ,
& GMainWindow : : OnMenuReportCompatibility ) ;
connect ( ui . action_Configure , & QAction : : triggered , this , & GMainWindow : : OnConfigure ) ;
connect ( ui . action_Cheats , & QAction : : triggered , this , & GMainWindow : : OnCheats ) ;
connect ( ui - > action_Configure , & QAction : : triggered , this , & GMainWindow : : OnConfigure ) ;
connect ( ui - > action_Cheats , & QAction : : triggered , this , & GMainWindow : : OnCheats ) ;
// View
connect ( ui . action_Single_Window_Mode , & QAction : : triggered , this ,
connect ( ui - > action_Single_Window_Mode , & QAction : : triggered , this ,
& GMainWindow : : ToggleWindowMode ) ;
connect ( ui . action_Display_Dock_Widget_Headers , & QAction : : triggered , this ,
connect ( ui - > action_Display_Dock_Widget_Headers , & QAction : : triggered , this ,
& GMainWindow : : OnDisplayTitleBars ) ;
connect ( ui . action_Show_Filter_Bar , & QAction : : triggered , this , & GMainWindow : : OnToggleFilterBar ) ;
connect ( ui . action_Show_Status_Bar , & QAction : : triggered , statusBar ( ) , & QStatusBar : : setVisible ) ;
connect ( ui - > action_Show_Filter_Bar , & QAction : : triggered , this , & GMainWindow : : OnToggleFilterBar ) ;
connect ( ui - > action_Show_Status_Bar , & QAction : : triggered , statusBar ( ) , & QStatusBar : : setVisible ) ;
// Multiplayer
connect ( ui . action_View_Lobby , & QAction : : triggered , multiplayer_state ,
connect ( ui - > action_View_Lobby , & QAction : : triggered , multiplayer_state ,
& MultiplayerState : : OnViewLobby ) ;
connect ( ui . action_Start_Room , & QAction : : triggered , multiplayer_state ,
connect ( ui - > action_Start_Room , & QAction : : triggered , multiplayer_state ,
& MultiplayerState : : OnCreateRoom ) ;
connect ( ui . action_Leave_Room , & QAction : : triggered , multiplayer_state ,
connect ( ui - > action_Leave_Room , & QAction : : triggered , multiplayer_state ,
& MultiplayerState : : OnCloseRoom ) ;
connect ( ui . action_Connect_To_Room , & QAction : : triggered , multiplayer_state ,
connect ( ui - > action_Connect_To_Room , & QAction : : triggered , multiplayer_state ,
& MultiplayerState : : OnDirectConnectToRoom ) ;
connect ( ui . action_Show_Room , & QAction : : triggered , multiplayer_state ,
connect ( ui - > action_Show_Room , & QAction : : triggered , multiplayer_state ,
& MultiplayerState : : OnOpenNetworkRoom ) ;
ui . action_Fullscreen - > setShortcut (
ui - > action_Fullscreen - > setShortcut (
hotkey_registry
. GetHotkey ( QStringLiteral ( " Main Window " ) , QStringLiteral ( " Fullscreen " ) , this )
- > key ( ) ) ;
ui . action_Screen_Layout_Swap_Screens - > setShortcut (
ui - > action_Screen_Layout_Swap_Screens - > setShortcut (
hotkey_registry
. GetHotkey ( QStringLiteral ( " Main Window " ) , QStringLiteral ( " Swap Screens " ) , this )
- > key ( ) ) ;
ui . action_Screen_Layout_Swap_Screens - > setShortcutContext ( Qt : : WidgetWithChildrenShortcut ) ;
ui . action_Screen_Layout_Upright_Screens - > setShortcut (
ui - > action_Screen_Layout_Swap_Screens - > setShortcutContext ( Qt : : WidgetWithChildrenShortcut ) ;
ui - > action_Screen_Layout_Upright_Screens - > setShortcut (
hotkey_registry
. GetHotkey ( QStringLiteral ( " Main Window " ) , QStringLiteral ( " Rotate Screens Upright " ) ,
this )
- > key ( ) ) ;
ui . action_Screen_Layout_Upright_Screens - > setShortcutContext ( Qt : : WidgetWithChildrenShortcut ) ;
connect ( ui . action_Fullscreen , & QAction : : triggered , this , & GMainWindow : : ToggleFullscreen ) ;
connect ( ui . action_Screen_Layout_Default , & QAction : : triggered , this ,
ui - > action_Screen_Layout_Upright_Screens - > setShortcutContext ( Qt : : WidgetWithChildrenShortcut ) ;
connect ( ui - > action_Fullscreen , & QAction : : triggered , this , & GMainWindow : : ToggleFullscreen ) ;
connect ( ui - > action_Screen_Layout_Default , & QAction : : triggered , this ,
& GMainWindow : : ChangeScreenLayout ) ;
connect ( ui . action_Screen_Layout_Single_Screen , & QAction : : triggered , this ,
connect ( ui - > action_Screen_Layout_Single_Screen , & QAction : : triggered , this ,
& GMainWindow : : ChangeScreenLayout ) ;
connect ( ui . action_Screen_Layout_Large_Screen , & QAction : : triggered , this ,
connect ( ui - > action_Screen_Layout_Large_Screen , & QAction : : triggered , this ,
& GMainWindow : : ChangeScreenLayout ) ;
connect ( ui . action_Screen_Layout_Side_by_Side , & QAction : : triggered , this ,
connect ( ui - > action_Screen_Layout_Side_by_Side , & QAction : : triggered , this ,
& GMainWindow : : ChangeScreenLayout ) ;
connect ( ui . action_Screen_Layout_Swap_Screens , & QAction : : triggered , this ,
connect ( ui - > action_Screen_Layout_Swap_Screens , & QAction : : triggered , this ,
& GMainWindow : : OnSwapScreens ) ;
connect ( ui . action_Screen_Layout_Upright_Screens , & QAction : : triggered , this ,
connect ( ui - > action_Screen_Layout_Upright_Screens , & QAction : : triggered , this ,
& GMainWindow : : OnRotateScreens ) ;
// Movie
connect ( ui . action_Record_Movie , & QAction : : triggered , this , & GMainWindow : : OnRecordMovie ) ;
connect ( ui . action_Play_Movie , & QAction : : triggered , this , & GMainWindow : : OnPlayMovie ) ;
connect ( ui . action_Stop_Recording_Playback , & QAction : : triggered , this ,
connect ( ui - > action_Record_Movie , & QAction : : triggered , this , & GMainWindow : : OnRecordMovie ) ;
connect ( ui - > action_Play_Movie , & QAction : : triggered , this , & GMainWindow : : OnPlayMovie ) ;
connect ( ui - > action_Stop_Recording_Playback , & QAction : : triggered , this ,
& GMainWindow : : OnStopRecordingPlayback ) ;
connect ( ui . action_Enable_Frame_Advancing , & QAction : : triggered , this , [ this ] {
connect ( ui - > action_Enable_Frame_Advancing , & QAction : : triggered , this , [ this ] {
if ( emulation_running ) {
Core : : System : : GetInstance ( ) . frame_limiter . SetFrameAdvancing (
ui . action_Enable_Frame_Advancing - > isChecked ( ) ) ;
ui . action_Advance_Frame - > setEnabled ( ui . action_Enable_Frame_Advancing - > isChecked ( ) ) ;
ui - > action_Enable_Frame_Advancing - > isChecked ( ) ) ;
ui - > action_Advance_Frame - > setEnabled ( ui - > action_Enable_Frame_Advancing - > isChecked ( ) ) ;
}
} ) ;
connect ( ui . action_Advance_Frame , & QAction : : triggered , this , [ this ] {
connect ( ui - > action_Advance_Frame , & QAction : : triggered , this , [ this ] {
if ( emulation_running ) {
ui . action_Enable_Frame_Advancing - > setChecked ( true ) ;
ui . action_Advance_Frame - > setEnabled ( true ) ;
ui - > action_Enable_Frame_Advancing - > setChecked ( true ) ;
ui - > action_Advance_Frame - > setEnabled ( true ) ;
Core : : System : : GetInstance ( ) . frame_limiter . SetFrameAdvancing ( true ) ;
Core : : System : : GetInstance ( ) . frame_limiter . AdvanceFrame ( ) ;
}
} ) ;
connect ( ui . action_Capture_Screenshot , & QAction : : triggered , this ,
connect ( ui - > action_Capture_Screenshot , & QAction : : triggered , this ,
& GMainWindow : : OnCaptureScreenshot ) ;
# ifdef ENABLE_FFMPEG_VIDEO_DUMPER
connect ( ui . action_Dump_Video , & QAction : : triggered , [ this ] {
if ( ui . action_Dump_Video - > isChecked ( ) ) {
connect ( ui - > action_Dump_Video , & QAction : : triggered , [ this ] {
if ( ui - > action_Dump_Video - > isChecked ( ) ) {
OnStartVideoDumping ( ) ;
} else {
OnStopVideoDumping ( ) ;
}
} ) ;
# else
ui . action_Dump_Video - > setEnabled ( false ) ;
ui - > action_Dump_Video - > setEnabled ( false ) ;
# endif
// Help
connect ( ui . action_Open_Citra_Folder , & QAction : : triggered , this ,
connect ( ui - > action_Open_Citra_Folder , & QAction : : triggered , this ,
& GMainWindow : : OnOpenCitraFolder ) ;
connect ( ui . action_FAQ , & QAction : : triggered , [ ] ( ) {
connect ( ui - > action_FAQ , & QAction : : triggered , [ ] ( ) {
QDesktopServices : : openUrl ( QUrl ( QStringLiteral ( " https://citra-emu.org/wiki/faq/ " ) ) ) ;
} ) ;
connect ( ui . action_About , & QAction : : triggered , this , & GMainWindow : : OnMenuAboutCitra ) ;
connect ( ui . action_Check_For_Updates , & QAction : : triggered , this ,
connect ( ui - > action_About , & QAction : : triggered , this , & GMainWindow : : OnMenuAboutCitra ) ;
connect ( ui - > action_Check_For_Updates , & QAction : : triggered , this ,
& GMainWindow : : OnCheckForUpdates ) ;
connect ( ui . action_Open_Maintenance_Tool , & QAction : : triggered , this ,
connect ( ui - > action_Open_Maintenance_Tool , & QAction : : triggered , this ,
& GMainWindow : : OnOpenUpdater ) ;
}
@ -1038,7 +1042,7 @@ void GMainWindow::BootGame(const QString& filename) {
// Update the GUI
registersWidget - > OnDebugModeEntered ( ) ;
if ( ui . action_Single_Window_Mode - > isChecked ( ) ) {
if ( ui - > action_Single_Window_Mode - > isChecked ( ) ) {
game_list - > hide ( ) ;
game_list_placeholder - > hide ( ) ;
}
@ -1047,7 +1051,7 @@ void GMainWindow::BootGame(const QString& filename) {
if ( UISettings : : values . hide_mouse ) {
mouse_hide_timer . start ( ) ;
setMouseTracking ( true ) ;
ui . centralwidget - > setMouseTracking ( true ) ;
ui - > centralwidget - > setMouseTracking ( true ) ;
}
// show and hide the render_window to create the context
@ -1058,7 +1062,7 @@ void GMainWindow::BootGame(const QString& filename) {
loading_screen - > show ( ) ;
emulation_running = true ;
if ( ui . action_Fullscreen - > isChecked ( ) ) {
if ( ui - > action_Fullscreen - > isChecked ( ) ) {
ShowFullscreen ( ) ;
}
@ -1071,7 +1075,7 @@ void GMainWindow::BootGame(const QString& filename) {
QMessageBox : : critical (
this , tr ( " Citra " ) ,
tr ( " Could not start video dumping.<br>Refer to the log for details. " ) ) ;
ui . action_Dump_Video - > setChecked ( false ) ;
ui - > action_Dump_Video - > setChecked ( false ) ;
}
video_dumping_on_start = false ;
video_dumping_path . clear ( ) ;
@ -1084,7 +1088,7 @@ void GMainWindow::ShutdownGame() {
return ;
}
if ( ui . action_Fullscreen - > isChecked ( ) ) {
if ( ui - > action_Fullscreen - > isChecked ( ) ) {
HideFullscreen ( ) ;
}
@ -1126,19 +1130,19 @@ void GMainWindow::ShutdownGame() {
disconnect ( render_window , & GRenderWindow : : Closed , this , & GMainWindow : : OnStopGame ) ;
// Update the GUI
ui . action_Start - > setEnabled ( false ) ;
ui . action_Start - > setText ( tr ( " Start " ) ) ;
ui . action_Pause - > setEnabled ( false ) ;
ui . action_Stop - > setEnabled ( false ) ;
ui . action_Restart - > setEnabled ( false ) ;
ui . action_Cheats - > setEnabled ( false ) ;
ui . action_Load_Amiibo - > setEnabled ( false ) ;
ui . action_Remove_Amiibo - > setEnabled ( false ) ;
ui . action_Report_Compatibility - > setEnabled ( false ) ;
ui . action_Enable_Frame_Advancing - > setEnabled ( false ) ;
ui . action_Enable_Frame_Advancing - > setChecked ( false ) ;
ui . action_Advance_Frame - > setEnabled ( false ) ;
ui . action_Capture_Screenshot - > setEnabled ( false ) ;
ui - > action_Start - > setEnabled ( false ) ;
ui - > action_Start - > setText ( tr ( " Start " ) ) ;
ui - > action_Pause - > setEnabled ( false ) ;
ui - > action_Stop - > setEnabled ( false ) ;
ui - > action_Restart - > setEnabled ( false ) ;
ui - > action_Cheats - > setEnabled ( false ) ;
ui - > action_Load_Amiibo - > setEnabled ( false ) ;
ui - > action_Remove_Amiibo - > setEnabled ( false ) ;
ui - > action_Report_Compatibility - > setEnabled ( false ) ;
ui - > action_Enable_Frame_Advancing - > setEnabled ( false ) ;
ui - > action_Enable_Frame_Advancing - > setChecked ( false ) ;
ui - > action_Advance_Frame - > setEnabled ( false ) ;
ui - > action_Capture_Screenshot - > setEnabled ( false ) ;
render_window - > hide ( ) ;
loading_screen - > hide ( ) ;
loading_screen - > Clear ( ) ;
@ -1149,7 +1153,7 @@ void GMainWindow::ShutdownGame() {
game_list - > setFilterFocus ( ) ;
setMouseTracking ( false ) ;
ui . centralwidget - > setMouseTracking ( false ) ;
ui - > centralwidget - > setMouseTracking ( false ) ;
// Disable status bar updates
status_bar_update_timer . stop ( ) ;
@ -1203,19 +1207,19 @@ void GMainWindow::UpdateRecentFiles() {
}
// Enable the recent files menu if the list isn't empty
ui . menu_recent_files - > setEnabled ( num_recent_files ! = 0 ) ;
ui - > menu_recent_files - > setEnabled ( num_recent_files ! = 0 ) ;
}
void GMainWindow : : UpdateSaveStates ( ) {
if ( ! Core : : System : : GetInstance ( ) . IsPoweredOn ( ) ) {
ui . menu_Load_State - > setEnabled ( false ) ;
ui . menu_Save_State - > setEnabled ( false ) ;
ui - > menu_Load_State - > setEnabled ( false ) ;
ui - > menu_Save_State - > setEnabled ( false ) ;
return ;
}
ui . menu_Load_State - > setEnabled ( true ) ;
ui . menu_Save_State - > setEnabled ( true ) ;
ui . action_Load_from_Newest_Slot - > setEnabled ( false ) ;
ui - > menu_Load_State - > setEnabled ( true ) ;
ui - > menu_Save_State - > setEnabled ( true ) ;
ui - > action_Load_from_Newest_Slot - > setEnabled ( false ) ;
oldest_slot = newest_slot = 0 ;
oldest_slot_time = std : : numeric_limits < u64 > : : max ( ) ;
@ -1241,7 +1245,7 @@ void GMainWindow::UpdateSaveStates() {
actions_load_state [ savestate . slot - 1 ] - > setText ( text ) ;
actions_save_state [ savestate . slot - 1 ] - > setText ( text ) ;
ui . action_Load_from_Newest_Slot - > setEnabled ( true ) ;
ui - > action_Load_from_Newest_Slot - > setEnabled ( true ) ;
if ( savestate . time > newest_slot_time ) {
newest_slot = savestate . slot ;
@ -1414,7 +1418,7 @@ void GMainWindow::OnGameListAddDirectory() {
}
void GMainWindow : : OnGameListShowList ( bool show ) {
if ( emulation_running & & ui . action_Single_Window_Mode - > isChecked ( ) )
if ( emulation_running & & ui - > action_Single_Window_Mode - > isChecked ( ) )
return ;
game_list - > setVisible ( show ) ;
game_list_placeholder - > setVisible ( ! show ) ;
@ -1448,7 +1452,7 @@ void GMainWindow::OnMenuInstallCIA() {
}
void GMainWindow : : InstallCIA ( QStringList filepaths ) {
ui . action_Install_CIA - > setEnabled ( false ) ;
ui - > action_Install_CIA - > setEnabled ( false ) ;
game_list - > setDirectoryWatcherEnabled ( false ) ;
progress_bar - > show ( ) ;
progress_bar - > setMaximum ( INT_MAX ) ;
@ -1504,7 +1508,7 @@ void GMainWindow::OnCIAInstallFinished() {
progress_bar - > hide ( ) ;
progress_bar - > setValue ( 0 ) ;
game_list - > setDirectoryWatcherEnabled ( true ) ;
ui . action_Install_CIA - > setEnabled ( true ) ;
ui - > action_Install_CIA - > setEnabled ( true ) ;
game_list - > PopulateAsync ( UISettings : : values . game_dirs ) ;
}
@ -1541,17 +1545,17 @@ void GMainWindow::OnStartGame() {
qRegisterMetaType < std : : string > ( " std::string " ) ;
connect ( emu_thread . get ( ) , & EmuThread : : ErrorThrown , this , & GMainWindow : : OnCoreError ) ;
ui . action_Start - > setEnabled ( false ) ;
ui . action_Start - > setText ( tr ( " Continue " ) ) ;
ui - > action_Start - > setEnabled ( false ) ;
ui - > action_Start - > setText ( tr ( " Continue " ) ) ;
ui . action_Pause - > setEnabled ( true ) ;
ui . action_Stop - > setEnabled ( true ) ;
ui . action_Restart - > setEnabled ( true ) ;
ui . action_Cheats - > setEnabled ( true ) ;
ui . action_Load_Amiibo - > setEnabled ( true ) ;
ui . action_Report_Compatibility - > setEnabled ( true ) ;
ui . action_Enable_Frame_Advancing - > setEnabled ( true ) ;
ui . action_Capture_Screenshot - > setEnabled ( true ) ;
ui - > action_Pause - > setEnabled ( true ) ;
ui - > action_Stop - > setEnabled ( true ) ;
ui - > action_Restart - > setEnabled ( true ) ;
ui - > action_Cheats - > setEnabled ( true ) ;
ui - > action_Load_Amiibo - > setEnabled ( true ) ;
ui - > action_Report_Compatibility - > setEnabled ( true ) ;
ui - > action_Enable_Frame_Advancing - > setEnabled ( true ) ;
ui - > action_Capture_Screenshot - > setEnabled ( true ) ;
discord_rpc - > Update ( ) ;
@ -1561,10 +1565,10 @@ void GMainWindow::OnStartGame() {
void GMainWindow : : OnPauseGame ( ) {
emu_thread - > SetRunning ( false ) ;
Camera : : QtMultimediaCameraHandler : : StopCameras ( ) ;
ui . action_Start - > setEnabled ( true ) ;
ui . action_Pause - > setEnabled ( false ) ;
ui . action_Stop - > setEnabled ( true ) ;
ui . action_Capture_Screenshot - > setEnabled ( false ) ;
ui - > action_Start - > setEnabled ( true ) ;
ui - > action_Pause - > setEnabled ( false ) ;
ui - > action_Stop - > setEnabled ( true ) ;
ui - > action_Capture_Screenshot - > setEnabled ( false ) ;
AllowOSSleep ( ) ;
}
@ -1592,7 +1596,7 @@ void GMainWindow::ToggleFullscreen() {
if ( ! emulation_running ) {
return ;
}
if ( ui . action_Fullscreen - > isChecked ( ) ) {
if ( ui - > action_Fullscreen - > isChecked ( ) ) {
ShowFullscreen ( ) ;
} else {
HideFullscreen ( ) ;
@ -1600,9 +1604,9 @@ void GMainWindow::ToggleFullscreen() {
}
void GMainWindow : : ShowFullscreen ( ) {
if ( ui . action_Single_Window_Mode - > isChecked ( ) ) {
if ( ui - > action_Single_Window_Mode - > isChecked ( ) ) {
UISettings : : values . geometry = saveGeometry ( ) ;
ui . menubar - > hide ( ) ;
ui - > menubar - > hide ( ) ;
statusBar ( ) - > hide ( ) ;
showFullScreen ( ) ;
} else {
@ -1612,9 +1616,9 @@ void GMainWindow::ShowFullscreen() {
}
void GMainWindow : : HideFullscreen ( ) {
if ( ui . action_Single_Window_Mode - > isChecked ( ) ) {
statusBar ( ) - > setVisible ( ui . action_Show_Status_Bar - > isChecked ( ) ) ;
ui . menubar - > show ( ) ;
if ( ui - > action_Single_Window_Mode - > isChecked ( ) ) {
statusBar ( ) - > setVisible ( ui - > action_Show_Status_Bar - > isChecked ( ) ) ;
ui - > menubar - > show ( ) ;
showNormal ( ) ;
restoreGeometry ( UISettings : : values . geometry ) ;
} else {
@ -1624,10 +1628,10 @@ void GMainWindow::HideFullscreen() {
}
void GMainWindow : : ToggleWindowMode ( ) {
if ( ui . action_Single_Window_Mode - > isChecked ( ) ) {
if ( ui - > action_Single_Window_Mode - > isChecked ( ) ) {
// Render in the main window...
render_window - > BackupGeometry ( ) ;
ui . horizontalLayout - > addWidget ( render_window ) ;
ui - > horizontalLayout - > addWidget ( render_window ) ;
render_window - > setFocusPolicy ( Qt : : StrongFocus ) ;
if ( emulation_running ) {
render_window - > setVisible ( true ) ;
@ -1637,7 +1641,7 @@ void GMainWindow::ToggleWindowMode() {
} else {
// Render in a separate window...
ui . horizontalLayout - > removeWidget ( render_window ) ;
ui - > horizontalLayout - > removeWidget ( render_window ) ;
render_window - > setParent ( nullptr ) ;
render_window - > setFocusPolicy ( Qt : : NoFocus ) ;
if ( emulation_running ) {
@ -1651,13 +1655,13 @@ void GMainWindow::ToggleWindowMode() {
void GMainWindow : : ChangeScreenLayout ( ) {
Settings : : LayoutOption new_layout = Settings : : LayoutOption : : Default ;
if ( ui . action_Screen_Layout_Default - > isChecked ( ) ) {
if ( ui - > action_Screen_Layout_Default - > isChecked ( ) ) {
new_layout = Settings : : LayoutOption : : Default ;
} else if ( ui . action_Screen_Layout_Single_Screen - > isChecked ( ) ) {
} else if ( ui - > action_Screen_Layout_Single_Screen - > isChecked ( ) ) {
new_layout = Settings : : LayoutOption : : SingleScreen ;
} else if ( ui . action_Screen_Layout_Large_Screen - > isChecked ( ) ) {
} else if ( ui - > action_Screen_Layout_Large_Screen - > isChecked ( ) ) {
new_layout = Settings : : LayoutOption : : LargeScreen ;
} else if ( ui . action_Screen_Layout_Side_by_Side - > isChecked ( ) ) {
} else if ( ui - > action_Screen_Layout_Side_by_Side - > isChecked ( ) ) {
new_layout = Settings : : LayoutOption : : SideScreen ;
}
@ -1689,12 +1693,12 @@ void GMainWindow::ToggleScreenLayout() {
}
void GMainWindow : : OnSwapScreens ( ) {
Settings : : values . swap_screen = ui . action_Screen_Layout_Swap_Screens - > isChecked ( ) ;
Settings : : values . swap_screen = ui - > action_Screen_Layout_Swap_Screens - > isChecked ( ) ;
Settings : : Apply ( ) ;
}
void GMainWindow : : OnRotateScreens ( ) {
Settings : : values . upright_screen = ui . action_Screen_Layout_Upright_Screens - > isChecked ( ) ;
Settings : : values . upright_screen = ui - > action_Screen_Layout_Upright_Screens - > isChecked ( ) ;
Settings : : Apply ( ) ;
}
@ -1746,11 +1750,11 @@ void GMainWindow::OnConfigure() {
config - > Save ( ) ;
if ( UISettings : : values . hide_mouse & & emulation_running ) {
setMouseTracking ( true ) ;
ui . centralwidget - > setMouseTracking ( true ) ;
ui - > centralwidget - > setMouseTracking ( true ) ;
mouse_hide_timer . start ( ) ;
} else {
setMouseTracking ( false ) ;
ui . centralwidget - > setMouseTracking ( false ) ;
ui - > centralwidget - > setMouseTracking ( false ) ;
}
} else {
Settings : : values . input_profiles = old_input_profiles ;
@ -1799,7 +1803,7 @@ void GMainWindow::LoadAmiibo(const QString& filename) {
}
nfc - > LoadAmiibo ( amiibo_data ) ;
ui . action_Remove_Amiibo - > setEnabled ( true ) ;
ui - > action_Remove_Amiibo - > setEnabled ( true ) ;
}
void GMainWindow : : OnRemoveAmiibo ( ) {
@ -1811,7 +1815,7 @@ void GMainWindow::OnRemoveAmiibo() {
}
nfc - > RemoveAmiibo ( ) ;
ui . action_Remove_Amiibo - > setEnabled ( false ) ;
ui - > action_Remove_Amiibo - > setEnabled ( false ) ;
}
void GMainWindow : : OnOpenCitraFolder ( ) {
@ -1820,8 +1824,8 @@ void GMainWindow::OnOpenCitraFolder() {
}
void GMainWindow : : OnToggleFilterBar ( ) {
game_list - > setFilterVisible ( ui . action_Show_Filter_Bar - > isChecked ( ) ) ;
if ( ui . action_Show_Filter_Bar - > isChecked ( ) ) {
game_list - > setFilterVisible ( ui - > action_Show_Filter_Bar - > isChecked ( ) ) ;
if ( ui - > action_Show_Filter_Bar - > isChecked ( ) ) {
game_list - > setFilterFocus ( ) ;
} else {
game_list - > clearFilter ( ) ;
@ -1859,9 +1863,9 @@ void GMainWindow::OnRecordMovie() {
QMessageBox : : information ( this , tr ( " Record Movie " ) ,
tr ( " Recording will start once you boot a game. " ) ) ;
}
ui . action_Record_Movie - > setEnabled ( false ) ;
ui . action_Play_Movie - > setEnabled ( false ) ;
ui . action_Stop_Recording_Playback - > setEnabled ( true ) ;
ui - > action_Record_Movie - > setEnabled ( false ) ;
ui - > action_Play_Movie - > setEnabled ( false ) ;
ui - > action_Stop_Recording_Playback - > setEnabled ( true ) ;
}
bool GMainWindow : : ValidateMovie ( const QString & path , u64 program_id ) {
@ -1953,9 +1957,9 @@ void GMainWindow::OnPlayMovie() {
Core : : Movie : : GetInstance ( ) . StartPlayback ( path . toStdString ( ) , [ this ] {
QMetaObject : : invokeMethod ( this , " OnMoviePlaybackCompleted " ) ;
} ) ;
ui . action_Record_Movie - > setEnabled ( false ) ;
ui . action_Play_Movie - > setEnabled ( false ) ;
ui . action_Stop_Recording_Playback - > setEnabled ( true ) ;
ui - > action_Record_Movie - > setEnabled ( false ) ;
ui - > action_Play_Movie - > setEnabled ( false ) ;
ui - > action_Stop_Recording_Playback - > setEnabled ( true ) ;
}
void GMainWindow : : OnStopRecordingPlayback ( ) {
@ -1971,9 +1975,9 @@ void GMainWindow::OnStopRecordingPlayback() {
tr ( " The movie is successfully saved. " ) ) ;
}
}
ui . action_Record_Movie - > setEnabled ( true ) ;
ui . action_Play_Movie - > setEnabled ( true ) ;
ui . action_Stop_Recording_Playback - > setEnabled ( false ) ;
ui - > action_Record_Movie - > setEnabled ( true ) ;
ui - > action_Play_Movie - > setEnabled ( true ) ;
ui - > action_Stop_Recording_Playback - > setEnabled ( false ) ;
}
void GMainWindow : : OnCaptureScreenshot ( ) {
@ -1996,7 +2000,7 @@ void GMainWindow::OnCaptureScreenshot() {
void GMainWindow : : OnStartVideoDumping ( ) {
DumpingDialog dialog ( this ) ;
if ( dialog . exec ( ) ! = QDialog : : DialogCode : : Accepted ) {
ui . action_Dump_Video - > setChecked ( false ) ;
ui - > action_Dump_Video - > setChecked ( false ) ;
return ;
}
const auto path = dialog . GetFilePath ( ) ;
@ -2007,7 +2011,7 @@ void GMainWindow::OnStartVideoDumping() {
QMessageBox : : critical (
this , tr ( " Citra " ) ,
tr ( " Could not start video dumping.<br>Refer to the log for details. " ) ) ;
ui . action_Dump_Video - > setChecked ( false ) ;
ui - > action_Dump_Video - > setChecked ( false ) ;
}
} else {
video_dumping_on_start = true ;
@ -2016,7 +2020,7 @@ void GMainWindow::OnStartVideoDumping() {
}
void GMainWindow : : OnStopVideoDumping ( ) {
ui . action_Dump_Video - > setChecked ( false ) ;
ui - > action_Dump_Video - > setChecked ( false ) ;
if ( video_dumping_on_start ) {
video_dumping_on_start = false ;
@ -2180,7 +2184,7 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
return ;
}
if ( ! ui . action_Fullscreen - > isChecked ( ) ) {
if ( ! ui - > action_Fullscreen - > isChecked ( ) ) {
UISettings : : values . geometry = saveGeometry ( ) ;
UISettings : : values . renderwindow_geometry = render_window - > saveGeometry ( ) ;
}
@ -2189,11 +2193,11 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
UISettings : : values . microprofile_geometry = microProfileDialog - > saveGeometry ( ) ;
UISettings : : values . microprofile_visible = microProfileDialog - > isVisible ( ) ;
# endif
UISettings : : values . single_window_mode = ui . action_Single_Window_Mode - > isChecked ( ) ;
UISettings : : values . fullscreen = ui . action_Fullscreen - > isChecked ( ) ;
UISettings : : values . display_titlebar = ui . action_Display_Dock_Widget_Headers - > isChecked ( ) ;
UISettings : : values . show_filter_bar = ui . action_Show_Filter_Bar - > isChecked ( ) ;
UISettings : : values . show_status_bar = ui . action_Show_Status_Bar - > isChecked ( ) ;
UISettings : : values . single_window_mode = ui - > action_Single_Window_Mode - > isChecked ( ) ;
UISettings : : values . fullscreen = ui - > action_Fullscreen - > isChecked ( ) ;
UISettings : : values . display_titlebar = ui - > action_Display_Dock_Widget_Headers - > isChecked ( ) ;
UISettings : : values . show_filter_bar = ui - > action_Show_Filter_Bar - > isChecked ( ) ;
UISettings : : values . show_status_bar = ui - > action_Show_Status_Bar - > isChecked ( ) ;
UISettings : : values . first_start = false ;
game_list - > SaveInterfaceLayout ( ) ;
@ -2275,7 +2279,7 @@ bool GMainWindow::ConfirmChangeGame() {
}
void GMainWindow : : filterBarSetChecked ( bool state ) {
ui . action_Show_Filter_Bar - > setChecked ( state ) ;
ui - > action_Show_Filter_Bar - > setChecked ( state ) ;
emit ( OnToggleFilterBar ( ) ) ;
}
@ -2339,19 +2343,19 @@ void GMainWindow::OnLanguageChanged(const QString& locale) {
UISettings : : values . language = locale ;
LoadTranslation ( ) ;
ui . retranslateUi ( this ) ;
ui - > retranslateUi ( this ) ;
RetranslateStatusBar ( ) ;
UpdateWindowTitle ( ) ;
if ( emulation_running )
ui . action_Start - > setText ( tr ( " Continue " ) ) ;
ui - > action_Start - > setText ( tr ( " Continue " ) ) ;
}
void GMainWindow : : OnMoviePlaybackCompleted ( ) {
QMessageBox : : information ( this , tr ( " Playback Completed " ) , tr ( " Movie playback completed. " ) ) ;
ui . action_Record_Movie - > setEnabled ( true ) ;
ui . action_Play_Movie - > setEnabled ( true ) ;
ui . action_Stop_Recording_Playback - > setEnabled ( false ) ;
ui - > action_Record_Movie - > setEnabled ( true ) ;
ui - > action_Play_Movie - > setEnabled ( true ) ;
ui - > action_Stop_Recording_Playback - > setEnabled ( false ) ;
}
void GMainWindow : : UpdateWindowTitle ( ) {
@ -2365,16 +2369,16 @@ void GMainWindow::UpdateWindowTitle() {
}
void GMainWindow : : SyncMenuUISettings ( ) {
ui . action_Screen_Layout_Default - > setChecked ( Settings : : values . layout_option = =
ui - > action_Screen_Layout_Default - > setChecked ( Settings : : values . layout_option = =
Settings : : LayoutOption : : Default ) ;
ui . action_Screen_Layout_Single_Screen - > setChecked ( Settings : : values . layout_option = =
ui - > action_Screen_Layout_Single_Screen - > setChecked ( Settings : : values . layout_option = =
Settings : : LayoutOption : : SingleScreen ) ;
ui . action_Screen_Layout_Large_Screen - > setChecked ( Settings : : values . layout_option = =
ui - > action_Screen_Layout_Large_Screen - > setChecked ( Settings : : values . layout_option = =
Settings : : LayoutOption : : LargeScreen ) ;
ui . action_Screen_Layout_Side_by_Side - > setChecked ( Settings : : values . layout_option = =
ui - > action_Screen_Layout_Side_by_Side - > setChecked ( Settings : : values . layout_option = =
Settings : : LayoutOption : : SideScreen ) ;
ui . action_Screen_Layout_Swap_Screens - > setChecked ( Settings : : values . swap_screen ) ;
ui . action_Screen_Layout_Upright_Screens - > setChecked ( Settings : : values . upright_screen ) ;
ui - > action_Screen_Layout_Swap_Screens - > setChecked ( Settings : : values . swap_screen ) ;
ui - > action_Screen_Layout_Upright_Screens - > setChecked ( Settings : : values . upright_screen ) ;
}
void GMainWindow : : RetranslateStatusBar ( ) {