diff --git a/python/GafferUI/Timeline.py b/python/GafferUI/Timeline.py index f69448f6b6..a28d3a45f8 100644 --- a/python/GafferUI/Timeline.py +++ b/python/GafferUI/Timeline.py @@ -116,20 +116,18 @@ def __init__( self, scriptNode, **kw ) : playBackwards = QtWidgets.QShortcut( QtGui.QKeySequence( "Ctrl+Left" ), self._qtWidget() ) playBackwards.activated.connect( functools.partial( Gaffer.WeakMethod( self.__playPausePressed ), False ) ) - self.__playback = None - self._updateFromContext( set() ) + self.__playback = GafferUI.Playback.acquire( self.context() ) + self.__playback.setFrameRange( self.__sliderRangeStart.getValue(), self.__sliderRangeEnd.getValue() ) + self.__playback.stateChangedSignal().connect( + Gaffer.WeakMethod( self.__playbackStateChanged ), scoped = False + ) + self.__playback.frameRangeChangedSignal().connect( + Gaffer.WeakMethod( self.__playbackFrameRangeChanged ), scoped = False + ) - def _updateFromContext( self, modifiedItems ) : + self._updateFromContext( { "frame" } ) - if self.__playback is None or not self.__playback.context().isSame( self.context() ) : - self.__playback = GafferUI.Playback.acquire( self.context() ) - self.__playback.setFrameRange( self.__sliderRangeStart.getValue(), self.__sliderRangeEnd.getValue() ) - self.__playbackStateChangedConnection = self.__playback.stateChangedSignal().connect( - Gaffer.WeakMethod( self.__playbackStateChanged ), scoped = True - ) - self.__playbackFrameRangeChangedConnection = self.__playback.frameRangeChangedSignal().connect( - Gaffer.WeakMethod( self.__playbackFrameRangeChanged ), scoped = True - ) + def _updateFromContext( self, modifiedItems ) : if "frame" not in modifiedItems : return