[pitivi: 4/9] timeline/track: allow copy()ing objects on which makeBin hasn't been called yet.
- From: Edward Hervey <edwardrv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi: 4/9] timeline/track: allow copy()ing objects on which makeBin hasn't been called yet.
- Date: Sun, 5 Sep 2010 09:07:47 +0000 (UTC)
commit cc30c6898977ea7eb6a362f72d515771645ad0e0
Author: Alessandro Decina <alessandro d gmail com>
Date: Tue Aug 31 17:23:17 2010 +0200
timeline/track: allow copy()ing objects on which makeBin hasn't been called yet.
pitivi/timeline/track.py | 9 +++++----
tests/test_track.py | 8 ++++++++
2 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/pitivi/timeline/track.py b/pitivi/timeline/track.py
index 7b99fd7..9ec185f 100644
--- a/pitivi/timeline/track.py
+++ b/pitivi/timeline/track.py
@@ -317,7 +317,7 @@ class TrackObject(Signallable, Loggable):
self.track = None
self.timeline_object = None
self.interpolators = {}
- self._rebuild_interpolators = True
+ self._rebuild_interpolators = False
self._public_priority = priority
self._position = 0
self._stagger = 0
@@ -359,12 +359,12 @@ class TrackObject(Signallable, Loggable):
return self.interpolators
def _maybeBuildInterpolators(self):
- if not list(self.gnl_object.elements()):
- raise TrackError("makeBin hasn't been called yet")
-
if not self._rebuild_interpolators:
return
+ if not list(self.gnl_object.elements()):
+ raise TrackError("makeBin hasn't been called yet")
+
self._rebuild_interpolators = False
factory_properties = self.factory.getInterpolatedProperties(self.stream)
@@ -609,6 +609,7 @@ class TrackObject(Signallable, Loggable):
bin = self.factory.makeBin(self.stream)
self.gnl_object.add(bin)
+ self._rebuild_interpolators = True
self._maybeBuildInterpolators()
def releaseBin(self):
diff --git a/tests/test_track.py b/tests/test_track.py
index 47d8f68..8a9601d 100644
--- a/tests/test_track.py
+++ b/tests/test_track.py
@@ -537,3 +537,11 @@ class TestTrack(TestCase):
# any priority
prev = track1.getNextTrackObject(obj3, priority=None)
self.failUnlessEqual(prev, obj4)
+
+ def testCopyMakeBinNotCalled(self):
+ factory = self.factory
+ stream = self.stream
+ obj1 = SourceTrackObject(factory, stream)
+ # this used to raise an exception
+ obj2 = obj1.copy()
+ self.failUnlessEqual(obj1.start, obj2.start)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]