[pitivi: 1/3] Fix moving multiple objects when the focus is not the earliest object.
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Subject: [pitivi: 1/3] Fix moving multiple objects when the focus is not the earliest object.
- Date: Mon, 13 Jul 2009 06:24:38 +0000 (UTC)
commit 282989bfa26f2f2b00e11f8d3f082307a94fb904
Author: Alessandro Decina <alessandro d gmail com>
Date: Fri Jul 10 17:01:05 2009 +0200
Fix moving multiple objects when the focus is not the earliest object.
pitivi/timeline/timeline.py | 10 +++++-----
tests/test_timeline.py | 15 +++++++++++++++
2 files changed, 20 insertions(+), 5 deletions(-)
---
diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py
index 20cfd4a..a90b826 100644
--- a/pitivi/timeline/timeline.py
+++ b/pitivi/timeline/timeline.py
@@ -1044,7 +1044,7 @@ class MoveContext(EditingContext):
self._getTrackObjectValues(track_object)
# calculate offsets of clips relative to earliest time, min priority
- self.offsets = self._getOffsets(self.earliest, self.min_priority,
+ self.offsets = self._getOffsets(self.focus.start, self.focus.priority,
timeline_objects)
self.focal_offset = (focus.start - self.earliest,
@@ -1059,8 +1059,8 @@ class MoveContext(EditingContext):
self._restoreTrackObjectValues(self.default_originals)
def _defaultTo(self, position, priority):
- position = max(0, position - self.focal_offset[0])
- priority = max(0, priority - self.focal_offset[1])
+ position = max(position, self.focal_offset[0])
+ priority = max(priority, self.focal_offset[1])
for obj, (s_offset, p_offset) in self.offsets.iteritems():
obj.setStart(position + s_offset, snap=self._snap)
obj.priority = priority + p_offset
@@ -1076,8 +1076,8 @@ class MoveContext(EditingContext):
@type priority: C{long}
"""
- position = max(0, position - self.focal_offset[0])
- priority = max(0, priority - self.focal_offset[1])
+ position = max(position, self.focal_offset[0])
+ priority = max(priority, self.focal_offset[1])
self.focus.setStart(position, snap = self._snap)
self.focus.priority = priority
diff --git a/tests/test_timeline.py b/tests/test_timeline.py
index e35ea27..c33cbc1 100644
--- a/tests/test_timeline.py
+++ b/tests/test_timeline.py
@@ -720,6 +720,21 @@ class TestContexts(TestCase):
self.failUnlessEqual(self.track_object2.start, 19 * gst.SECOND)
self.failUnlessEqual(self.track_object3.start, 29 * gst.SECOND)
+ def testMoveContextFocusNotEarliest(self):
+ self.focus.start = 10 * gst.SECOND
+ self.focus.duration = 5 * gst.SECOND
+ self.track_object2.start = 1 * gst.SECOND
+ self.track_object2.duration = 9 * gst.SECOND
+ self.track_object3.start = 11 * gst.SECOND
+ self.track_object3.duration = 10 * gst.SECOND
+ context = MoveContext(self.timeline, self.focus, self.other)
+ context.editTo(20 * gst.SECOND, 0)
+ context.finish()
+
+ self.failUnlessEqual(self.focus.start, 20 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 11 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 21 * gst.SECOND)
+
def testTrimStartContext(self):
self.focus.start = 1 * gst.SECOND
self.focus.in_point = 3 * gst.SECOND
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]