New feature: Instantly Enable KiddyTimer for x minutes.
authorTorsten Link <tode@users.schwerkraft.elitedvb.net>
Sat, 20 Feb 2010 19:42:20 +0000 (19:42 +0000)
committerTorsten Link <tode@users.schwerkraft.elitedvb.net>
Sat, 20 Feb 2010 19:42:20 +0000 (19:42 +0000)
kiddytimer/CONTROL/control
kiddytimer/po/KiddyTimer.pot
kiddytimer/po/de.po
kiddytimer/src/KTglob.py
kiddytimer/src/KTmain.py

index e2475b5..35f81cd 100644 (file)
@@ -1,5 +1,5 @@
 Package: enigma2-plugin-extensions-kiddytimer
-Version: 0.7-20100220-r0
+Version: 0.8-20100220-r0
 Description: Allows to control the Kids' daily TV usage
 Architecture: mipsel
 Section: extra
index 0efb2c5..f88e02a 100644 (file)
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: KiddyTimer\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-16 01:25+0100\n"
+"POT-Creation-Date: 2010-02-20 20:38+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Tode <sagichnet@gmx.net>\n"
 "Language-Team: \n"
@@ -40,59 +40,68 @@ msgstr ""
 msgid "Saturday"
 msgstr ""
 
-#: ..\src/KTmain.py:28
-#: ..\src/KTmain.py:30
+#: ..\src/KTmain.py:38
+#: ..\src/KTmain.py:40
 msgid "??:??"
 msgstr ""
 
-#: ..\src/KTmain.py:110
+#: ..\src/KTmain.py:120
 msgid "Do you want to start the kiddytimer- plugin now."
 msgstr ""
 
-#: ..\src/KTmain.py:126
+#: ..\src/KTmain.py:137
 msgid "Please enter the correct pin code"
 msgstr ""
 
-#: ..\src/KTmain.py:126
+#: ..\src/KTmain.py:137
 msgid "Enter pin code"
 msgstr ""
 
-#: ..\src/KTmain.py:262
+#: ..\src/KTmain.py:286
 msgid "Please select your KiddyTimer- option"
 msgstr ""
 
-#: ..\src/KTmain.py:268
+#: ..\src/KTmain.py:292
 msgid "Stop KiddyTimer (this session only)"
 msgstr ""
 
-#: ..\src/KTmain.py:269
+#: ..\src/KTmain.py:293
 msgid "Increase remaining time"
 msgstr ""
 
-#: ..\src/KTmain.py:270
+#: ..\src/KTmain.py:294
 msgid "Decrease remaining time"
 msgstr ""
 
-#: ..\src/KTmain.py:272
+#: ..\src/KTmain.py:295
+msgid "Set remaining time"
+msgstr ""
+
+#: ..\src/KTmain.py:297
 msgid "Start KiddyTimer"
 msgstr ""
 
-#: ..\src/KTmain.py:273
+#: ..\src/KTmain.py:298
+#: ..\src/KTmain.py:302
+msgid "Enable KiddyTimer for x minutes"
+msgstr ""
+
+#: ..\src/KTmain.py:299
 msgid "Disable KiddyTimer"
 msgstr ""
 
-#: ..\src/KTmain.py:275
+#: ..\src/KTmain.py:301
 msgid "Enable KiddyTimer"
 msgstr ""
 
-#: ..\src/KTmain.py:296
+#: ..\src/KTmain.py:332
 msgid "Invalid selection"
 msgstr ""
 
 #: ..\src/KTpositioner.py:19
 #: ..\src/KTpositioner.py:21
-#: ..\src/KTsetup.py:141
-#: ..\src/KTsetup.py:143
+#: ..\src/KTsetup.py:147
+#: ..\src/KTsetup.py:149
 msgid "01:00"
 msgstr ""
 
@@ -122,7 +131,7 @@ msgid "Plugin: %(plugin)s , Version: %(version)s"
 msgstr ""
 
 #: ..\src/KTsetup.py:80
-#: ..\src/KTsetup.py:106
+#: ..\src/KTsetup.py:112
 #, python-format
 msgid "Remaining time: %s"
 msgstr ""
