[pitivi/ges] Catch signals in trimming handles and ask the viewer to preview



commit eae008544626935fa7dff9820bc537d4693652d3
Author: Jean-FranÃois Fortin Tam <nekohayo gmail com>
Date:   Tue Mar 6 11:17:22 2012 -0500

    Catch signals in trimming handles and ask the viewer to preview

 pitivi/timeline/track.py |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)
---
diff --git a/pitivi/timeline/track.py b/pitivi/timeline/track.py
index 01416ac..79a1b2c 100644
--- a/pitivi/timeline/track.py
+++ b/pitivi/timeline/track.py
@@ -249,7 +249,7 @@ class StartHandle(TrimHandle):
 
     """Subclass of TrimHandle wich sets the object's start time"""
 
-    class Controller(TimelineController):
+    class Controller(TimelineController, Signallable):
 
         _cursor = LEFT_SIDE
 
@@ -260,10 +260,19 @@ class StartHandle(TrimHandle):
                 elem = self._view.element.get_timeline_object()
             else:
                 elem = self._view.element
-            self._context = TrimStartContext(self._view.timeline,
-                elem, set([]))
+            self._context = TrimStartContext(self._view.timeline, elem, set([]))
+            self._context.connect("clip-trim", self.clipTrimCb)
+            self._context.connect("clip-trim-finished", self.clipTrimFinishedCb)
             self._view.app.action_log.begin("trim object")
 
+        def clipTrimCb(self, unused_TrimStartContext, clip_uri, position):
+            # While a clip is being trimmed, ask the viewer to preview it
+            self._view.app.gui.viewer.clipTrimPreview(clip_uri, position)
+
+        def clipTrimFinishedCb(self, unused_TrimStartContext):
+            # When a clip has finished trimming, tell the viewer to reset itself
+            self._view.app.gui.viewer.clipTrimPreviewFinished()
+
 
 class EndHandle(TrimHandle):
 
@@ -280,10 +289,19 @@ class EndHandle(TrimHandle):
                 elem = self._view.element.get_timeline_object()
             else:
                 elem = self._view.element
-            self._context = TrimEndContext(self._view.timeline,
-                elem, set([]))
+            self._context = TrimEndContext(self._view.timeline, elem, set([]))
+            self._context.connect("clip-trim", self.clipTrimCb)
+            self._context.connect("clip-trim-finished", self.clipTrimFinishedCb)
             self._view.app.action_log.begin("trim object")
 
+        def clipTrimCb(self, unused_TrimStartContext, clip_uri, position):
+            # While a clip is being trimmed, ask the viewer to preview it
+            self._view.app.gui.viewer.clipTrimPreview(clip_uri, position)
+
+        def clipTrimFinishedCb(self, unused_TrimStartContext):
+            # When a clip has finished trimming, tell the viewer to reset itself
+            self._view.app.gui.viewer.clipTrimPreviewFinished()
+
 
 class TrackObject(View, goocanvas.Group, Zoomable):
 



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