[pitivi: 4/8] timeline.timeline: selection tracks individual track-objects internally



commit 5c5704d51b14a53b90ee2e30156e88cad23b67c3
Author: Brandon Lewis <brandon_lewis berkeley edu>
Date:   Tue Apr 21 19:32:49 2009 -0700

    timeline.timeline: selection tracks individual track-objects internally
---
 pitivi/timeline/timeline.py |   15 ++++++++-------
 pitivi/timeline/track.py    |   11 ++++++-----
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py
index b2537b2..f05ec99 100644
--- a/pitivi/timeline/timeline.py
+++ b/pitivi/timeline/timeline.py
@@ -183,14 +183,10 @@ class TimelineObject(object, Signallable, Loggable):
     # True when the timeline object is part of the track object's current
     # selection.
 
-    __selected = False
-
     def _getSelected(self):
-        return self.__selected
+        return boolean([obj for obj in self.track_objects if obj.selected])
 
     def setSelected(self, state):
-        self.__selected = state
-
         for obj in self.track_objects:
             obj.setObjectSelected(state)
 
@@ -292,7 +288,6 @@ class Selection(object, Signallable):
         self.setTo(set([obj]), mode)
 
     def setTo(self, selection, mode):
-        selection = set([obj.timeline_object for obj in selection])
         old_selection = self.selected
         if mode == SELECT:
             self.selected = selection
@@ -308,11 +303,17 @@ class Selection(object, Signallable):
 
         self.emit("selection-changed")
 
+    def getSelectedTimelineObjs(self):
+        return set([obj.timeline_object for obj in self.selected])
+
+    def getSelectedTrackObjs(self):
+        return self.selected
+
     def __len__(self):
         return len(self.selected)
 
     def __iter__(self):
-        return iter(self.selected)
+        return iter(self.getSelectedTimelineObjs())
 
 class LinkEntry(object):
     def __init__(self, start, duration):
diff --git a/pitivi/timeline/track.py b/pitivi/timeline/track.py
index 869aa7a..a7de3a0 100644
--- a/pitivi/timeline/track.py
+++ b/pitivi/timeline/track.py
@@ -219,18 +219,18 @@ class TrackObject(object, Signallable):
         return other
 
     # True when the track object is part of the timeline's current selection
-    __selected = False
+    _selected = False
 
     def _getSelected(self):
-        return self.__selected
+        return self._selected
 
-    def setObjectSelected(self, state):
+    def setSelected(self, state):
         """Sets the object's selected property to the specified value. This
         should only be called by the track object's parent timeline object."""
-        self.__selected = state
+        self._selected = state
         self.emit("selected-changed", state)
 
-    selected = property(_getSelected)
+    selected = property(_getSelected, setSelected)
 
     def makeBin(self):
         if self.track is None:
@@ -247,6 +247,7 @@ class TrackObject(object, Signallable):
             bin.set_state(gst.STATE_NULL)
             self.factory.releaseBin(bin)
 
+
     def _notifyStartCb(self, obj, pspec):
         self.emit('start-changed', obj.props.start)
 



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