|
|
|
@ -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(); |
|
|
|
|