From: Heli Hyvättinen Date: Tue, 26 Jul 2011 13:02:02 +0000 (+0300) Subject: Merge branch 'victoryscreen' X-Git-Tag: v0.3.0_fremantle~13 X-Git-Url: http://vcs.maemo.org/git/?a=commitdiff_plain;h=fc59090da28a9adeb50ddefc25aac843c4dfff99;hp=-c;p=ghostsoverboard Merge branch 'victoryscreen' Victory dialog integrated to view/scene Conflicts: seascene.cpp seascene.h --- fc59090da28a9adeb50ddefc25aac843c4dfff99 diff --combined seascene.cpp index 655a903,b7f9211..a00b2c0 --- a/seascene.cpp +++ b/seascene.cpp @@@ -33,6 -33,7 +33,7 @@@ #include #include #include + #include const QString ghostImageFilename_ = ":/pix/aave.png"; const QString rockImageFilename_ =":/pix/kari.png"; @@@ -42,9 -43,6 +43,9 @@@ const QString octopusImageFilename_= ": SeaScene::SeaScene(QObject *parent) : QGraphicsScene(parent) { + + setItemPointersNull(); + paused_ = false; screenLitKeeper_.keepScreenLit(true); @@@ -73,6 -71,7 +74,7 @@@ currentLevel_ = 0; + connect(this,SIGNAL(allGhostsPicked()),this,SLOT(nextLevel())); @@@ -101,12 -100,11 +103,15 @@@ void SeaScene::setupMap(int ghosts, in clear(); + setItemPointersNull(); + createMenuItems(); + createAboutBoxItems(); + + createVictoryItems(); + + //empty the list of moving items movingItems_.clear(); @@@ -393,18 -391,19 +398,31 @@@ void SeaScene::handleScreenTapped( return; } + //If the game is paused and about box is shown, close it and show the pause text and menu again + + if(pAboutBoxItem_) + { + if(pAboutBoxItem_->isVisible()) + { + pAboutBoxItem_->hide(); + pPausetextItem_->show(); + } + } + - //If the game is paused, check if menu item was selected ++ + //If the game is paused, check if the victory item is being shown + if(pVictoryCongratulationsItem_) + { + if (pVictoryCongratulationsItem_->isVisibleTo(NULL)) //returns visibility to scene + { + pVictoryCongratulationsItem_->hide(); + restartGame(); + pPauseAction_->setChecked(false); // unpause + return; + } + } + + //If the game is paused and no victory, check if menu item was selected QList items = selectedItems(); @@@ -564,8 -563,16 +582,8 @@@ void SeaScene::prepareForMenu(QGraphics void SeaScene::about() { - QMessageBox::about(NULL, tr("About %1").arg(QApplication::applicationName()), - tr("Version %1" - "

Copyright 2011 Heli Hyvättinen" - "

License: General Public License v2" - "

Bug Reports: https://bugs.maemo.org/ " - "enter_bug.cgi?product=Ghosts%20Overboard" - ).arg(QApplication::applicationVersion())); - - - + pPausetextItem_->hide(); + pAboutBoxItem_->show(); } @@@ -596,47 -603,12 +614,12 @@@ void SeaScene::nextLevel( else //Victory! { - QDialog* pVictoryDialog = new QDialog(); - pVictoryDialog->setWindowTitle(tr("You won!")); - - - QPushButton* pPlayAgainButton = new QPushButton(tr("Play again")); - // QPushButton* pQuitButton = new QPushButton(tr("Quit game")); - - QPixmap victoryIcon (":/pix/aavesaari.png"); - QLabel* pVictoryLabel = new QLabel(); - pVictoryLabel->setPixmap(victoryIcon); - - QLabel* pTextLabel = new QLabel(tr("Congratulations!

