- fixed left/right in language selection (updates language on the fly)
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Tue, 24 Jan 2006 22:22:14 +0000 (22:22 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Tue, 24 Jan 2006 22:22:14 +0000 (22:22 +0000)
- added a log viewer for timers (info key in timerlist)

data/keymap.xml
data/skin.xml
lib/python/Screens/LanguageSelection.py
lib/python/Screens/TimerEdit.py
lib/python/Screens/TimerEntry.py

index a120601..a737ab2 100644 (file)
                <key id="KEY_RADIO" mapto="keyRadio" flags="m" />
        </map>
 
                <key id="KEY_RADIO" mapto="keyRadio" flags="m" />
        </map>
 
+       <map context="TimerEditActions">
+               <key id="KEY_INFO" mapto="log" flags="m" />
+       </map>
+       
        <map context="EPGSelectActions">
                <key id="KEY_GREEN" mapto="timerAdd" flags="m" />
                <key id="KEY_YELLOW" mapto="yellow" flags="m" />
        <map context="EPGSelectActions">
                <key id="KEY_GREEN" mapto="timerAdd" flags="m" />
                <key id="KEY_YELLOW" mapto="yellow" flags="m" />
                <key id="KEY_ENTER" mapto="ok" flags="m" />
                <key id="KEY_ESC" mapto="cancel" flags="m" />
        </map>
                <key id="KEY_ENTER" mapto="ok" flags="m" />
                <key id="KEY_ESC" mapto="cancel" flags="m" />
        </map>
+       
+       <map context="DirectionActions">
+               <key id="KEY_UP" mapto="up" flags="m" />                
+               <key id="KEY_DOWN" mapto="down" flags="m" />
+               <key id="KEY_LEFT" mapto="left" flags="m" />            
+               <key id="KEY_RIGHT" mapto="right" flags="m" />
+       </map>
+       
+       <map context="ColorActions">
+               <key id="KEY_RED" mapto="red" flags="m" />              
+               <key id="KEY_GREEN" mapto="green" flags="m" />
+               <key id="KEY_YELLOW" mapto="yellow" flags="m" />                
+               <key id="KEY_BLUE" mapto="blue" flags="m" />
+       </map>
 
        <map context="MsgBoxActions">
                <key id="KEY_GREEN" mapto="alwaysOK" flags="m" />
 
        <map context="MsgBoxActions">
                <key id="KEY_GREEN" mapto="alwaysOK" flags="m" />
index acb083e..ec26d55 100644 (file)
                        <widget name="key_yellow" position="280,0" size="140,40" backgroundColor="yellow" font="Regular;21" />
                        <widget name="key_blue" position="420,0" size="140,40" backgroundColor="blue" font="Regular;21" />
                </screen>
                        <widget name="key_yellow" position="280,0" size="140,40" backgroundColor="yellow" font="Regular;21" />
                        <widget name="key_blue" position="420,0" size="140,40" backgroundColor="blue" font="Regular;21" />
                </screen>
+               <screen name="TimerLog" position="70,100" size="560,400" title="Timer log">
+                       <widget name="loglist" position="0,45" size="560,250" scrollbarMode="showOnDemand" />
+                       <widget name="logentry" position="0,300" size="560,140" font="Regular;20" />
+                       <widget name="key_red" position="0,0" size="140,40" backgroundColor="red" font="Regular;21" />
+                       <widget name="key_green" position="140,0" size="140,40" backgroundColor="green" font="Regular;21" />
+                       <widget name="key_yellow" position="280,0" size="140,40" backgroundColor="yellow" font="Regular;21" />
+                       <widget name="key_blue" position="420,0" size="140,40" backgroundColor="blue" font="Regular;21" />
+               </screen>
                <screen name="clockDisplay" position="300,100" size="300,300">
                        <widget name="okbutton" position="10,10" size="280,40" />
                        <widget name="title" position="10,120" size="280,50" />
                <screen name="clockDisplay" position="300,100" size="300,300">
                        <widget name="okbutton" position="10,10" size="280,40" />
                        <widget name="title" position="10,120" size="280,50" />
index b9efd8b..4185737 100644 (file)
@@ -15,12 +15,14 @@ class LanguageSelection(Screen):
                self["list"] = LanguageList(self.list)
                self.updateList()
                
                self["list"] = LanguageList(self.list)
                self.updateList()
                
-               self["actions"] = ActionMap(["WizardActions"], 
+               self["actions"] = ActionMap(["OkCancelActions", "DirectionActions"], 
                {
                        "ok": self.save,
                {
                        "ok": self.save,
-                       "back": self.close,
+                       "cancel": self.close,
                        "up": self.up,
                        "up": self.up,
-                       "down": self.down
+                       "down": self.down,
+                       "left": self.left,
+                       "right": self.right
                }, -1)
                
        def save(self):
                }, -1)
                
        def save(self):
@@ -52,3 +54,13 @@ class LanguageSelection(Screen):
                self["list"].instance.moveSelection(self["list"].instance.moveDown)
                self.run()
                self.updateList()
                self["list"].instance.moveSelection(self["list"].instance.moveDown)
                self.run()
                self.updateList()
+
+       def left(self):
+               self["list"].instance.moveSelection(self["list"].instance.pageUp)
+               self.run()
+               self.updateList()
+               
+       def right(self):
+               self["list"].instance.moveSelection(self["list"].instance.pageDown)
+               self.run()
+               self.updateList()
\ No newline at end of file
index c0896f4..d46e375 100644 (file)
@@ -4,7 +4,7 @@ from Components.ActionMap import ActionMap
 from Components.TimeInput import TimeInput
 from Components.Label import Label
 from Components.Button import Button
 from Components.TimeInput import TimeInput
 from Components.Label import Label
 from Components.Button import Button
-from TimerEntry import TimerEntry
+from TimerEntry import TimerEntry, TimerLog
 from RecordTimer import RecordTimerEntry, parseEvent
 from time import *
 from ServiceReference import ServiceReference
 from RecordTimer import RecordTimerEntry, parseEvent
 from time import *
 from ServiceReference import ServiceReference
@@ -25,12 +25,13 @@ class TimerEditList(Screen):
                self["key_yellow"] = Button("")
                self["key_blue"] = Button("")
 
                self["key_yellow"] = Button("")
                self["key_blue"] = Button("")
 
-               self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions"], 
+               self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "TimerEditActions"], 
                        {
                                "ok": self.openEdit,
                                "cancel": self.leave,
                                "red": self.removeTimer,
                        {
                                "ok": self.openEdit,
                                "cancel": self.leave,
                                "red": self.removeTimer,
-                               "green": self.addCurrentTimer
+                               "green": self.addCurrentTimer,
+                               "log": self.showLog
                        })
                self.session.nav.RecordTimer.on_state_change.append(self.onStateChange)
 
                        })
                self.session.nav.RecordTimer.on_state_change.append(self.onStateChange)
 
