diff options
author | RSDuck <RSDuck@users.noreply.github.com> | 2020-07-04 18:58:00 +0200 |
---|---|---|
committer | RSDuck <RSDuck@users.noreply.github.com> | 2020-07-04 18:58:00 +0200 |
commit | 778623a8b7ded3a66fc838840ce85626f5feed05 (patch) | |
tree | 1fc317f4aa173cc9933c74163756103c2e67e0bb /src/frontend/qt_sdl | |
parent | 62c6e2f703d88660e0ca9bda78032c5bd6b63a78 (diff) |
make linux work and fix a few bugs
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() |