//Setup the level list
+ QList<Level> levelList;
Level level1(5,10);
- levelList_.append(level1);
+ levelList.append(level1);
Level level2(5,10,2,50);
- levelList_.append(level2);
+ levelList.append(level2);
Level level3(5,15,2,50);
- levelList_.append(level3);
+ levelList.append(level3);
Level level4(5,15,4,50);
- levelList_.append(level4);
+ levelList.append(level4);
Level level5(5,15,5,100);
- levelList_.append(level5);
+ levelList.append(level5);
+
+ Levelset set ("Original",levelList);
+ levelset_ = set;
currentLevel_ = 0;
connect(pPauseAction_,SIGNAL(toggled(bool)),this,SLOT(pause(bool)));
+ deviceLockPollTimer_.setInterval(20*60);
+ connect(&deviceLockPollTimer_,SIGNAL(timeout()),this,SLOT(pollDeviceLocked()));
+ deviceLockPollTimer_.start();
+
+
autopauseTimer.setSingleShot(true);
autopauseTimer.setInterval(15*60*1000);
connect(&autopauseTimer,SIGNAL(timeout()),this,SLOT(turnPauseOn()));
pPausetextItem_->hide();
autopauseTimer.start(); //Start counting towards autopause
+ deviceLockPollTimer_.start(); //Start polling whether device is locked
}
else
// 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
}
}
void SeaScene::restartLevel()
{
- setupMap(levelList_.value(currentLevel_)); //value() returns default constructor Level if index is invalid, so no risk of crash
+ setupMap(levelset_.getLevel(currentLevel_)); //getLevel() 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
currentLevel_++;
- if (levelList_.empty())
+ if (!levelset_.isValid())
setupMap(Level());
- if ( currentLevel_ < levelList_.size() )
+ if ( currentLevel_ < levelset_.numberOfLevels() )
{
restartLevel();
}
{
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;
+ }
+ }
+}