You have saved all the ghosts.")); - - - QVBoxLayout* pMainLayout = new QVBoxLayout; + pPauseAction_->setChecked(true); //Pause the game while showing the victory dialog - QHBoxLayout* pTopLayout = new QHBoxLayout; - pMainLayout->addLayout(pTopLayout); + pPausetextItem_->hide(); - pTopLayout->addWidget(pVictoryLabel); - pTopLayout->addWidget(pTextLabel); + pVictoryCongratulationsItem_->show(); - - - QHBoxLayout* pButtonLayout = new QHBoxLayout(); - pMainLayout->addLayout(pButtonLayout); - - // pButtonLayout->addWidget(pQuitButton); - pButtonLayout->addWidget(pPlayAgainButton); - - - - pVictoryDialog->setLayout(pMainLayout); - - connect(pPlayAgainButton, SIGNAL(clicked()),pVictoryDialog,SLOT(accept())); - - pVictoryDialog->exec(); - - //Never mind if the user cancels the dialog: restart the game anyway - - restartGame(); } } @@@ -654,7 -626,7 +637,7 @@@ void SeaScene::forcePause( pause(true); } - void::SeaScene::softContinue() + void SeaScene::softContinue() { //Continue if not being paused by the user // Reverts forcePause() @@@ -662,33 -634,25 +645,56 @@@ pause(pPauseAction_->isChecked()); } ++ + void SeaScene::createVictoryItems() + { + pVictoryCongratulationsItem_ = new QGraphicsTextItem; + pVictoryCongratulationsItem_->setHtml(" Victory!"); + pVictoryCongratulationsItem_->hide(); + pVictoryCongratulationsItem_->setPos(300,50); + pVictoryCongratulationsItem_->setZValue(1000); + addItem(pVictoryCongratulationsItem_); + + // QGraphicsPixmapItem * pImageItem = new QGraphicsPixmapItem(QPixmap(":/pix/aavesaari.png"),pVictoryCongratulationsItem_); + // pImageItem->setPos(-100,150); + // pImageItem->setZValue(1000); + // pImageItem->setScale(2.0); + + + QGraphicsTextItem * pTextItem = new QGraphicsTextItem(pVictoryCongratulationsItem_); + pTextItem->setHtml("

Congratulations!
You have saved all the ghosts." + "

Tap to play again "); + pTextItem->setPos(-50,100); + pTextItem->setZValue(1000); ++} + +void SeaScene::createAboutBoxItems() +{ + pAboutBoxItem_ = new QGraphicsTextItem; + addItem(pAboutBoxItem_); + pAboutBoxItem_->setPos(25,50); + pAboutBoxItem_->setZValue(1000); + pAboutBoxItem_->hide(); + + pAboutBoxItem_->setHtml(tr("" + "%1
Version %2" + "

Copyright 2011 Heli Hyvättinen" + "

License: General Public License v2" + "

Bug Reports:
https://bugs.maemo.org/ " + "enter_bug.cgi?product=Ghosts%20Overboard" + ).arg(QApplication::applicationName(),QApplication::applicationVersion())); + +} + +void SeaScene::setItemPointersNull() +{ + pPausetextItem_ = NULL; + pRestartLevelItem_ = NULL; + pRestartGameItem_ = NULL; + pSettingsItem_ = NULL; + pAboutItem_ = NULL; + pQuitItem_ = NULL ; + pMinimizeItem_ = NULL; + + pAboutBoxItem_ = NULL; } diff --combined seascene.h index 256c614,6540ddb..4673995 --- a/seascene.h +++ b/seascene.h @@@ -82,10 -82,8 +82,12 @@@ public slots void softContinue(); + void createAboutBoxItems(); + + void createVictoryItems(); + + void setItemPointersNull(); + protected: @@@ -125,8 -123,7 +127,9 @@@ QGraphicsTextItem * pAboutItem_; QGraphicsTextItem * pQuitItem_; QGraphicsTextItem * pMinimizeItem_; + + QGraphicsTextItem * pVictoryCongratulationsItem_; + QGraphicsTextItem * pAboutBoxItem_; QList levelList_;