@@ -43,6 +44,9 @@ class TimerEditList(Screen):
                for timer in self.session.nav.RecordTimer.processed_timers:
                        self.list.append(TimerEntryComponent(timer, processed=True))
 
                for timer in self.session.nav.RecordTimer.processed_timers:
                        self.list.append(TimerEntryComponent(timer, processed=True))
 
+       def showLog(self):
+               self.session.openWithCallback(self.finishedEdit, TimerLog, self["timerlist"].getCurrent()[0])
+
        def openEdit(self):
                self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timerlist"].getCurrent()[0])
                #self.session.open(TimerEdit, self["timerlist"].getCurrent()[0])
        def openEdit(self):
                self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timerlist"].getCurrent()[0])
                #self.session.open(TimerEdit, self["timerlist"].getCurrent()[0])
index df91201..752ace4 100644 (file)
@@ -4,10 +4,13 @@ from ServiceReference import ServiceReference
 from Components.config import *
 from Components.ActionMap import NumberActionMap
 from Components.ConfigList import ConfigList
 from Components.config import *
 from Components.ActionMap import NumberActionMap
 from Components.ConfigList import ConfigList
+from Components.MenuList import MenuList
+from Components.Button import Button
 from Components.NimManager import nimmanager
 from Components.Label import Label
 from Components.Pixmap import Pixmap
 from Screens.SubserviceSelection import SubserviceSelection
 from Components.NimManager import nimmanager
 from Components.Label import Label
 from Components.Pixmap import Pixmap
 from Screens.SubserviceSelection import SubserviceSelection
