예제 #1
0
 def __init__(self, ges_track_element, action_log):
     TimelineElementObserver.__init__(self, ges_track_element, action_log)
     if isinstance(ges_track_element, GES.BaseEffect):
         property_names = ("active", "priority",)
     else:
         property_names = ("active",)
     self.gobject_observer = GObjectObserver(ges_track_element, property_names, action_log)
예제 #2
0
    def _connectToClip(self, ges_clip):
        ges_clip.connect("child-added", self._clipTrackElementAddedCb)
        ges_clip.connect("child-removed", self._clipTrackElementRemovedCb)

        for track_element in ges_clip.get_children(recursive=True):
            self._connectToTrackElement(track_element)

        if isinstance(ges_clip, GES.TransitionClip):
            return

        props = ["start", "duration", "in-point", "priority"]
        clip_observer = GObjectObserver(ges_clip, props, self.action_log)
        self.clip_observers[ges_clip] = clip_observer
예제 #3
0
    def test_property_change(self):
        action_log = UndoableActionLog()
        action_log.begin("complex stuff")
        stack, = action_log.stacks

        clip = GES.TitleClip()
        unused_observer = GObjectObserver(clip, ["start"], action_log)

        self.assertEqual(len(stack.done_actions), 0)
        clip.props.start = 2
        self.assertEqual(len(stack.done_actions), 1)

        clip.props.start = 2
        self.assertEqual(len(stack.done_actions), 1)

        clip.props.start = 4
        self.assertEqual(len(stack.done_actions), 2)
        action = stack.done_actions[-1]
        self.assertEqual(action.old_value, 2)
        self.assertEqual(action.new_value, 4)
예제 #4
0
    def _connectToTrackElement(self, track_element):
        if isinstance(track_element, GES.VideoTransition):
            ges_clip = track_element.get_toplevel_parent()
            ges_layer = ges_clip.props.layer
            action = TransitionClipAddedAction(ges_layer, ges_clip,
                                               track_element)
            self.action_log.push(action)

            observer = GObjectObserver(track_element, TRANSITION_PROPS,
                                       self.action_log)
            self.track_element_observers[track_element] = observer
            return

        for prop, binding in track_element.get_all_control_bindings().items():
            self._connectToControlSource(track_element, binding)
        track_element.connect("control-binding-added",
                              self._controlBindingAddedCb)
        if isinstance(track_element, GES.BaseEffect) or \
                isinstance(track_element, GES.VideoSource):
            observer = TrackElementObserver(track_element, self.action_log)
            self.track_element_observers[track_element] = observer
예제 #5
0
 def __init__(self, ges_track_element, action_log):
     TimelineElementObserver.__init__(self, ges_track_element, action_log)
     self.gobject_observer = GObjectObserver(ges_track_element,
                                             ("active", ), action_log)