@@ -148,6 +157,10 @@ msgstr ""
 msgid "Move clock"
 msgstr ""
 
+#: ..\src/KTsetup.py:104
+msgid "The pin code you entered is wrong."
+msgstr ""
+
 #: ..\src/MovableScreen.py:17
 #: ..\src/MovableScreen.py:24
 msgid "Save values and close screen"
index 56fe975..bdbc4c5 100644 (file)
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: KiddyTimer\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-20 13:22+0100\n"
+"POT-Creation-Date: 2010-02-20 20:37+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Tode <sagichnet@gmx.net>\n"
 "Language-Team: \n"
@@ -41,52 +41,61 @@ msgstr ""
 msgid "Saturday"
 msgstr ""
 
-#: ..\src/KTmain.py:28
-#: ..\src/KTmain.py:30
+#: ..\src/KTmain.py:38
+#: ..\src/KTmain.py:40
 msgid "??:??"
 msgstr "??:??"
 
-#: ..\src/KTmain.py:110
+#: ..\src/KTmain.py:120
 msgid "Do you want to start the kiddytimer- plugin now."
 msgstr "Wollen Sie das KiddyTimer- Plugin jetzt starten?"
 
-#: ..\src/KTmain.py:126
+#: ..\src/KTmain.py:137
 msgid "Please enter the correct pin code"
 msgstr "Bitte geben Sie den korrekten pin code ein"
 
-#: ..\src/KTmain.py:126
+#: ..\src/KTmain.py:137
 msgid "Enter pin code"
 msgstr "Pin code eingeben"
 
-#: ..\src/KTmain.py:263
+#: ..\src/KTmain.py:286
 msgid "Please select your KiddyTimer- option"
 msgstr "Bitte wählen Sie Ihre KiddyTimer- Option"
 
-#: ..\src/KTmain.py:269
+#: ..\src/KTmain.py:292
 msgid "Stop KiddyTimer (this session only)"
 msgstr "KiddyTimer stoppen (nur diese Session)"
 
-#: ..\src/KTmain.py:270
+#: ..\src/KTmain.py:293
 msgid "Increase remaining time"
 msgstr "Verbleibende Zeit erhöhen"
 
-#: ..\src/KTmain.py:271
+#: ..\src/KTmain.py:294
 msgid "Decrease remaining time"
 msgstr "Verbleibende Zeit verringern"
 
-#: ..\src/KTmain.py:273
+#: ..\src/KTmain.py:295
+msgid "Set remaining time"
+msgstr "Verbleibende Zeit setzen"
+
+#: ..\src/KTmain.py:297
 msgid "Start KiddyTimer"
 msgstr "KiddyTimer starten"
 
-#: ..\src/KTmain.py:274
+#: ..\src/KTmain.py:298
+#: ..\src/KTmain.py:302
+msgid "Enable KiddyTimer for x minutes"
+msgstr "KiddyTimer für x Minuten aktivieren"
+
+#: ..\src/KTmain.py:299
 msgid "Disable KiddyTimer"
 msgstr "KiddyTimer deaktivieren"
 
-#: ..\src/KTmain.py:276
+#: ..\src/KTmain.py:301
 msgid "Enable KiddyTimer"
 msgstr "KiddyTimer aktivieren"
 
-#: ..\src/KTmain.py:297
+#: ..\src/KTmain.py:332
 msgid "Invalid selection"
 msgstr "Ungültige Auswahl"
 
index 4a200eb..e02c8a6 100644 (file)
@@ -1,7 +1,7 @@
 import time
 
 PLUGIN_BASE = "KiddyTimer"
