diff options
Diffstat (limited to 'src/frontend/qt_sdl')
-rw-r--r-- | src/frontend/qt_sdl/EmuSettingsDialog.cpp | 5 | ||||
-rw-r--r-- | src/frontend/qt_sdl/EmuSettingsDialog.h | 2 | ||||
-rw-r--r-- | src/frontend/qt_sdl/main.cpp | 7 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/frontend/qt_sdl/EmuSettingsDialog.cpp b/src/frontend/qt_sdl/EmuSettingsDialog.cpp index 9ee7b9a..77301b7 100644 --- a/src/frontend/qt_sdl/EmuSettingsDialog.cpp +++ b/src/frontend/qt_sdl/EmuSettingsDialog.cpp @@ -34,6 +34,7 @@ EmuSettingsDialog* EmuSettingsDialog::currentDlg = nullptr; extern char* EmuDirectory; extern bool RunningSomething; +bool EmuSettingsDialog::needsReset = false; EmuSettingsDialog::EmuSettingsDialog(QWidget* parent) : QDialog(parent), ui(new Ui::EmuSettingsDialog) { @@ -121,6 +122,8 @@ void EmuSettingsDialog::verifyFirmware() void EmuSettingsDialog::done(int r) { + needsReset = false; + if (r == QDialog::Accepted) { verifyFirmware(); @@ -186,6 +189,8 @@ void EmuSettingsDialog::done(int r) Config::DirectBoot = directBoot; Config::Save(); + + needsReset = true; } } diff --git a/src/frontend/qt_sdl/EmuSettingsDialog.h b/src/frontend/qt_sdl/EmuSettingsDialog.h index 268036c..c24a147 100644 --- a/src/frontend/qt_sdl/EmuSettingsDialog.h +++ b/src/frontend/qt_sdl/EmuSettingsDialog.h @@ -50,6 +50,8 @@ public: currentDlg = nullptr; } + static bool needsReset; + private slots: void done(int r); diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp index 4557d0e..de6887c 100644 --- a/src/frontend/qt_sdl/main.cpp +++ b/src/frontend/qt_sdl/main.cpp @@ -1641,14 +1641,19 @@ void MainWindow::onStop() void MainWindow::onOpenEmuSettings() { + emuThread->emuPause(); + EmuSettingsDialog* dlg = EmuSettingsDialog::openDlg(this); connect(dlg, &EmuSettingsDialog::finished, this, &MainWindow::onEmuSettingsDialogFinished); } void MainWindow::onEmuSettingsDialogFinished(int res) { - if (RunningSomething) + if (EmuSettingsDialog::needsReset) + { + emuThread->emuUnpause(); onReset(); + } } void MainWindow::onOpenInputConfig() |