diff options
Diffstat (limited to '')
-rw-r--r-- | src/yuzu/main.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index f64e68268..5e321095d 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -185,12 +185,24 @@ void GMainWindow::InitializeRecentFileMenuActions() { void GMainWindow::InitializeHotkeys() { RegisterHotkey("Main Window", "Load File", QKeySequence::Open); RegisterHotkey("Main Window", "Start Emulation"); + RegisterHotkey( "Main Window", "Fullscreen", QKeySequence::FullScreen ); + RegisterHotkey( "Main Window", "Exit Fullscreen", QKeySequence::Cancel, Qt::ApplicationShortcut ); LoadHotkeys(); connect(GetHotkey("Main Window", "Load File", this), SIGNAL(activated()), this, SLOT(OnMenuLoadFile())); connect(GetHotkey("Main Window", "Start Emulation", this), SIGNAL(activated()), this, SLOT(OnStartGame())); + connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activated, + ui.action_Fullscreen, &QAction::trigger); + connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activatedAmbiguously, + ui.action_Fullscreen, &QAction::trigger); + connect(GetHotkey("Main Window", "Exit Fullscreen", this), &QShortcut::activated, this, [&] { + if (emulation_running) { + ui.action_Fullscreen->setChecked(false); + ToggleFullscreen(); + } + }); } void GMainWindow::SetDefaultUIGeometry() { @@ -219,6 +231,8 @@ void GMainWindow::RestoreUIState() { ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode); ToggleWindowMode(); + ui.action_Fullscreen->setChecked(UISettings::values.fullscreen); + ui.action_Display_Dock_Widget_Headers->setChecked(UISettings::values.display_titlebar); OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked()); @@ -263,6 +277,10 @@ void GMainWindow::ConnectMenuEvents() { connect(ui.action_Show_Filter_Bar, &QAction::triggered, this, &GMainWindow::OnToggleFilterBar); connect(ui.action_Show_Status_Bar, &QAction::triggered, statusBar(), &QStatusBar::setVisible); + // Fullscreen + ui.action_Fullscreen->setShortcut(GetHotkey("Main Window", "Fullscreen", this)->key()); + connect(ui.action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen); + // Help connect(ui.action_About, &QAction::triggered, this, &GMainWindow::OnAbout); } @@ -402,6 +420,7 @@ void GMainWindow::BootGame(const QString& filename) { render_window->setFocus(); emulation_running = true; + ToggleFullscreen(); OnStartGame(); } @@ -548,6 +567,29 @@ void GMainWindow::OnStopGame() { ShutdownGame(); } +void GMainWindow::ToggleFullscreen() { + if (!emulation_running) { + return; + } + if (ui.action_Fullscreen->isChecked()) { + if (ui.action_Single_Window_Mode->isChecked()) { + ui.menubar->hide(); + statusBar()->hide(); + showFullScreen(); + } else { + render_window->showFullScreen(); + } + } else { + if (ui.action_Single_Window_Mode->isChecked()) { + statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); + ui.menubar->show(); + showNormal(); + } else { + render_window->showNormal(); + } + } +} + void GMainWindow::ToggleWindowMode() { if (ui.action_Single_Window_Mode->isChecked()) { // Render in the main window... @@ -700,6 +742,7 @@ void GMainWindow::closeEvent(QCloseEvent* event) { 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(); |