-PLUGIN_VERSION = "0.7"
+PLUGIN_VERSION = "0.8"
 
 DAYNAMES= (_("Sunday"),
           _("Monday"),
index 6a21797..da09ac1 100644 (file)
@@ -15,6 +15,16 @@ import KTglob
 import NavigationInstance
 import time
 
+PARAM_DIALOG = 0
+PARAM_STOPTIMER = 1
+PARAM_STARTTIMER = 2
+PARAM_DISABLETIMER = 3
+PARAM_ENABLETIMER = 4
+PARAM_INCREASETIMER = 5
+PARAM_DECREASETIMER = 6
+PARAM_SETTIMER = 7
+PARAM_ENABLETIMERONCE = 8
+
 class KiddyTimerScreen(Screen):    
 
     def __init__(self, session):
@@ -70,7 +80,7 @@ class KiddyTimer():
         self.iServiceReference = None
         self.curImg = 0
                     
-        self.loopTimerStep = 10000
+        self.loopTimerStep = 1000
         self.loopTimer = eTimer()
         self.loopTimer.callback.append(self.calculateTimer)
 
@@ -118,7 +128,8 @@ class KiddyTimer():
                 self.dialog = self.session.instantiateDialog(KiddyTimerScreen)
                 self.dialog.hide()
         else:
-            self.askForPassword(self.pinEnteredDialog)
+            self.callbackParameter = PARAM_DIALOG
+            self.askForPassword(self.pinEntered)
                                        
         self.calculateTimer()
 
@@ -127,55 +138,67 @@ class KiddyTimer():
     
     def getTriesEntry(self):
         return config.ParentalControl.retries.setuppin
-        
-    def pinEnteredDialog(self, result):
-        if result is None:
-            pass
-        elif not result:
-            pass
-        else:
-            self.setDialogStatus( False )        
-    
-    def pinEnteredDesactivation(self, result):
-        if result is None:
-            pass
-        elif not result:
-            pass
-        else:
-            config.plugins.KiddyTimer.enabled.value = False
-            config.plugins.KiddyTimer.enabled.save()
-            self.stopMe()
-    
-    def pinEnteredIncreaseRemainingTime(self, result):
+
+    def pinEntered(self, result):
         if result is None:
             pass
         elif not result:
             pass
         else:
-            self.session.openWithCallback(self.increaseRemainingCallback, MinuteInput)
-
+            if self.callbackParameter == PARAM_DIALOG:
+                self.setDialogStatus( False )        
+            elif self.callbackParameter == PARAM_DISABLETIMER:
+                config.plugins.KiddyTimer.enabled.value = False
+                config.plugins.KiddyTimer.enabled.save()
+                self.stopMe()                
+            elif self.callbackParameter == PARAM_INCREASETIMER:
+                self.session.openWithCallback(self.increaseRemainingCallback, MinuteInput)
+            elif self.callbackParameter == PARAM_SETTIMER:
+                self.session.openWithCallback(self.setRemainingCallback, MinuteInput)
+            elif self.callbackParameter == PARAM_ENABLETIMERONCE:
+                self.session.openWithCallback(self.setRemainingOnceCallback, MinuteInput)
+                
     def increaseRemainingCallback(self, iMinutes):
         iSeconds = iMinutes * 60
-        self.lastSavedRemainingTime += iSeconds
-        if self.lastSavedRemainingTime > self.currentDayTime:
-            self.lastSavedRemainingTime = self.currentDayTime
-        self.calculateTimer()
+        iSeconds += self.lastSavedRemainingTime 
+        self.setRemainingTime(iSeconds)
 
     def decreaseRemainingCallback(self, iMinutes):
         iSeconds = iMinutes * 60
-        self.lastSavedRemainingTime -= iSeconds
+        iSeconds = self.lastSavedRemainingTime - iSeconds
+        self.setRemainingTime(iSeconds)
+
+    def setRemainingCallback(self, iMinutes):
+        iSeconds = iMinutes * 60
+        self.resetTimer(setTime=iSeconds)
+        self.calculateTimer()
+        
+    def setRemainingOnceCallback(self, iMinutes):
+        iSeconds = iMinutes * 60
+        if iSeconds > 0:
+            self.enabled = True
+            self.resetTimer(setTime=iSeconds)
+            self.activationCallback(True)
+        
+    def setRemainingTime(self, iSeconds):
+        self.lastSavedRemainingTime = iSeconds
+        if self.lastSavedRemainingTime > self.currentDayTime:
+            self.currentDayTime = self.lastSavedRemainingTime
         if self.lastSavedRemainingTime < 0:
             self.lastSavedRemainingTime = 0
         self.calculateTimer()
-
+        
     def startLoop(self):
         self.loopTimer.start(self.loopTimerStep,1)
     
     def stopLoop(self):
         self.loopTimer.stop()
     
-    def resetTimer(self):
-        iDayTime = KTglob.getSecondsFromClock( config.plugins.KiddyTimer.dayTimes[self.dayNr].timeValue.getValue() )
+    def resetTimer(self,**kwargs):
+        if "setTime" in kwargs.keys():
+            iDayTime = kwargs["setTime"]
+        else:            
+            iDayTime = KTglob.getSecondsFromClock( config.plugins.KiddyTimer.dayTimes[self.dayNr].timeValue.getValue() )
         self.currentDayTime = iDayTime
         
         self.lastSavedRemainingTime = self.currentDayTime
@@ -266,33 +289,45 @@ class KiddyTimer():
         keyList = []
         if config.plugins.KiddyTimer.enabled.value:
             if self.dialogEnabled:
-                keyList.append((_("Stop KiddyTimer (this session only)"),1))
-                keyList.append((_("Increase remaining time"),5))
-                keyList.append((_("Decrease remaining time"),6))
+                keyList.append((_("Stop KiddyTimer (this session only)"),PARAM_STOPTIMER))
+                keyList.append((_("Increase remaining time"),PARAM_INCREASETIMER))
+                keyList.append((_("Decrease remaining time"),PARAM_DECREASETIMER))
+                keyList.append((_("Set remaining time"),PARAM_SETTIMER))
             else:
-                keyList.append((_("Start KiddyTimer"),2))
-            keyList.append((_("Disable KiddyTimer"),3))
+                keyList.append((_("Start KiddyTimer"),PARAM_STARTTIMER))
+            keyList.append((_("Enable KiddyTimer for x minutes"),PARAM_ENABLETIMERONCE))
+            keyList.append((_("Disable KiddyTimer"),PARAM_DISABLETIMER))
         else:
-            keyList.append((_("Enable KiddyTimer"),4))
+            keyList.append((_("Enable KiddyTimer"),PARAM_ENABLETIMER))
+            keyList.append((_("Enable KiddyTimer for x minutes"),PARAM_ENABLETIMERONCE))
         return keyList
-    
+        
     def DoSelectionExtensionsMenu(self,answer):
+        self.callbackParam = -1
         if answer is None:
             pass
-        elif answer[1] == 3:
-            self.askForPassword(self.pinEnteredDesactivation)
-        elif  answer[1] == 1:
+        elif answer[1] == PARAM_DISABLETIMER:
+            self.callbackParameter = PARAM_DISABLETIMER
+            self.askForPassword(self.pinEntered)
+        elif  answer[1] == PARAM_STOPTIMER:
             self.activationCallback(False)
-        elif  answer[1] == 2:
+        elif  answer[1] == PARAM_STARTTIMER:
             self.activationCallback(True)
-        elif  answer[1] == 4:
+        elif  answer[1] == PARAM_ENABLETIMER:
             config.plugins.KiddyTimer.enabled.value = True
             config.plugins.KiddyTimer.enabled.save()
             self.gotSession(self.session)
-        elif answer[1] ==5:
-            self.askForPassword(self.pinEnteredIncreaseRemainingTime)
-        elif answer[1] ==6:
+        elif answer[1] == PARAM_INCREASETIMER:
+            self.callbackParameter = PARAM_INCREASETIMER
+            self.askForPassword(self.pinEntered)
+        elif answer[1] == PARAM_DECREASETIMER:
             self.session.openWithCallback(self.decreaseRemainingCallback, MinuteInput)
+        elif answer[1] == PARAM_SETTIMER:
+            self.callbackParameter = PARAM_SETTIMER
+            self.askForPassword(self.pinEntered)
+        elif answer[1] == PARAM_ENABLETIMERONCE:
+            self.callbackParameter = PARAM_ENABLETIMERONCE
+            self.askForPassword(self.pinEntered)
         else:
             self.session.open(MessageBox,_("Invalid selection"), MessageBox.TYPE_ERROR, 5)