+void MainWindow::gameEnded()
+{
+ if(saveAction_->isEnabled()) {
+ saveAction_->setDisabled(true);
+ Statistics::instance()->increaseGameCount(Settings::instance()->pieceCount() == EASY_PIECE_COUNT ? Statistics::easyDifficulty : Statistics::hardDifficulty);
+ Statistics::instance()->addNewScore(PuzzleItem::moveCount(),
+ Settings::instance()->pieceCount() == EASY_PIECE_COUNT ? Statistics::easyDifficulty : Statistics::hardDifficulty);
+ PuzzleItem::resetMoveCount();
+ }
+}
+
+void MainWindow::enableSaving()
+{
+ if(!saveAction_->isEnabled()) {
+ 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();
+}
+
+void MainWindow::showStatistics()
+{
+ StatisticsDialog dialog(this);
+ dialog.exec();