]> Shamusworld >> Repos - warehouse-man-deluxe/blobdiff - src/mainwin.cpp
Added undo move system, various improvements.
[warehouse-man-deluxe] / src / mainwin.cpp
index 8ba6ded2db6e07ebb5d185aa7d54f2927601d68c..9b8fb296d01bc0f4585ba47d5b7e3409fbdc0515 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <stdlib.h>                    // For rand()
 #include <time.h>                      // For time()
+#include "gameboard.h"
 #include "gamewidget.h"                // Actual mouse/drawing window
 //#include "resource.h"
 //#include "optiondlg.h"               // Options dialog class
@@ -32,14 +33,14 @@ MainWin::MainWin()
        newGame = CreateAction(tr("&New"), tr("New Game"), tr("Start a new game of Warehouse Man Deluxe"), QIcon(), QKeySequence(tr("ctrl+n")));
 //     connect(newGame, SIGNAL(triggered()), this, SLOT(OnNewGame()));
 
-       gamePlay = CreateAction(tr("&Play"), tr(""), tr(""), QIcon(), QKeySequence(tr("ctrl+a")));
-//     connect(gamePlay, SIGNAL(triggered()), this, SLOT(OnGamePlay()));
-
-       helpUndo = CreateAction(tr("&Undo"), tr(""), tr(""), QIcon(), QKeySequence(tr("ctrl+z")));
-//     connect(helpUndo, SIGNAL(triggered()), this, SLOT(OnHelpUndo()));
+       undoAction = CreateAction(tr("&Undo"), tr(""), tr(""), QIcon(), QKeySequence(tr("ctrl+z")));
+       connect(undoAction, SIGNAL(triggered()), this, SLOT(HandleUndo()));
 
        resetLevel = CreateAction(tr("&Reset Level"), tr("Reset Level"), tr("Start the current level over"), QIcon(), QKeySequence(tr("ctrl+r")));
-       connect(resetLevel, SIGNAL(triggered()), this, SLOT(ResetCurrentLevel()));
+       connect(resetLevel, SIGNAL(triggered()), this, SLOT(HandleReset()));
+
+       skipLevel = CreateAction(tr("&Skip Level"), tr("Skip Level"), tr("Skip the current level"), QIcon(), QKeySequence(tr("ctrl+k")));
+       connect(skipLevel, SIGNAL(triggered()), this, SLOT(HandleSkipLevel()));
 
        gameOptions = CreateAction(tr("&Options..."), tr("Options"), tr("Configure Warehouse Man Deluxe's options"), QIcon(), QKeySequence(tr("ctrl+o")));
 //     connect(gameOptions, SIGNAL(triggered()), this, SLOT(OnGameOptions()));
@@ -60,9 +61,10 @@ MainWin::MainWin()
        QMenu * menu = menuBar()->addMenu(tr("&Game"));
        menu->addAction(newGame);
        menu->addSeparator();
-       menu->addAction(gamePlay);
-       menu->addAction(helpUndo);
+//     menu->addAction(gamePlay);
+       menu->addAction(undoAction);
        menu->addAction(resetLevel);
+       menu->addAction(skipLevel);
        menu->addSeparator();
        menu->addAction(gameOptions);
        menu->addAction(gameStats);
@@ -78,6 +80,8 @@ MainWin::MainWin()
        QSettings settings("Underground Software", "Warehouse Man Deluxe");
        QPoint mainWinPosition = settings.value("pos", QPoint(200, 100)).toPoint();
        move(mainWinPosition);
+       QSize mainWinSize = settings.value("size", QSize(500, 500)).toSize();
+       resize(mainWinSize);
 
 /*     nCardBack = settings.value("CardBack", BACK4).toInt();
        m_nBackground = settings.value("Background", 0).toInt();
@@ -167,6 +171,7 @@ void MainWin::closeEvent(QCloseEvent * event)
 
        QSettings settings("Underground Software", "Warehouse Man Deluxe");
        settings.setValue("pos", pos());
+       settings.setValue("size", size());
 
 /*
        settings.setValue("CardBack", nCardBack);
@@ -278,12 +283,24 @@ void MainWin::WeHaveAWinner(void)
 }
 
 
-void MainWin::ResetCurrentLevel(void)
+void MainWin::HandleReset(void)
 {
        gameWidget->ResetLevel();
 }
 
 
+void MainWin::HandleSkipLevel(void)
+{
+       gameWidget->NextLevel();
+}
+
+
+void MainWin::HandleUndo(void)
+{
+       gameWidget->UndoLastMove();
+}
+
+
 #if 0
 void MainWin::OnNewGame(void) 
 {
@@ -377,7 +394,7 @@ void MainWin::OnGameStats(void)
 }
 
 
-void MainWin::OnHelpUndo(void)
+void MainWin::OnundoAction(void)
 {
        if (m_bCanUndo)
        {