Merge branch 'victoryscreen'
authorHeli Hyvättinen <heli.hyvattinen@kymp.net>
Tue, 26 Jul 2011 13:02:02 +0000 (16:02 +0300)
committerHeli Hyvättinen <heli.hyvattinen@kymp.net>
Tue, 26 Jul 2011 13:02:02 +0000 (16:02 +0300)
Victory dialog integrated to view/scene

Conflicts:
seascene.cpp
seascene.h

1  2 
seascene.cpp
seascene.h

diff --combined seascene.cpp
@@@ -33,6 -33,7 +33,7 @@@
  #include <QLabel>
  #include <QVBoxLayout>
  #include <QSettings>
+ #include <QPixmap>
  
  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<QGraphicsItem *> 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"
 -                          "<p>Copyright 2011 Heli Hyv&auml;ttinen"
 -                          "<p>License: General Public License v2"
 -                          "<p>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! <p>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()
      pause(pPauseAction_->isChecked());
  }
  
++
+ void SeaScene::createVictoryItems()
+ {
+     pVictoryCongratulationsItem_ = new QGraphicsTextItem;
+     pVictoryCongratulationsItem_->setHtml("<font size=\"6\" color = darkorange> 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("<center> <font size=\"5\" color = darkorange> Congratulations! <br> You have saved all the ghosts."
+                        "<br><br> 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("<font color = darkorange size = \"7\">"
 +                          "%1 <br> <font size = \"5\"> Version %2"
 +                          "<p><font size = \"4\"> Copyright 2011 Heli Hyv&auml;ttinen"
 +                          "<p><font size = \"4\"> License: General Public License v2"
 +                          "<p><font size = \"3\"> Bug Reports: <br> 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
@@@ -82,10 -82,8 +82,12 @@@ public slots
  
      void softContinue();
  
 +    void createAboutBoxItems();
 +
+     void createVictoryItems();
 +    void setItemPointersNull();
 +
  
  
  protected:
      QGraphicsTextItem * pAboutItem_;
      QGraphicsTextItem * pQuitItem_;
      QGraphicsTextItem * pMinimizeItem_;
 +
+     QGraphicsTextItem * pVictoryCongratulationsItem_;
 +    QGraphicsTextItem * pAboutBoxItem_;
  
      QList<Level> levelList_;