Qt: Stop emuThread on closeEvent
This commit is contained in:
@@ -139,6 +139,7 @@ class MainWindow : public QMainWindow {
|
|||||||
MainWindow(QApplication* app, QWidget* parent = nullptr);
|
MainWindow(QApplication* app, QWidget* parent = nullptr);
|
||||||
~MainWindow();
|
~MainWindow();
|
||||||
|
|
||||||
|
void closeEvent(QCloseEvent *event) override;
|
||||||
void keyPressEvent(QKeyEvent* event) override;
|
void keyPressEvent(QKeyEvent* event) override;
|
||||||
void keyReleaseEvent(QKeyEvent* event) override;
|
void keyReleaseEvent(QKeyEvent* event) override;
|
||||||
void mousePressEvent(QMouseEvent* event) override;
|
void mousePressEvent(QMouseEvent* event) override;
|
||||||
|
|||||||
@@ -204,14 +204,19 @@ void MainWindow::selectLuaFile() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cleanup when the main window closes
|
// Stop emulator thread when the main window closes
|
||||||
MainWindow::~MainWindow() {
|
void MainWindow::closeEvent(QCloseEvent *event) {
|
||||||
appRunning = false; // Set our running atomic to false in order to make the emulator thread stop, and join it
|
appRunning = false; // Set our running atomic to false in order to make the emulator thread stop, and join it
|
||||||
|
|
||||||
if (emuThread.joinable()) {
|
if (emuThread.joinable()) {
|
||||||
emuThread.join();
|
emuThread.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_Quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cleanup when the main window closes
|
||||||
|
MainWindow::~MainWindow() {
|
||||||
delete emu;
|
delete emu;
|
||||||
delete menuBar;
|
delete menuBar;
|
||||||
delete aboutWindow;
|
delete aboutWindow;
|
||||||
|
|||||||
Reference in New Issue
Block a user