Update italian language. Thanx to spaeleus
[vuplus_dvbapp-plugin] / kiddytimer / src / KTsetup.py
1 from Components.ActionMap import ActionMap, NumberActionMap
2 from Components.Button import Button
3 from Components.ConfigList import ConfigListScreen
4 from Components.Label import Label
5 from Components.config import config, getConfigListEntry
6 from KTpositioner import KiddyTimerPositioner
7 from Screens.InputBox import PinInput
8 from Screens.MessageBox import MessageBox
9 from Screens.ParentalControlSetup import ProtectedScreen
10 from Screens.Screen import Screen
11 from Tools import Notifications
12 from __init__ import _
13 import KTglob
14 import time
15
16 class KiddyTimerSetup(ConfigListScreen, Screen, ProtectedScreen):
17     skin = ("""
18     <screen position="75,90" size="560,380" title="%s Setup">
19       <ePixmap pixmap="~/img/button-red.png" position="0,0" zPosition="0" size="140,40" transparent="1" alphatest="on" />
20       <ePixmap pixmap="~/img/button-green.png" position="140,0" zPosition="0" size="140,40" transparent="1" alphatest="on" />
21       <ePixmap pixmap="~/img/button-yellow.png" position="280,0" zPosition="0" size="140,40" transparent="1" alphatest="on" />
22       <ePixmap pixmap="~/img/button-blue.png" position="420,0" zPosition="0" size="140,40" transparent="1" alphatest="on" />
23       <widget name="key_red" position="0,0" zPosition="1" size="140,40"
24         font="Regular;20" valign="center" halign="center" backgroundColor="#9f1313" transparent="1"
25         shadowColor="#000000" shadowOffset="-1,-1" />
26       <widget name="key_green" position="140,0" zPosition="1" size="140,40"
27         font="Regular;20" valign="center" halign="center" backgroundColor="#1f771f" transparent="1"
28         shadowColor="#000000" shadowOffset="-1,-1" />
29       <widget name="key_yellow" position="280,0" zPosition="1" size="140,40"
30         font="Regular;20" valign="center" halign="center" backgroundColor="#a08500" transparent="1"
31         shadowColor="#000000" shadowOffset="-1,-1" />
32       <widget name="key_blue" position="420,0" zPosition="1" size="140,40"
33         font="Regular;20" valign="center" halign="center" backgroundColor="#18188b" transparent="1"
34         shadowColor="#000000" shadowOffset="-1,-1" />
35       <widget name="config" position="10,40" size="540,280" scrollbarMode="showOnDemand" />
36       <widget name="LastDayStarted" position="10,320" size="540,20" zPosition="4" font="Regular;18" foregroundColor="#cccccc" />
37       <widget name="RemainingTime" position="10,340" size="540,20" zPosition="4" font="Regular;18" foregroundColor="#cccccc" />
38       <widget name="PluginInfo" position="10,360" size="540,20" zPosition="4" font="Regular;18" foregroundColor="#cccccc" />
39     </screen>""") %KTglob.PLUGIN_BASE
40
41     def __init__(self, session):
42         self.session = session
43         Screen.__init__(self, self.session)
44         ProtectedScreen.__init__(self)
45
46         # Lets get a list of elements for the config list
47         self.list = [
48             getConfigListEntry(_("Enabled"), config.plugins.KiddyTimer.enabled),
49             getConfigListEntry(_("PIN"), config.plugins.KiddyTimer.pin),
50             getConfigListEntry(_("Don't monitor TV started after"), config.plugins.KiddyTimer.monitorEndTime ), 
51             getConfigListEntry(_("Style of timer"), config.plugins.KiddyTimer.timerStyle )
52             ]
53         for i in range(0,7):
54             self.list.append(getConfigListEntry(KTglob.DAYNAMES[i], config.plugins.KiddyTimer.dayTimes[i].timeValue))                
55
56         ConfigListScreen.__init__(self, self.list)
57
58         self["config"].list = self.list
59
60         self.skin_path = KTglob.plugin_path
61         self.enabled_old = config.plugins.KiddyTimer.enabled.value
62
63         # Temporarily stop timer as long as we are in the setup screen
64         if KTglob.oKiddyTimer.dialog != None:
65             KTglob.oKiddyTimer.setDialogStatus(False)
66
67         # Plugin Information
68         iRemainingTime = KTglob.oKiddyTimer.remainingTime
69         sRemainingTime = KTglob.getTimeFromSeconds(KTglob.oKiddyTimer.remainingTime , True )
70
71         self["PluginInfo"] = Label(_("Plugin: %(plugin)s , Version: %(version)s") %dict(plugin=KTglob.PLUGIN_BASE,version=KTglob.PLUGIN_VERSION))
72         self["RemainingTime"] = Label(_("Remaining time: %s") %sRemainingTime)
73         self["LastDayStarted"] = Label(_("Last day started: %s") % config.plugins.KiddyTimer.lastStartDay.getValue())
74
75         # BUTTONS
76         self["key_red"] = Button(_("Cancel"))
77         self["key_green"] = Button(_("Save"))
78         self["key_yellow"] = Button(_("Reset clock"))
79         self["key_blue"] = Button(_("Move clock"))
80
81         self["setupActions"] = NumberActionMap(["SetupActions", "ColorActions"],
82         {
83             "save": self.save,
84             "cancel": self.cancel,
85             "green": self.save,
86             "red": self.cancel,
87             "ok": self.save,
88             "blue": self.keyPositioner,
89             "yellow": self.resetTimer
90         }, -2)
91            
92     def keyPositioner(self):
93         self.session.open(KiddyTimerPositioner)
94
95     def resetTimer(self):
96         KTglob.oKiddyTimer.resetTimer()
97         sRemainingTime = KTglob.getTimeFromSeconds(KTglob.oKiddyTimer.remainingTime , True )
98         self["RemainingTime"].setText(_("Remaining time: %s") %sRemainingTime)
99
100     def save(self):
101         if KTglob.oKiddyTimer.remainingTime > KTglob.getSecondsFromClock( config.plugins.KiddyTimer.dayTimes[KTglob.oKiddyTimer.dayNr].timeValue.getValue()):
102             self.resetTimer()
103         for x in self["config"].list:
104             x[1].save()
105         
106         KTglob.oKiddyTimer.currentDayTime = KTglob.getSecondsFromClock(config.plugins.KiddyTimer.dayTimes[KTglob.oKiddyTimer.dayNr].timeValue.getValue())
107         if config.plugins.KiddyTimer.enabled.value:
108             if self.enabled_old != config.plugins.KiddyTimer.enabled.value:
109                 KTglob.oKiddyTimer.gotSession(KTglob.oKiddyTimer.session)
110             else:
111                 KTglob.oKiddyTimer.setDialogStatus(KTglob.oKiddyTimer.timerHasToRun())
112                 if KTglob.oKiddyTimer.dialogEnabled == True:
113                     KTglob.oKiddyTimer.askForActivation()
114         self.close()
115
116     def cancel(self):
117         for x in self["config"].list:
118             x[1].cancel()
119         self.close()
120         KTglob.oKiddyTimer.showHide()
121
122     def protectedWithPin(self):
123         return config.plugins.KiddyTimer.pin.getValue()