save game query on exit if game is incomplete
authorTimo Härkönen <timop.harkonen@gmail.com>
Thu, 2 Sep 2010 17:40:50 +0000 (20:40 +0300)
committerTimo Härkönen <timop.harkonen@gmail.com>
Thu, 2 Sep 2010 17:42:41 +0000 (20:42 +0300)
debian/changelog
src/gameview.cpp
src/gameview.h
src/mainwindow.cpp
src/mainwindow.h

index ba85419..bd7aadd 100644 (file)
@@ -1,3 +1,10 @@
+impuzzle (0.6.3-1maemo0) unstable; urgency=low
+
+  * Show save game query when quitting if game is incomplete
+  * Changed new game dialog logic.
+
+ -- Timo Härkönen <timop.harkonen@gmail.com>  Thu, 2 Sep 2010 20:38:00 +0200
+
 impuzzle (0.6.2-1maemo0) unstable; urgency=low
 
   * Fixes: Application crash if Mydocs/.images empty
index ad51a83..4164b24 100644 (file)
@@ -33,7 +33,6 @@
 #include <QFile>
 #include <QDir>
 #include <QTextStream>
-#include <QCloseEvent>
 #include <QFileInfo>
 #include <QDateTime>
 #include <QTimer>
@@ -589,19 +588,6 @@ void GameView::saveGame()
     qApp->quit();
 }
 
-void GameView::closeEvent(QCloseEvent *event)
-{
-    int answer = QMessageBox::question(this, tr("Save game status?"),
-                                       tr("Saved status will be automatically loaded when you start the application next time"),
-                                       QMessageBox::Yes, QMessageBox::No);
-
-    if(answer == QMessageBox::Yes) {
-        saveGame();
-    }
-
-    event->accept();
-}
-
 int GameView::correctPlaces() const
 {
     int c = 0;
index 4e8d6d0..4656cde 100644 (file)
@@ -50,9 +50,6 @@ signals:
     void gameWon();
     void gameRestored();
 
-protected:
-    void closeEvent(QCloseEvent *event);
-
 private:
     GameView(QWidget *parent = 0);
     int correctPlaces() const;
index e2b2b19..bb6ac1b 100644 (file)
@@ -26,6 +26,8 @@
 #include <QAction>
 #include <QMenu>
 #include <QMenuBar>
+#include <QMessageBox>
+#include <QCloseEvent>
 
 #include <QDebug>
 
@@ -122,3 +124,18 @@ void MainWindow::enableSaving()
         saveAction_->setEnabled(true);
     }
 }
+
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+    if(saveAction_->isEnabled()) {
+        int answer = QMessageBox::question(this, tr("Save game status?"),
+                                           tr("Saved status will be automatically loaded when you start the application next time"),
+                                           QMessageBox::Yes, QMessageBox::No);
+
+        if(answer == QMessageBox::Yes) {
+            GameView::instance()->saveGame();
+        }
+    }
+
+    event->accept();
+}
index 097be48..2ce4607 100644 (file)
@@ -41,6 +41,9 @@ private slots:
     void gameEnded();
     void enableSaving();
 
+protected:
+    void closeEvent(QCloseEvent *event);
+
 private:
     MainWindow(QWidget *parent = 0);
     void createActions();