From: Heli Hyvättinen Date: Wed, 27 Jul 2011 08:02:40 +0000 (+0300) Subject: Polls for screen locked status X-Git-Tag: v0.3.0_fremantle~1 X-Git-Url: http://vcs.maemo.org/git/?p=ghostsoverboard;a=commitdiff_plain;h=515088ed126af576f0d9656de3a3b718a7ade317 Polls for screen locked status to pause when locked --- diff --git a/seascene.cpp b/seascene.cpp index b29c068..9ee3925 100644 --- a/seascene.cpp +++ b/seascene.cpp @@ -89,7 +89,10 @@ SeaScene::SeaScene(QObject *parent) : pPauseAction_->setCheckable(true); connect(pPauseAction_,SIGNAL(toggled(bool)),this,SLOT(pause(bool))); - connect(&deviceInfo_,SIGNAL(lockStatusChanged(bool)),this,SLOT(handleDeviceLocked(bool))); + + deviceLockPollTimer_.setInterval(20*60); // 2s + connect(&deviceLockPollTimer_,SIGNAL(timeout()),this,SLOT(pollDeviceLocked())); + deviceLockPollTimer_.start(); autopauseTimer.setSingleShot(true); @@ -366,6 +369,7 @@ void SeaScene::pause(bool paused) pPausetextItem_->hide(); autopauseTimer.start(); //Start counting towards autopause + deviceLockPollTimer_.start(); //Start polling whether device is locked } else @@ -382,6 +386,7 @@ void SeaScene::pause(bool paused) // 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 } } @@ -723,3 +728,23 @@ void SeaScene::handleDeviceLocked(bool isLocked) pPauseAction_->setChecked(true); } } + +void SeaScene::pollDeviceLocked() +{ + + bool locked = deviceInfo_.isDeviceLocked(); + + if (locked) + { + if (!alreadyLocked_) + { + pPauseAction_->setChecked(true); + alreadyLocked_ = true; + } + + else + { + alreadyLocked_ = false; + } + } +} diff --git a/seascene.h b/seascene.h index 0900421..99259fc 100644 --- a/seascene.h +++ b/seascene.h @@ -48,6 +48,7 @@ signals: void vibrationActivated(bool on); void minimizeRequested(); void fullscreenRequested(); + void deviceJustLocked(); public slots: @@ -95,6 +96,8 @@ public slots: void handleDeviceLocked(bool isLocked); + void pollDeviceLocked(); + protected: @@ -150,6 +153,10 @@ protected: QSystemDeviceInfo deviceInfo_; + bool alreadyLocked_; + + QTimer deviceLockPollTimer_; + }; #endif // SEASCENE_H