[pitivi] elements: Handle hidding keyframes



commit 8937436147d0e6dbfa4494c17a067797bddb2397
Author: Thibault Saunier <tsaunier gnome org>
Date:   Tue Jun 16 11:29:43 2015 +0200

    elements: Handle hidding keyframes

 pitivi/timeline/elements.py |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/pitivi/timeline/elements.py b/pitivi/timeline/elements.py
index 9442cb9..bed9222 100644
--- a/pitivi/timeline/elements.py
+++ b/pitivi/timeline/elements.py
@@ -322,12 +322,27 @@ class TimelineElement(Gtk.Layout, timelineUtils.Zoomable, Loggable):
         self.__controlledProperty = prop
         self.__createControlBinding(effect)
 
+    def hideKeyframes(self):
+        self.__removeKeyframes()
+        self.__controlledProperty = self._getDefaultMixingProperty()
+        if self.__controlledProperty:
+            self.__createControlBinding(self._bElement)
+
     def __curveEnterCb(self, unused_keyframe_curve):
         self.emit("curve-enter")
 
     def __curveLeaveCb(self, unused_keyframe_curve):
         self.emit("curve-leave")
 
+    def __removeKeyframes(self):
+        if self.__keyframeCurve:
+            self.__keyframeCurve.disconnect_by_func(
+                self.__keyframePlotChangedCb)
+            self.__keyframeCurve.disconnect_by_func(self.__curveEnterCb)
+            self.__keyframeCurve.disconnect_by_func(self.__curveLeaveCb)
+            self.remove(self.__keyframeCurve)
+        self.__keyframeCurve = None
+
     # Private methods
     def __createKeyframeCurve(self, binding):
         source = binding.props.control_source
@@ -343,13 +358,7 @@ class TimelineElement(Gtk.Layout, timelineUtils.Zoomable, Loggable):
                 self._bElement.props.duration + self._bElement.props.in_point,
                 val)
 
-        if self.__keyframeCurve:
-            self.__keyframeCurve.disconnect_by_func(
-                self.__keyframePlotChangedCb)
-            self.__keyframeCurve.disconnect_by_func(self.__curveEnterCb)
-            self.__keyframeCurve.disconnect_by_func(self.__curveLeaveCb)
-            self.remove(self.__keyframeCurve)
-
+        self.__removeKeyframes()
         self.__keyframeCurve = KeyframeCurve(self.timeline, binding)
         self.__keyframeCurve.connect("plot-changed",
                                      self.__keyframePlotChangedCb)
@@ -370,6 +379,8 @@ class TimelineElement(Gtk.Layout, timelineUtils.Zoomable, Loggable):
             if binding:
                 self.__createKeyframeCurve(binding)
 
+                return
+
             source = GstController.InterpolationControlSource()
             source.props.mode = GstController.InterpolationMode.LINEAR
             element.set_control_source(source,


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