From: Andreas Monzner Date: Mon, 20 Oct 2008 20:57:34 +0000 (+0000) Subject: gui timeroverlap fixes, X-Git-Tag: 2.6.0~734 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/176633d2d609789050efb1d9567cccf038054c2b gui timeroverlap fixes, fix ordering of eventlist (end before start when time is equal) --- diff --git a/data/skin_default.xml b/data/skin_default.xml index b6339415..8715c192 100644 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -994,7 +994,7 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y())) - + diff --git a/lib/python/Components/TimerSanityCheck.py b/lib/python/Components/TimerSanityCheck.py index a6fba85c..6e94df29 100644 --- a/lib/python/Components/TimerSanityCheck.py +++ b/lib/python/Components/TimerSanityCheck.py @@ -99,7 +99,7 @@ class TimerSanityCheck: ################################################################################ # journalize timer repeations - if len(self.nrep_eventlist): + if self.nrep_eventlist: interval_begin = min(self.nrep_eventlist)[0] interval_end = max(self.nrep_eventlist)[0] offset_0 = interval_begin - (interval_begin % 604800) @@ -140,9 +140,13 @@ class TimerSanityCheck: new_event_end = new_event_begin + (event_end - event_begin) self.nrep_eventlist.extend([(new_event_begin, event[1], self.bflag),(new_event_end, event[1], self.eflag)]) + def sort_func(x, y): + if x[0] == y[0]: + return cmp(y[2], x[2]) + return cmp(x[0], y[0]) ################################################################################ # order list chronological - self.nrep_eventlist.sort() + self.nrep_eventlist.sort(sort_func) ################################################################################## # detect overlapping timers and overlapping times diff --git a/lib/python/Screens/TimerEdit.py b/lib/python/Screens/TimerEdit.py index 996d7304..81836fd0 100644 --- a/lib/python/Screens/TimerEdit.py +++ b/lib/python/Screens/TimerEdit.py @@ -107,23 +107,29 @@ class TimerEditList(Screen): cur = self["timerlist"].getCurrent() if cur: if self["key_red"].getText()!=(_("Delete")): + self["actions"].actions.update({"red":self.removeTimerQuestion}) self["key_red"].setText(_("Delete")) self["key_red"].instance.invalidate() if cur.disabled and (self["key_yellow"].getText()!=(_("Enable"))): + self["actions"].actions.update({"yellow":self.toggleDisabledState}) self["key_yellow"].setText(_("Enable")) self["key_yellow"].instance.invalidate() elif cur.isRunning() and (self["key_yellow"].getText()!=(_(" "))): + del self["actions"].actions["yellow"] self["key_yellow"].setText(_(" ")) self["key_yellow"].instance.invalidate() elif (not cur.isRunning()) and (not cur.disabled) and (self["key_yellow"].getText()!=(_("Disable"))): + self["actions"].actions.update({"yellow":self.toggleDisabledState}) self["key_yellow"].setText(_("Disable")) self["key_yellow"].instance.invalidate() else: if self["key_red"].getText()!=(_(" ")): + del self["actions"].actions["red"] self["key_red"].setText(_(" ")) self["key_red"].instance.invalidate() if self["key_yellow"].getText()!=(_(" ")): + del self["actions"].actions["yellow"] self["key_yellow"].setText(_(" ")) self["key_yellow"].instance.invalidate() @@ -135,9 +141,11 @@ class TimerEditList(Screen): showCleanup = False if showCleanup and (self["key_blue"].getText()!=(_("Cleanup"))): + self["actions"].actions.update({"blue":self.cleanupQuestion}) self["key_blue"].setText(_("Cleanup")) self["key_blue"].instance.invalidate() elif (not showCleanup) and (self["key_blue"].getText()!=(_(" "))): + del self["actions"].actions["blue"] self["key_blue"].setText(_(" ")) self["key_blue"].instance.invalidate() @@ -304,8 +312,7 @@ class TimerSanityConflict(Screen): self["list"] = MenuList(self.list) self["timer2"] = TimerList(self.list2) - - + self["key_red"] = Button("Edit") self["key_green"] = Button("") self["key_yellow"] = Button("Edit") @@ -371,28 +378,44 @@ class TimerSanityConflict(Screen): def updateState(self): if self.timer[0] is not None: - if self.timer[0].disabled and (self["key_green"].getText()!=(_("Enable"))): + green_text = self["key_green"].getText() + print "green_text '%s'" %(green_text) + if self.timer[0].disabled and green_text != _("Enable"): + self["actions"].actions.update({"green":self.toggleTimer1}) self["key_green"].setText(_("Enable")) self["key_green"].instance.invalidate() - elif self.timer[0].isRunning() and (self["key_green"].getText()!= (_(" "))): - self["key_green"].setText(_(" ")) + elif self.timer[0].isRunning() and green_text != "": + del self["actions"].actions["green"] + self["key_green"].setText("") self["key_green"].instance.invalidate() - elif (not self.timer[0].disabled)and(self["key_green"].getText()!= (_("Disable"))): + elif not self.timer[0].disabled and green_text != _("Disable"): + self["actions"].actions.update({"green":self.toggleTimer1}) self["key_green"].setText(_("Disable")) self["key_green"].instance.invalidate() - if (len(self.timer) >1 ): + if len(self.timer) > 1: x = self["list"].getSelectedIndex() + print "x: ",x + print "timer[x]: ", self.timer[x] if self.timer[x] is not None: - if self.timer[x].disabled and (self["key_blue"].getText()!=(_("Enable"))): + blue_text = self["key_blue"].getText() + print "blue_text '%s'" %(blue_text) + if self.timer[x].disabled and blue_text != _("Enable"): + self["actions"].actions.update({"blue":self.toggleTimer2}) self["key_blue"].setText(_("Enable")) self["key_blue"].instance.invalidate() - elif self.timer[x].isRunning() and (self["key_blue"].getText()!=(_(" "))): - self["key_blue"].setText(_(" ")) + elif self.timer[x].isRunning() and blue_text != "": + del self["actions"].actions["blue"] + self["key_blue"].setText("") self["key_blue"].instance.invalidate() - elif (not self.timer[x].disabled)and(self["key_blue"].getText()!=(_("Disable"))): + elif not self.timer[x].disabled and blue_text != _("Disable"): + self["actions"].actions.update({"blue":self.toggleTimer2}) self["key_blue"].setText(_("Disable")) self["key_blue"].instance.invalidate() else: #FIXME.... this doesnt hide the buttons self.... just the text - self["key_blue"].hide - self["key_yellow"].hide + del self["actions"].actions["yellow"] + self["key_yellow"].setText("") + self["key_yellow"].instance.invalidate() + del self["actions"].actions["blue"] + self["key_blue"].setText("") + self["key_blue"].instance.invalidate()