From: ghost Date: Mon, 21 Mar 2011 10:55:36 +0000 (+0100) Subject: Merge branch 'bug_713_fix_timerlist_sort' X-Git-Tag: 3.1.0~1 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/61111fab026bb61d70ffcf74c36e51da56aa7ad2?hp=35b79c13bc95e26dfae5cb1cda2eef2f265ad9db Merge branch 'bug_713_fix_timerlist_sort' --- diff --git a/data/setup.xml b/data/setup.xml index c5eb07f5..5f7cbf60 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 a265a169..acbc3425 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 572f14b5..8f742b8c 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 as RealTimerEntry class TimerEditList(Screen): EMPTY = 0 @@ -174,11 +175,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 == RealTimerEntry.StateEnded or y[0].state == RealTimerEntry.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()