Classes to keep screen lit
authorArto Hyvättinen <arto.hyvattinen@gmail.com>
Fri, 17 Sep 2010 17:32:05 +0000 (20:32 +0300)
committerArto Hyvättinen <arto.hyvattinen@gmail.com>
Fri, 17 Sep 2010 17:32:05 +0000 (20:32 +0300)
classes/screenlitkeeper.cpp [new file with mode: 0644]
classes/screenlitkeeper.h [new file with mode: 0644]
main.cpp
pic/pausebutton.png [new file with mode: 0644]

diff --git a/classes/screenlitkeeper.cpp b/classes/screenlitkeeper.cpp
new file mode 100644 (file)
index 0000000..6606209
--- /dev/null
@@ -0,0 +1,63 @@
+/**************************************************************************
+        ScreenLitKeeper
+
+        Copyright (C) 2010  Heli Hyvättinen
+        
+        This file is free software: you can redistribute it and/or modify
+        it under the terms of the GNU General Public License as published by
+        the Free Software Foundation, either version 3 of the License, or
+        (at your option) any later version.
+
+        This program is distributed in the hope that it will be useful,
+        but WITHOUT ANY WARRANTY; without even the implied warranty of
+        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        GNU General Public License for more details.
+
+        You should have received a copy of the GNU General Public License
+        along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+**************************************************************************/
+
+
+
+
+
+#include "screenlitkeeper.h"
+
+ScreenLitKeeper::ScreenLitKeeper(QObject *parent) :
+    QObject(parent)
+{
+    p_screensaver_ = NULL;
+    isKeptLit_ = false;
+}
+
+void ScreenLitKeeper::keepScreenLit(bool keepLit)
+{
+
+    //If the requested state is the same as the current state do nothing.
+    if (keepLit == isKeptLit_)
+        return;
+
+
+
+    if (keepLit == true )
+    {
+        //a new screensaver is created, parent is given so that it is automatically destroyed when this object is destroyed
+        p_screensaver_ = new QSystemScreenSaver(this);
+        //screensaver is disabled, which keeps the screen lit on N900
+        p_screensaver_->setScreenSaverInhibit();
+        isKeptLit_ = true;
+
+    }
+
+    else if (p_screensaver_ != NULL) //just to be on the safe side, it should never be NULL if this line is reached
+    {
+      delete p_screensaver_; //The object must be deleted to reverse the effect of setScreenSaverInhibit()
+      p_screensaver_ = NULL;
+      isKeptLit_ = false;
+
+    }
+
+    return;
+
+}
diff --git a/classes/screenlitkeeper.h b/classes/screenlitkeeper.h
new file mode 100644 (file)
index 0000000..24dd565
--- /dev/null
@@ -0,0 +1,69 @@
+/**************************************************************************
+        ScreenLitKeeper
+
+        Copyright (C) 2010  Heli Hyvättinen
+        
+        This file is free software: you can redistribute it and/or modify
+        it under the terms of the GNU General Public License as published by
+        the Free Software Foundation, either version 3 of the License, or
+        (at your option) any later version.
+
+        This program is distributed in the hope that it will be useful,
+        but WITHOUT ANY WARRANTY; without even the implied warranty of
+        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        GNU General Public License for more details.
+
+        You should have received a copy of the GNU General Public License
+        along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+**************************************************************************/
+
+
+
+
+
+#ifndef SCREENLITKEEPER_H
+#define SCREENLITKEEPER_H
+
+#include <QObject>
+#include <QSystemScreenSaver>
+using namespace QtMobility;
+
+
+/*! Allows keeping the sreen lit by disabling the screensaver
+
+Works at least on N900.
+The sreen can be set to be kept lit or not.
+To use this class, you must have the following lines  in your .pro file:
+CONFIG += mobility
+MOBILITY += systeminfo
+
+@author Heli Hyvättinen
+@date 2010-09-07
+@version 1
+
+  */
+
+class ScreenLitKeeper : public QObject
+{
+    Q_OBJECT
+public:
+    explicit ScreenLitKeeper(QObject *parent = 0);
+
+signals:
+
+public slots:
+ /*!
+Sets whether the screen is to be kept lit
+@param keepLit true for keeping lit, false for allowing blanking
+*/
+
+    void keepScreenLit(bool keepLit);
+
+private:
+     QSystemScreenSaver * p_screensaver_;
+     bool isKeptLit_;
+
+};
+
+#endif // SCREENLITKEEPER_H
index 1beec9d..a92f7ec 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -23,7 +23,7 @@
 /*! @mainpage Chess Clock
 
   @author Arto Hyvättinen
-  @version 0.9
+  @version 1.1
 
 
     Chess Clock
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
     a.setApplicationName( a.tr("Chess Clock","Application name") );
     a.setOrganizationName("Chess Clock");
     a.setOrganizationDomain("chessclock.garage.maemo.org");
-    a.setApplicationVersion("1.0.0");
+    a.setApplicationVersion("1.1.0");
 
     ChessClockWindow w;
 
diff --git a/pic/pausebutton.png b/pic/pausebutton.png
new file mode 100644 (file)
index 0000000..5c20e80
Binary files /dev/null and b/pic/pausebutton.png differ