summaryrefslogtreecommitdiffstats
path: root/src/yuzu/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/yuzu/main.cpp43
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();