[pitivi: 1/20] timeline.py: buggy first stab at roll editing



commit c5b0e9d094c4e98c6d0419eac306a6027239009c
Author: Brandon Lewis <brandon_lewis berkeley edu>
Date:   Thu Jul 2 00:08:37 2009 -0700

    timeline.py: buggy first stab at roll editing

 pitivi/timeline/timeline.py |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py
index 421a020..2faca98 100644
--- a/pitivi/timeline/timeline.py
+++ b/pitivi/timeline/timeline.py
@@ -932,6 +932,7 @@ class EditingContext(object):
         self._snap = True
         self._mode = self.DEFAULT
         self._last_position = 0
+        self._last_priority = 0
 
         self.timeline.disableUpdates()
 
@@ -1089,11 +1090,36 @@ class MoveContext(EditingContext):
 
 class TrimStartContext(EditingContext):
 
+    def __init__(self, timeline, focus, other):
+        EditingContext.__init__(self, timeline, focus, other)
+        self.adjacent = timeline.edges.getObjsAdjacentToStart(focus)
+        self.adjacent_originals = self._saveValues(self.adjacent)
+
+    def _rollTo(self, position, priority):
+        for obj in self.adjacent:
+            duration = max(0, position - obj.start)
+            obj.setDuration(duration, snap=False)
+
+    def _finishRoll(self):
+        self._restoreValues(self.adjacent_originals)
+
     def _editFocus(self, position, priority):
         self.focus.trimStart(position, snap=self.snap)
 
 class TrimEndContext(EditingContext):
 
+    def __init__(self, timeline, focus, other):
+        EditingContext.__init__(self, timeline, focus, other)
+        self.adjacent = timeline.edges.getObjsAdjacentToEnd(focus)
+        self.adjacent_originals = self._saveValues(self.adjacent)
+
+    def _rollTo(self, position, priority):
+        for obj in self.adjacent:
+            obj.trimStart(position, snap=False)
+
+    def _finishRoll(self):
+        self._restoreValues(self.adjacent_originals)
+
     def _editFocus(self, position, priority):
         duration = max(0, position - self.focus.start)
         self.focus.setDuration(duration, snap=self.snap)



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