Skip to content
  • Alexandru Băluț's avatar
    undo: Remove obsolete optimization · 1495203d
    Alexandru Băluț authored
    TimelineObserver._clipPropertyChangedCb, the final handler of the prop
    changed events ("monitored-property-changed"), which pushes the
    ClipPropertyChanged actions, was ignoring these events when the clips
    were being dragged around. To be able to record the final changes,
    ClipPropertyChangeTracker had to connect to the timeline's "commited"
    signal and report if changes have been detected.
    
    The goal was to have as few as possible actions in the UndoableActionLog
    because when undoing or redoing, all these actions were committing the
    timeline and this was very expensive. Now the individual actions are not
    committing the timeline anymore, so we can live with a high number of
    actions in the stack.
    
    As a result of the simplification, the TimelineObserver does not need to
    keep track of the prop values itself (by setting attributes on the
    ClipPropertyChangeTracker) and the "monitored-property-changed" signal
    can be removed as now PropertyChangeTracker can push the
    PropertyChangedAction instances itself.
    
    Finally, PropertyChangeTracker can now be used easily to monitor the
    props of other objects besides clips, stay tuned!
    
    Differential Revision: https://phabricator.freedesktop.org/D993
    1495203d