From 33a8f42447b5f3655b47f15f7c2a4cf45af5c4bb Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 18 Mar 2011 01:03:09 +0100 Subject: [PATCH] add possibility to choose the finished timer timerlist position in usage config refs bug #713 --- data/setup.xml | 1 + lib/python/Components/UsageConfig.py | 2 ++ lib/python/Screens/TimerEdit.py | 12 +++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/data/setup.xml b/data/setup.xml index c5eb07f..5f7cbf6 100755 --- a/data/setup.xml +++ b/data/setup.xml @@ -32,6 +32,7 @@ config.usage.e1like_radio_mode config.usage.on_long_powerpress config.usage.on_short_powerpress + config.usage.timerlist_finished_timer_position config.usage.infobar_timeout config.usage.output_12V config.usage.show_event_progress_in_servicelist diff --git a/lib/python/Components/UsageConfig.py b/lib/python/Components/UsageConfig.py index a265a16..acbc342 100644 --- a/lib/python/Components/UsageConfig.py +++ b/lib/python/Components/UsageConfig.py @@ -113,6 +113,8 @@ def InitUsageConfig(): ("step", _("Singlestep (GOP)")), ("last", _("Last speed")) ]) + config.usage.timerlist_finished_timer_position = ConfigSelection(default = "beginning", choices = [("beginning", _("at beginning")), ("end", _("at end"))]) + def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] diff --git a/lib/python/Screens/TimerEdit.py b/lib/python/Screens/TimerEdit.py index bf60496..6e8859e 100644 --- a/lib/python/Screens/TimerEdit.py +++ b/lib/python/Screens/TimerEdit.py @@ -13,6 +13,7 @@ from ServiceReference import ServiceReference from TimerEntry import TimerEntry, TimerLog from Tools.BoundFunction import boundFunction from time import time +from timer import TimerEntry class TimerEditList(Screen): EMPTY = 0 @@ -172,11 +173,20 @@ class TimerEditList(Screen): self.key_blue_choice = self.EMPTY def fillTimerList(self): + #helper function to move finished timers to end of list + def eol_compare(x, y): + if x[0].state != y[0].state and x[0].state == TimerEntry.StateEnded or y[0].state == TimerEntry.StateEnded: + return cmp(x[0].state, y[0].state) + return cmp(x[0].begin, x[1].begin) + list = self.list del list[:] list.extend([(timer, False) for timer in self.session.nav.RecordTimer.timer_list]) list.extend([(timer, True) for timer in self.session.nav.RecordTimer.processed_timers]) - list.sort(key = lambda x: x[0].begin) + if config.usage.timerlist_finished_timer_position.index: #end of list + list.sort(cmp = eol_compare) + else: + list.sort(key = lambda x: x[0].begin) def showLog(self): cur=self["timerlist"].getCurrent() -- 2.7.4