[pitivi] elements: Displaying effects keyframe curves when required
- From: Thibault Saunier <tsaunier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] elements: Displaying effects keyframe curves when required
- Date: Fri, 18 Aug 2017 16:03:09 +0000 (UTC)
commit b30fc128c0712aa5dc4d98839e4460ab0234c042
Author: Thibault Saunier <tsaunier gnome org>
Date: Fri Aug 18 10:11:17 2017 -0300
elements: Displaying effects keyframe curves when required
This was a regression introduced in 536e99c73aa9cda5cbbc2e6eeabcdd9ebb6d8dfd
"elements: Lazy create the KeyFrame curves".
Fixes T7812
Reviewed-by: Stefan-Adrian Popa <stefanpopa2209 gmail com>
Differential Revision: https://phabricator.freedesktop.org/D1850
pitivi/timeline/elements.py | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/pitivi/timeline/elements.py b/pitivi/timeline/elements.py
index 5da5c92..be32471 100644
--- a/pitivi/timeline/elements.py
+++ b/pitivi/timeline/elements.py
@@ -452,7 +452,7 @@ class TimelineElement(Gtk.Layout, Zoomable, Loggable):
# We set up the default mixing property right here, if a binding was
# already set (when loading a project), it will be added later
# and override that one.
- self.showDefaultKeyframes()
+ self.showDefaultKeyframes(lazy_render=True)
def release(self):
if self.__previewer:
@@ -477,9 +477,12 @@ class TimelineElement(Gtk.Layout, Zoomable, Loggable):
def showKeyframes(self, ges_elem, prop):
self.__setKeyframes(ges_elem, prop)
+ self.__create_keyframe_curve(ges_elem)
- def showDefaultKeyframes(self):
+ def showDefaultKeyframes(self, lazy_render=False):
self.__setKeyframes(self._ges_elem, self._getDefaultMixingProperty())
+ if not lazy_render:
+ self.__create_keyframe_curve()
def __setKeyframes(self, ges_elem, prop):
self.__removeKeyframes()
@@ -520,10 +523,13 @@ class TimelineElement(Gtk.Layout, Zoomable, Loggable):
assert source.set(inpoint, val)
assert source.set(inpoint + self._ges_elem.props.duration, val)
- def __create_keyframe_curve(self):
+ def __create_keyframe_curve(self, ges_elem=None):
"""Creates required keyframe curve."""
self.__removeKeyframes()
- binding = self._ges_elem.get_control_binding(self.__controlledProperty.name)
+ if not ges_elem:
+ ges_elem = self._ges_elem
+
+ binding = ges_elem.get_control_binding(self.__controlledProperty.name)
self.keyframe_curve = KeyframeCurve(self.timeline, binding)
self.keyframe_curve.connect("enter", self.__curveEnterCb)
self.keyframe_curve.connect("leave", self.__curveLeaveCb)
@@ -578,7 +584,8 @@ class TimelineElement(Gtk.Layout, Zoomable, Loggable):
def __update_keyframe_curve_visibility(self):
"""Updates the keyframes widget visibility by adding or removing it."""
if self._ges_elem.selected and len(self.timeline.selection) == 1:
- self.add(self.keyframe_curve)
+ if not self.keyframe_curve.get_parent():
+ self.add(self.keyframe_curve)
else:
self.remove(self.keyframe_curve)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]