[pitivi] undo:timeline: Disconnect from clips child-added/removed signals
- From: Thibault Saunier <tsaunier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] undo:timeline: Disconnect from clips child-added/removed signals
- Date: Sun, 16 Nov 2014 17:01:18 +0000 (UTC)
commit 8bb54250d55f4589e45ce47a5a922654940aac4e
Author: Thibault Saunier <tsaunier gnome org>
Date: Sun Nov 16 17:57:33 2014 +0100
undo:timeline: Disconnect from clips child-added/removed signals
Otherwize we can have several connection to that object which would
lead to ugly backtrace trying to disconnect from bindings
+ Make TimelineLogObserver a Loggable so we can start adding debug logs
as necessary
pitivi/undo/timeline.py | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/pitivi/undo/timeline.py b/pitivi/undo/timeline.py
index d785cc7..722affb 100644
--- a/pitivi/undo/timeline.py
+++ b/pitivi/undo/timeline.py
@@ -23,6 +23,7 @@ from gi.repository import Gst
from gi.repository import GES
from gi.repository import GObject
+from pitivi.utils.loggable import Loggable
from pitivi.undo.undo import PropertyChangeTracker, UndoableAction
from pitivi.effects import PROPS_TO_IGNORE
@@ -487,7 +488,7 @@ class ActivePropertyChanged(UndoableAction):
self._undone()
-class TimelineLogObserver(object):
+class TimelineLogObserver(Loggable):
timelinePropertyChangedAction = ClipPropertyChanged
activePropertyChangedAction = ActivePropertyChanged
@@ -497,6 +498,7 @@ class TimelineLogObserver(object):
self.control_source_keyframe_trackers = {}
self.children_props_tracker = TrackElementChildPropertyTracker(log)
self._pipeline = None
+ Loggable.__init__(self)
def setPipeline(self, pipeline):
self._pipeline = pipeline
@@ -557,6 +559,8 @@ class TimelineLogObserver(object):
if isinstance(clip, GES.TransitionClip):
return
+ clip.disconnect_by_func(self._clipTrackElementAddedCb)
+ clip.disconnect_by_func(self._clipTrackElementRemovedCb)
tracker = self.clip_property_trackers.pop(clip)
tracker.disconnectFromObject(clip)
tracker.disconnect_by_func(self._clipPropertyChangedCb)
@@ -646,6 +650,7 @@ class TimelineLogObserver(object):
self.log.push(action)
def _clipTrackElementRemovedCb(self, clip, track_element):
+ self.debug("%s REMOVED from (%s)" % (track_element, clip))
self._disconnectFromTrackElement(track_element)
if isinstance(track_element, GES.BaseEffect):
action = TrackElementRemoved(clip, track_element,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]