gui timeroverlap fixes,
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 20 Oct 2008 20:57:34 +0000 (20:57 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 20 Oct 2008 20:57:34 +0000 (20:57 +0000)
fix ordering of eventlist (end before start when time is equal)

data/skin_default.xml
lib/python/Components/TimerSanityCheck.py
lib/python/Screens/TimerEdit.py

index b63394159d52323b72395adad4b95dcadb0e4f32..8715c192330b865e3d22512abb41309181d6e646 100644 (file)
@@ -994,7 +994,7 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
                <widget name="logentry" position="0,300" size="560,130" font="Regular;20" />
        </screen>
        <!-- Timer sanity conflict -->
-       <screen name="TimerSanityConflict" position="70,100" size="560,430" title="Timer sanity error">
+       <screen name="TimerSanityConflict" position="90,95" size="560,430" title="Timer sanity error">
                <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" zPosition="0" size="140,40" transparent="1" alphatest="on" />
                <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" zPosition="0" size="140,40" transparent="1" alphatest="on" />
                <ePixmap pixmap="skin_default/buttons/yellow.png" position="0,120" zPosition="0" size="140,40" transparent="1" alphatest="on" />
index a6fba85c0f8050a80ca271e4980fbbd9c16a6211..6e94df2992e16e980f5737040c235cc0a29d68fc 100644 (file)
@@ -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
index 996d7304a6f9fe93d3ffb10de428af587ab77152..81836fd0e2c121e63d82f77ec2d4b2d287224878 100644 (file)
@@ -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()