gcompris r3752 - branches/gcomprixogoo/src/anim-activity



Author: bcoudoin
Date: Sun Mar  1 14:15:48 2009
New Revision: 3752
URL: http://svn.gnome.org/viewvc/gcompris?rev=3752&view=rev

Log:
Properly manage the delete item (now deletes the item up to the end)
and removes it from the list of items.


Modified:
   branches/gcomprixogoo/src/anim-activity/AnimItem.py
   branches/gcomprixogoo/src/anim-activity/anim.py

Modified: branches/gcomprixogoo/src/anim-activity/AnimItem.py
==============================================================================
--- branches/gcomprixogoo/src/anim-activity/AnimItem.py	(original)
+++ branches/gcomprixogoo/src/anim-activity/AnimItem.py	Sun Mar  1 14:15:48 2009
@@ -92,26 +92,19 @@
         self.set_visible(fromtime, sys.maxint)
 
     # Mark this object to be deleted at the given time
-    def delete_at_time_to_end(self, time):
-        index = self.delete_at_time(time)
-        del self.visible[index+1:]
-
-    # Mark this object to be deleted at the given time
-    # Return the index of the delete item in self.visible
     def delete_at_time(self, time):
         index = 0
         for index in range(0, len(self.visible)):
             # It's the set start
             if self.visible[index][0] == time:
-                self.visible[index] = \
-                    (self.visible[index][0] + 1,
-                     self.visible[index][1])
+                del self.visible[index:]
                 break
             # It's the set end
             elif self.visible[index][1] == time:
                 self.visible[index] = \
                     (self.visible[index][0],
                      self.visible[index][1] - 1)
+                del self.visible[index+1:]
                 break
             # It's inside the set
             elif (self.visible[index][0] <= time and
@@ -119,10 +112,9 @@
                 oldend = self.visible[index][1]
                 self.visible[index] = \
                     (self.visible[index][0], time - 1)
-                self.visible.append((time + 1, oldend))
+                del self.visible[index+1:]
                 self.visible.sort()
                 break
-        return index
 
     # Given a timeline index, return True if it is visible
     def is_visible(self, index):
@@ -220,7 +212,9 @@
     def delete(self):
         gcompris.sound.play_ogg("sounds/eraser1.wav",
                                 "sounds/eraser2.wav")
-        self.delete_at_time_to_end(self.anim.timeline.get_time())
+        self.delete_at_time(self.anim.timeline.get_time())
+        if not self.visible:
+            self.anim.deleteItem(self)
         self.show(False)
 
     def raise_(self):

Modified: branches/gcomprixogoo/src/anim-activity/anim.py
==============================================================================
--- branches/gcomprixogoo/src/anim-activity/anim.py	(original)
+++ branches/gcomprixogoo/src/anim-activity/anim.py	Sun Mar  1 14:15:48 2009
@@ -563,6 +563,12 @@
       self.selected.deselect()
       self.selected = None
 
+  # Delete the item from the unique list
+  # This is called by animitem itself when the object
+  # is no more displayed on any time lines.
+  def deleteItem(self, item):
+    self.animlist.remove(item)
+
   # Main callback on item comes here first
   # And are then dispatched to the proper functions
   def item_event(self, item, target, event):
@@ -672,7 +678,7 @@
 
   def refresh(self, time):
     # We keep all object in a unique list
-    # Here we order them to refresh them for the given time
+    # Here we order them to refresh them at the given time
     for item in self.animlist:
       item.display_at_time(time)
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]