- 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>
 
+       <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" />
                <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" />
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>
+               <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" />
index b9efd8b..4185737 100644 (file)
@@ -15,12 +15,14 @@ class LanguageSelection(Screen):
                self["list"] = LanguageList(self.list)
                self.updateList()
                
-               self["actions"] = ActionMap(["WizardActions"], 
+               self["actions"] = ActionMap(["OkCancelActions", "DirectionActions"], 
                {
                        "ok": self.save,
-                       "back": self.close,
+                       "cancel": self.close,
                        "up": self.up,
-                       "down": self.down
+                       "down": self.down,
+                       "left": self.left,
+                       "right": self.right
                }, -1)
                
        def save(self):
@@ -52,3 +54,13 @@ class LanguageSelection(Screen):
                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 TimerEntry import TimerEntry
+from TimerEntry import TimerEntry, TimerLog
 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["actions"] = ActionMap(["OkCancelActions", "ShortcutActions"], 
+               self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "TimerEditActions"], 
                        {
                                "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)
 
@@ -43,6 +44,9 @@ class TimerEditList(Screen):
                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])
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.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 Screens.MessageBox import MessageBox
 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)
-               self.timer = timer;
+               self.timer = timer
                
                self["oktext"] = Label(_("OK"))
                self["canceltext"] = Label(_("Cancel"))
@@ -279,3 +282,79 @@ class TimerEntry(Screen):
 
        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("")