Skip to content
  • Dmitry Kazakov's avatar
    Implement a feedback for barrier blocking when doing some actions · a49ec4b0
    Dmitry Kazakov authored
    Summary:
    Some actions should not be started before all the previous actions
    are finished. That is especially true for the actions that work
    with layers stack, like "Merge Down" and "Flatten".
    
    Now KisDelayedSaveDialog is used not only for saving, but also for
    waiting before doing usual actions. It also has a busy-loop timeout of
    1 second before showing up, for not distracting painters from their
    workflow when the action is postponed only a little bit.
    
    BUG:372724
    Fixes T4593
    
    Test Plan:
    Basically, the steps like in bug 372724.
    
    1) Select multiple layers
    2) Start a long stroke (1000px colorsmudge brush is a good example)
    3) Press Ctrl+E ***multiple*** times quickly
    4) After all the background work is finished, press Ctrl+Z
    
    There should be no crash, and the result should be somewhat expected.
    
    Repeat the same for:
    1) Merge down
    2) Flatten Image
    3) Flatten Layer
    4) Transform a layer using "Layers" menu(?)
    
    Reviewers: #krita, timotheegiet, scottpetrovic
    
    Maniphest Tasks: T4593
    
    Differential Revision: https://phabricator.kde.org/D3449
    a49ec4b0