Răsfoiți Sursa

Add check before closure when emulation is running

Implement confirmation in a specific function
Fix typos and coding style

Coding convention
LittleWhite 10 ani în urmă
părinte
comite
c2b210f713
2 a modificat fișierele cu 25 adăugiri și 0 ștergeri
  1. 18 0
      src/citra_qt/main.cpp
  2. 7 0
      src/citra_qt/main.h

+ 18 - 0
src/citra_qt/main.cpp

@@ -497,7 +497,25 @@ void GMainWindow::OnConfigure() {
     //GControllerConfigDialog* dialog = new GControllerConfigDialog(controller_ports, this);
 }
 
+bool GMainWindow::ConfirmClose() {
+    if (emu_thread != nullptr) {
+        auto answer = QMessageBox::question(this, tr("Citra"),
+                                            tr("Are you sure you want to close Citra?"),
+                                            QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
+
+        if (answer == QMessageBox::No) {
+            return false;
+        }
+    }
+    return true;
+}
+
 void GMainWindow::closeEvent(QCloseEvent* event) {
+    if (!ConfirmClose()) {
+        event->ignore();
+        return;
+    }
+
     // Save window layout
     QSettings settings(QSettings::IniFormat, QSettings::UserScope, "Citra team", "Citra");
 

+ 7 - 0
src/citra_qt/main.h

@@ -82,6 +82,13 @@ private:
      */
     void UpdateRecentFiles();
 
+    /**
+     * If the emulation is running,
+     * asks the user if he really want to close the emulator
+     *
+     * @return true if the user confirmed
+     */
+    bool ConfirmClose();
     void closeEvent(QCloseEvent* event) override;
 
 private slots: