Polls for screen locked status
authorHeli Hyvättinen <heli.hyvattinen@kymp.net>
Wed, 27 Jul 2011 08:02:40 +0000 (11:02 +0300)
committerHeli Hyvättinen <heli.hyvattinen@kymp.net>
Wed, 27 Jul 2011 08:02:40 +0000 (11:02 +0300)
to pause when locked

seascene.cpp
seascene.h

index b29c068..9ee3925 100644 (file)
@@ -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;
+        }
+    }
+}
index 0900421..99259fc 100644 (file)
@@ -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