Merge branch 'base'
authorHeli Hyvättinen <heli.hyvattinen@kymp.net>
Mon, 25 Jul 2011 12:31:24 +0000 (15:31 +0300)
committerHeli Hyvättinen <heli.hyvattinen@kymp.net>
Mon, 25 Jul 2011 12:31:24 +0000 (15:31 +0300)
Vibration menu item is now togglable

Conflicts:
seascene.cpp

seascene.cpp
seascene.h
seaview.cpp
seaview.h

index 480c99e..7adf58a 100644 (file)
@@ -85,6 +85,11 @@ SeaScene::SeaScene(QObject *parent) :
     connect(pPauseAction_,SIGNAL(toggled(bool)),this,SLOT(pause(bool)));
 
 
+    autopauseTimer.setSingleShot(true);
+    autopauseTimer.setInterval(15*60*1000);
+    connect(&autopauseTimer,SIGNAL(timeout()),this,SLOT(forcePause()));
+
+
 }
 
 void SeaScene::setupMap(int ghosts, int rocks, int octopuses, int octopusSpeed)
@@ -211,6 +216,8 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses, int octopusSpeed)
         connect(pOctopus,SIGNAL(droppingGhosts()),pShip,SLOT(dropAllGhosts()));
     }
     delete pPosition;
+
+
 }
 
 void SeaScene::setupMap(Level level)
@@ -338,10 +345,13 @@ void SeaScene::pause(bool paused)
         if (paused == false)
         {
      //       qDebug() << "starting to move again";
+            emit fullscreenRequested();
             emit pauseOff();
             screenLitKeeper_.keepScreenLit(true);
             if (pPausetextItem_)
                 pPausetextItem_->hide();
+
+            autopauseTimer.start(); //Start counting towards autopause
         }
 
         else
@@ -356,6 +366,8 @@ void SeaScene::pause(bool paused)
                 qDebug() << "showing pause text";
             }
                 else qDebug() << "No pause text available";
+
+            autopauseTimer.stop(); //No need to count toward autopause when already paused
         }
 }
 
@@ -429,19 +441,26 @@ void SeaScene::handleScreenTapped()
         about();
     }
 
+    else if(pItem == pMinimizeItem_)
+    {
+        emit minimizeRequested();
+    }
+
     else if (pItem == pQuitItem_)
     {
         qApp->quit();
     }
 
 
+
     //Selection is just used to get notice of a menu item being clicked, removed after use
 
     clearSelection();
 
     //The user propably went to paused state just to access menu, so unpause unless vibration set (so the user sees its changed)
+    //or unless status bar was requested
+    if (pItem != pMinimizeItem_ || pItem != pSettingsItem)
 
-    if (pItem != pSettingsItem_)
     {
         pPauseAction_->setChecked(false);
     }
@@ -460,7 +479,7 @@ void SeaScene::createMenuItems()
     pPausetextItem_ = new QGraphicsTextItem;
     pPausetextItem_->setHtml("<font size = \"5\" color = darkorange> Game paused. Tap to continue.");
     pPausetextItem_->setZValue(1000);
-    pPausetextItem_->setPos(200,50);
+    pPausetextItem_->setPos(165,50);
     addItem(pPausetextItem_);
     pPausetextItem_->hide();
 
@@ -495,6 +514,10 @@ void SeaScene::createMenuItems()
     pAboutItem_->setHtml(tr("About <br> game").prepend(menufonthtml));
     prepareForMenu(pAboutItem_);
 
+    pMinimizeItem_ = new QGraphicsTextItem;
+    pMinimizeItem_->setHtml(tr("Show <br> status bar").prepend(menufonthtml));
+    prepareForMenu(pMinimizeItem_);
+
     pQuitItem_ = new QGraphicsTextItem;
     pQuitItem_->setHtml(tr("Quit <br> game").prepend(menufonthtml));
     prepareForMenu(pQuitItem_);
@@ -509,11 +532,19 @@ void SeaScene::prepareForMenu(QGraphicsItem * pItem)
     //Their coordinates are given relative to the parent.
 
 
+
+
+    int itemsPerRow = 3;
+
     pItem->setParentItem(pPausetextItem_);
     pItem->setZValue(1000);
     pItem->setFlag(QGraphicsItem::ItemIsSelectable);
-    pItem->setY(150);
-    pItem->setX(menuItemCount_++*160-150);
+
+    int row = menuItemCount_/(itemsPerRow);
+    pItem->setY(150+row*120);
+    pItem->setX(((menuItemCount_%(itemsPerRow))*180+5));
+
+    menuItemCount_++;
  }
 
 
@@ -537,6 +568,7 @@ void SeaScene::restartLevel()
     setupMap(levelList_.value(currentLevel_));  //value() returns default constructor Level if index is invalid, so no risk of crash
     vibrationActivate(pVibrateAction_->isChecked());  //Vibration effects are lost without this
    // qDebug() << pVibrateAction_->isChecked();
+    autopauseTimer.start();  //reset counting towards autopause
 }
 
 
index 5fce73f..4fbbd3d 100644 (file)
@@ -29,6 +29,7 @@
 #include "screenlitkeeper.h"
 #include "level.h"
 #include <QAction>
+#include <QTimer>
 
 class SeaScene : public QGraphicsScene
 {
@@ -42,6 +43,8 @@ signals:
     void pauseOn();
     void pauseOff();
     void vibrationActivated(bool on);
+    void minimizeRequested();
+    void fullscreenRequested();
 
 public slots:
 
@@ -117,6 +120,7 @@ protected:
     QGraphicsTextItem * pSettingsItem_;
     QGraphicsTextItem * pAboutItem_;
     QGraphicsTextItem * pQuitItem_;
+    QGraphicsTextItem * pMinimizeItem_;
 
     QList<Level> levelList_;
 
@@ -129,6 +133,7 @@ protected:
 
     bool pauseForced_;
 
+    QTimer autopauseTimer;
 
 };
 
index 62c12a4..8b51b88 100644 (file)
@@ -42,6 +42,9 @@ SeaView::SeaView(QWidget *parent) :
     connect(this,SIGNAL(goingBackgroung()),pScene_,SLOT(forcePause()));
     connect(this,SIGNAL(goingForeground()),pScene_,SLOT(softContinue()));
 
+    connect(pScene_,SIGNAL(minimizeRequested()),this,SLOT(showNormal()));
+    connect(pScene_,SIGNAL(fullscreenRequested()),this,SLOT(showFullScreen()));
+
     showFullScreen();
 
 
@@ -114,3 +117,4 @@ void SeaView::initializeBoundaries()
 
     pScene_->restartLevel();
 }
+
index a36992c..4475d69 100644 (file)
--- a/seaview.h
+++ b/seaview.h
@@ -48,6 +48,7 @@ public slots:
 
     void initializeBoundaries();
 
+
 protected:
 
     SeaScene * pScene_;