+from Screens.MessageBox import MessageBox
 from enigma import eEPGCache
 import time
 import datetime
 from enigma import eEPGCache
 import time
 import datetime
@@ -15,7 +18,7 @@ import datetime
 class TimerEntry(Screen):
        def __init__(self, session, timer):
                Screen.__init__(self, session)
 class TimerEntry(Screen):
        def __init__(self, session, timer):
                Screen.__init__(self, session)
-               self.timer = timer;
+               self.timer = timer
                
                self["oktext"] = Label(_("OK"))
                self["canceltext"] = Label(_("Cancel"))
                
                self["oktext"] = Label(_("OK"))
                self["canceltext"] = Label(_("Cancel"))
@@ -279,3 +282,79 @@ class TimerEntry(Screen):
 
        def keyCancel(self):
                self.close((False,))
 
        def keyCancel(self):
                self.close((False,))
+
+class TimerLog(Screen):
+       def __init__(self, session, timer):
+               Screen.__init__(self, session)
+               self.timer = timer;
+               self.log_entries = self.timer.log_entries[:]
+               
+               self.fillLogList()
+               
+               self["loglist"] = MenuList(self.list)
+               self["logentry"] = Label()
+               
+               self["key_red"] = Button(_("Delete entry"))
+               self["key_green"] = Button()
+               self["key_yellow"] = Button("")
+               self["key_blue"] = Button(_("Clear log"))
+               
+               self.onShown.append(self.updateText)
+
+               self["actions"] = NumberActionMap(["OkCancelActions", "DirectionActions", "ColorActions"],
+               {
+                       "ok": self.keyClose,
+                       "cancel": self.keyClose,
+                       "up": self.up,
+                       "down": self.down,
+                       "left": self.left,
+                       "right": self.right,
+                       "red": self.deleteEntry,
+                       "blue": self.clearLog
+               }, -1)
+
+       def deleteEntry(self):
+               self.log_entries.remove(self["loglist"].getCurrent()[1])
+               self.fillLogList()
+               self["loglist"].l.setList(self.list)
+               self.updateText()
+
+       def fillLogList(self):
+               self.list = [ ]
+               for x in self.log_entries:
+                       self.list.append((str(strftime("%Y-%m-%d %H-%M", localtime(x[0])) + " - " + x[2]), x))
+       
+       def clearLog(self):             
+               self.log_entries = []
+               self.fillLogList()
+               self["loglist"].l.setList(self.list)
+               self.updateText()
+               
+       def keyClose(self):
+               if self.timer.log_entries != self.log_entries:
+                       self.timer.log_entries = self.log_entries
+                       self.close((True, self.timer))
+               else:
+                       self.close((False,))
+               
+       def up(self):
+               self["loglist"].instance.moveSelection(self["loglist"].instance.moveUp)
+               self.updateText()
+               
+       def down(self):
+               self["loglist"].instance.moveSelection(self["loglist"].instance.moveDown)
+               self.updateText()
+
+       def left(self):
+               self["loglist"].instance.moveSelection(self["loglist"].instance.pageUp)
+               self.updateText()
+               
+       def right(self):
+               self["loglist"].instance.moveSelection(self["loglist"].instance.pageDown)
+               self.updateText()
+
+       def updateText(self):
+               if len(self.list) > 0:
+                       self["logentry"].setText(str(self["loglist"].getCurrent()[1][2]))
+               else:
+                       self["logentry"].setText("")