[pitivi: 1/10] ui/timelinecanvas.py: make getItemsInArea a bit more efficient



commit 93fa35fa216bb12d05962364ac320ce233e321a2
Author: Alessandro Decina <alessandro d gmail com>
Date:   Thu Sep 23 12:16:26 2010 +0200

    ui/timelinecanvas.py: make getItemsInArea a bit more efficient

 pitivi/ui/timelinecanvas.py |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)
---
diff --git a/pitivi/ui/timelinecanvas.py b/pitivi/ui/timelinecanvas.py
index 451c782..b4ebede 100644
--- a/pitivi/ui/timelinecanvas.py
+++ b/pitivi/ui/timelinecanvas.py
@@ -219,13 +219,19 @@ class TimelineCanvas(goocanvas.Canvas, Zoomable, Loggable):
         '''
         items = self.get_items_in_area(goocanvas.Bounds(x1, y1, x2, y2), True, True,
             True)
-        if items:
-            track_objects = set([item.element for item in items
-                             if isinstance(item, TrackObject)])
-            tracks = set([item.track for item in items
-                         if isinstance(item, Track)])
-            return [tracks, track_objects]
-        return set()
+        if not items:
+            return [], []
+
+        tracks = set()
+        track_objects = set()
+
+        for item in items:
+            if isinstance(item, Track):
+                tracks.add(item.track)
+            elif isinstance(item, TrackObject):
+                track_objects.add(item.element)
+
+        return tracks, track_objects
 
     def _normalize(self, p1, p2):
         w, h = p2 - p1



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