diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index 5c7c74dd6..e1d08eb33 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -320,6 +320,7 @@ void GMainWindow::InitializeHotkeys() { RegisterHotkey("Main Window", "Load File", QKeySequence::Open); RegisterHotkey("Main Window", "Start Emulation"); RegisterHotkey("Main Window", "Continue/Pause", QKeySequence(Qt::Key_F4)); + RegisterHotkey("Main Window", "Restart", QKeySequence(Qt::Key_F5)); RegisterHotkey("Main Window", "Swap Screens", QKeySequence(tr("F9"))); RegisterHotkey("Main Window", "Toggle Screen Layout", QKeySequence(tr("F10"))); RegisterHotkey("Main Window", "Fullscreen", QKeySequence::FullScreen); @@ -346,6 +347,11 @@ void GMainWindow::InitializeHotkeys() { } } }); + connect(GetHotkey("Main Window", "Restart", this), &QShortcut::activated, this, [&] { + if (!Core::System::GetInstance().IsPoweredOn()) + return; + BootGame(QString(UISettings::values.recent_files.first())); + }); connect(GetHotkey("Main Window", "Swap Screens", render_window), &QShortcut::activated, ui.action_Screen_Layout_Swap_Screens, &QAction::trigger); connect(GetHotkey("Main Window", "Toggle Screen Layout", render_window), &QShortcut::activated, @@ -462,6 +468,8 @@ void GMainWindow::ConnectMenuEvents() { 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, + [&] { BootGame(QString(UISettings::values.recent_files.first())); }); connect(ui.action_Report_Compatibility, &QAction::triggered, this, &GMainWindow::OnMenuReportCompatibility); connect(ui.action_Configure, &QAction::triggered, this, &GMainWindow::OnConfigure); @@ -752,6 +760,7 @@ void GMainWindow::ShutdownGame() { ui.action_Start->setText(tr("Start")); ui.action_Pause->setEnabled(false); ui.action_Stop->setEnabled(false); + ui.action_Restart->setEnabled(false); ui.action_Report_Compatibility->setEnabled(false); render_window->hide(); if (game_list->isEmpty()) @@ -1028,6 +1037,7 @@ void GMainWindow::OnStartGame() { ui.action_Pause->setEnabled(true); ui.action_Stop->setEnabled(true); + ui.action_Restart->setEnabled(true); ui.action_Report_Compatibility->setEnabled(true); } diff --git a/src/citra_qt/main.ui b/src/citra_qt/main.ui index 9b0c512e3..bee688600 100644 --- a/src/citra_qt/main.ui +++ b/src/citra_qt/main.ui @@ -71,6 +71,7 @@ + @@ -351,6 +352,14 @@ false + + + false + + + Restart + +