- 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 a1206010e62d18bdea607ca1bde7ce6b428d1058..a737ab29f791d59d9314e3628c6ebf12c9298825 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 acb083eb3fe37095105c0d8d5ab7acf7b6d64915..ec26d55520d4c44fa42dd334e94848f0b8e63b52 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 b9efd8b437abc8d6c239104941b38be1a5760f80..41857375d9512233b4f7cf1f8fcd17e3e9ee3cb1 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 c0896f4107ff1953fddaba589e37dfed672dd0f7..d46e3751f3e550a000b7406c0a89d792eac2e51b 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 df912014150859d8d174b97de0f67dabd183134a..752ace42c1bca74fc05ac537874fc1c88eb9b126 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("")