pScene_ = new SeaScene ();
connect(pScene_,SIGNAL(allGhostsPicked()),this,SLOT(nextLevel()));
- pView_ = new QGraphicsView ();
+ pView_ = new SeaView ();
+
pView_->setScene(pScene_);
setCentralWidget(pView_);
pPauseAction_ = new QAction(tr("Pause"),this);
pPauseAction_->setCheckable(true);
addAction(pPauseAction_);
- connect(pPauseAction_,SIGNAL(triggered(bool)),pScene_,SLOT(pause(bool)));
+ connect(pPauseAction_,SIGNAL(toggled(bool)),pScene_,SLOT(pause(bool)));
menuBar()->addAction(pPauseAction_);
+ connect(pView_,SIGNAL(pauseChanged()),pPauseAction_,SLOT(toggle()));
QAction * pRestartLevelAction = new QAction(tr("Restart level"),this);
addAction(pRestartLevelAction);
connect(pRestartGameAction,SIGNAL(triggered()),this,SLOT(restartGame()));
menuBar()->addAction(pRestartGameAction);
- QAction * pVibrateAction = new QAction(tr("Vibration effects"),this);
- pVibrateAction->setCheckable(true);
- addAction(pVibrateAction);
- connect(pVibrateAction,SIGNAL(triggered(bool)),pScene_,SLOT(vibrationActivate(bool)));
- menuBar()->addAction(pVibrateAction);
+ pVibrateAction_ = new QAction(tr("Vibration effects"),this);
+ pVibrateAction_->setCheckable(true);
+ addAction(pVibrateAction_);
+ connect(pVibrateAction_,SIGNAL(toggled(bool)),pScene_,SLOT(vibrationActivate(bool)));
+ menuBar()->addAction(pVibrateAction_);
QAction * pAboutAction = new QAction(tr("About"),this);
void MainWindow::restartLevel()
{
- pScene_->setupMap(levelList_.at(currentLevel_));
+ pScene_->setupMap(levelList_.value(currentLevel_)); //value() returns default constructor Level if index is invalid, so no risk of crash
+ pScene_->vibrationActivate(pVibrateAction_->isChecked()); //Vibration effects are lost without this
+ // qDebug() << pVibrateAction_->isChecked();
}
void MainWindow::about()
if ( currentLevel_ < levelList_.size() )
{
- pScene_->setupMap(levelList_.at(currentLevel_));
+ restartLevel();
}
else //Victory!
void MainWindow::restartGame()
{
currentLevel_ = 0;
- pScene_->setupMap(levelList_.value(currentLevel_)); //value() returns default constructor Level, so no need to check if list empty
-
+ restartLevel();
}