Polls for screen locked status
[ghostsoverboard] / seascene.cpp
index a00b2c0..9ee3925 100644 (file)
@@ -90,9 +90,14 @@ SeaScene::SeaScene(QObject *parent) :
     connect(pPauseAction_,SIGNAL(toggled(bool)),this,SLOT(pause(bool)));
 
 
+    deviceLockPollTimer_.setInterval(20*60); // 2s
+    connect(&deviceLockPollTimer_,SIGNAL(timeout()),this,SLOT(pollDeviceLocked()));
+    deviceLockPollTimer_.start();
+
+
     autopauseTimer.setSingleShot(true);
     autopauseTimer.setInterval(15*60*1000);
-    connect(&autopauseTimer,SIGNAL(timeout()),this,SLOT(forcePause()));
+    connect(&autopauseTimer,SIGNAL(timeout()),this,SLOT(turnPauseOn()));
 
 
 }
@@ -364,22 +369,24 @@ void SeaScene::pause(bool paused)
                 pPausetextItem_->hide();
 
             autopauseTimer.start(); //Start counting towards autopause
+            deviceLockPollTimer_.start(); //Start polling whether device is locked
         }
 
         else
         {
-         qDebug("about to stop movement");
+//         qDebug("about to stop movement");
             emit pauseOn();
             screenLitKeeper_.keepScreenLit(false);
             if (pPausetextItem_ != NULL)
             {
-                qDebug() << "about to show the pause text";
+//                qDebug() << "about to show the pause text";
                 pPausetextItem_->show();
-                qDebug() << "showing pause text";
+//                qDebug() << "showing pause text";
             }
-                else qDebug() << "No pause text available";
+//                else qDebug() << "No pause text available";
 
             autopauseTimer.stop(); //No need to count toward autopause when already paused
+            deviceLockPollTimer_.stop(); //No need to check for unlock as no unpause anyway
         }
 }
 
@@ -453,7 +460,7 @@ void SeaScene::handleScreenTapped()
 
     if (pItem == pRestartGameItem_)
     {
-        qDebug() << "game restart requested";
+//        qDebug() << "game restart requested";
         restartGame();
         pPauseAction_->setChecked(false); //unpause game
 
@@ -461,7 +468,7 @@ void SeaScene::handleScreenTapped()
 
     else if (pItem == pRestartLevelItem_)
     {
-        qDebug() << "Level restart requested";
+//        qDebug() << "Level restart requested";
         restartLevel();
         pPauseAction_->setChecked(false); //unpause game
 
@@ -528,7 +535,7 @@ void SeaScene::createMenuItems()
     prepareForMenu(pRestartLevelItem_);
 
     pSettingsItem_ = new QGraphicsTextItem;
-    QString vibraText(tr("Vibration <br> effects "));
+    QString vibraText(tr("Turn vibration <br> effects "));
     QString statusText;
     if (pVibrateAction_->isChecked())
     {
@@ -651,21 +658,27 @@ void SeaScene::createVictoryItems()
     pVictoryCongratulationsItem_ = new QGraphicsTextItem;
     pVictoryCongratulationsItem_->setHtml("<font size=\"6\" color = darkorange> Victory!");
     pVictoryCongratulationsItem_->hide();
-    pVictoryCongratulationsItem_->setPos(300,50);
+    pVictoryCongratulationsItem_->setPos(355,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);
 
+    //coordinates are relative to the parent
 
     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->setHtml("<font size=\"5\" color = darkorange> Congratulations!");
     pTextItem->setPos(-50,100);
     pTextItem->setZValue(1000);
+
+    QGraphicsTextItem * pMiddleTextItem = new QGraphicsTextItem(pVictoryCongratulationsItem_);
+    pMiddleTextItem->setHtml("<font size=\"5\" color = darkorange> You have saved all the ghosts.");
+    pMiddleTextItem->setPos(-145,140);
+    pMiddleTextItem->setZValue(1000);
+
+    QGraphicsTextItem * pLowestTextItem = new QGraphicsTextItem(pVictoryCongratulationsItem_);
+    pLowestTextItem->setHtml("<font size=\"5\" color = darkorange> Tap to play again");
+    pLowestTextItem->setPos(-50,220);
+    pLowestTextItem->setZValue(1000);
 }
 
 void SeaScene::createAboutBoxItems()
@@ -680,7 +693,8 @@ void SeaScene::createAboutBoxItems()
                           "%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/ "
+                          "<p><font size = \"3\"> Web: http://ghostsoverboard.garage.maemo.org/<br>"
+                          "Bug Reports: <br> https://bugs.maemo.org/"
                           "enter_bug.cgi?product=Ghosts%20Overboard"
                           ).arg(QApplication::applicationName(),QApplication::applicationVersion()));
 
@@ -697,4 +711,40 @@ void SeaScene::setItemPointersNull()
     pMinimizeItem_ = NULL;
 
     pAboutBoxItem_ = NULL;
+    pVictoryCongratulationsItem_ = NULL;
+
+}
+
+void SeaScene::turnPauseOn()
+{
+    pPauseAction_->setChecked(true);
+}
+
+void SeaScene::handleDeviceLocked(bool isLocked)
+{
+    //pauses if locked but does not unpause if unlocked
+    if(isLocked)
+    {
+        pPauseAction_->setChecked(true);
+    }
+}
+
+void SeaScene::pollDeviceLocked()
+{
+
+    bool locked = deviceInfo_.isDeviceLocked();
+
+    if (locked)
+    {
+        if (!alreadyLocked_)
+        {
+            pPauseAction_->setChecked(true);
+            alreadyLocked_ = true;
+        }
+
+    else
+        {
+            alreadyLocked_ = false;
+        }
+    }
 }