small fix
[enigma2.git] / lib / python / Screens / TimeDateInput.py
1 from Screen import Screen
2 from Components.config import *
3 from Components.ActionMap import ActionMap, NumberActionMap
4 from Components.ConfigList import ConfigList, ConfigListScreen
5 from Components.Button import Button
6 from Components.Label import Label
7 from Components.Pixmap import Pixmap
8 import time
9 import datetime
10
11 class TimeDateInput(Screen, ConfigListScreen):
12         def __init__(self, session, config_time=None, config_date=None):
13                 Screen.__init__(self, session)
14                 self["oktext"] = Label(_("OK"))
15                 self["canceltext"] = Label(_("Cancel"))
16                 self["ok"] = Pixmap()
17                 self["cancel"] = Pixmap()
18
19                 self.createConfig(config_date, config_time)
20
21                 self["actions"] = NumberActionMap(["SetupActions"],
22                 {
23                         "ok": self.keySelect,
24                         "save": self.keyGo,
25                         "cancel": self.keyCancel,
26                 }, -2)
27
28                 self.list = []
29                 ConfigListScreen.__init__(self, self.list)
30                 self.createSetup(self["config"])
31
32         def createConfig(self, conf_date, conf_time):
33                 self.save_mask = 0
34                 if conf_time:
35                         self.save_mask |= 1
36                 else:
37                         conf_time = ConfigClock(default = time.time()),
38                 if conf_date:
39                         self.save_mask |= 2
40                 else:
41                         conf_date = ConfigDateTime(default = time.time(), formatstring = _("%d.%B %Y"), increment = 86400)
42                 self.timeinput_date = conf_date
43                 self.timeinput_time = conf_time
44
45         def createSetup(self, configlist):
46                 self.list = []
47                 self.list.append(getConfigListEntry(_("Date"), self.timeinput_date))
48                 self.list.append(getConfigListEntry(_("Time"), self.timeinput_time))
49                 configlist.list = self.list
50                 configlist.l.setList(self.list)
51
52         def keySelect(self):
53                 self.keyGo()
54
55         def getTimestamp(self, date, mytime):
56                 d = time.localtime(date)
57                 dt = datetime.datetime(d.tm_year, d.tm_mon, d.tm_mday, mytime[0], mytime[1])
58                 return int(time.mktime(dt.timetuple()))
59
60         def keyGo(self):
61                 time = self.getTimestamp(self.timeinput_date.value, self.timeinput_time.value)
62                 if self.save_mask & 1:
63                         self.timeinput_time.save()
64                 if self.save_mask & 2:
65                         self.timeinput_date.save()
66                 self.close((True, time))
67
68         def keyCancel(self):
69                 if self.save_mask & 1:
70                         self.timeinput_time.cancel()
71                 if self.save_mask & 2:
72                         self.timeinput_date.cancel()
73                 self.close((False,))