[pitivi] timeline: Do not forget to disconnect signals



commit b34b008d5cae5ebde4923ca947bf7cd7b3a0a0bb
Author: Thibault Saunier <thibault saunier collabora com>
Date:   Fri May 18 13:10:29 2012 -0400

    timeline: Do not forget to disconnect signals

 pitivi/timeline/timeline.py |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py
index f1a6d1c..1361c05 100644
--- a/pitivi/timeline/timeline.py
+++ b/pitivi/timeline/timeline.py
@@ -410,14 +410,22 @@ class TimelineCanvas(goocanvas.Canvas, Zoomable, Loggable):
         while self._tracks:
             self._trackRemovedCb(None, 0)
 
+        if self._timeline is not None:
+            self._timeline.disconnect_by_func(self._trackAddedCb)
+            self._timeline.disconnect_by_func(self._trackRemovedCb)
+            self._timeline.disconnect_by_func(self._snapCb)
+            self._timeline.disconnect_by_func(self._snapEndedCb)
+
         self._timeline = timeline
-        if self._timeline:
+        if self._timeline is not None:
             for track in self._timeline.get_tracks():
                 self._trackAddedCb(None, track)
+
             self._timeline.connect("track-added", self._trackAddedCb)
             self._timeline.connect("track-removed", self._trackRemovedCb)
             self._timeline.connect("snapping-started", self._snapCb)
             self._timeline.connect("snapping-ended", self._snapEndedCb)
+
         self.zoomChanged()
 
     def getTimeline(self):



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