Bug 312750

Summary: Undo of the mirror of a layer with mask and a clone produces wrong result
Product: [Applications] krita Reporter: Dmitry Kazakov <dimula73>
Component: Tools/TransformAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Dmitry Kazakov 2013-01-06 14:35:16 UTC
1) Create a Layer with Transparency Mask
2) Create a Clone Layer for it, move it a bit to see
3) Mirror the source layer
4) Undo

The old (mirrored) part of the layer hidden by the mask will be shown in the clone layer.
Comment 1 Dmitry Kazakov 2013-01-08 15:25:36 UTC
Git commit 98f3d8f453faeb49f0f2cc99c18cb393a7542835 by Dmitry Kazakov.
Committed on 08/01/2013 at 16:18.
Pushed by dkazakov into branch 'master'.

Fixed several bugs of transforming Shape/Paint layers

This patch fixes several problems:
1) Fixes the updates of the clone layer, when changing
   its source's mask
2) Fixes updates for undo of a transformation of a layer
   having both clone and a mask
3) Fixes Mirroring of a paint layer with odd size
4) Fixes Undo for transformations on Shape Layers
5) Adds a Unit Test for all this.
Related: bug 251168, bug 312734, bug 312742

M  +6    -0    krita/image/kis_base_rects_walker.h
M  +13   -0    krita/image/kis_image.cc
M  +29   -0    krita/image/kis_image.h
M  +3    -0    krita/image/kis_image_interfaces.h
M  +1    -0    krita/image/kis_mask.cc
M  +44   -2    krita/image/kis_processing_applicator.cpp
M  +2    -2    krita/image/kis_transform_worker.cc
M  +28   -0    krita/sdk/tests/qimage_based_test.h
A  +159  -0    krita/sdk/tests/ui_manager_test.h     [License: GPL (v2+)]
M  +23   -13   krita/ui/flake/kis_shape_layer_canvas.cpp
M  +6    -3    krita/ui/flake/kis_shape_layer_canvas.h
M  +6    -0    krita/ui/tests/CMakeLists.txt
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_tmask1_paintDevice.png
A  +202  -0    krita/ui/tests/kis_node_manager_test.cpp     [License: GPL (v2+)]
A  +40   -0    krita/ui/tests/kis_node_manager_test.h     [License: GPL (v2+)]
M  +3    -121  krita/ui/tests/kis_selection_manager_test.cpp

http://commits.kde.org/calligra/98f3d8f453faeb49f0f2cc99c18cb393a7542835
Comment 2 Inge Wallin 2013-01-14 03:30:52 UTC
Git commit eaa023c1e36b2daad2def75c44f1170684dadd24 by Inge Wallin, on behalf of Dmitry Kazakov.
Committed on 08/01/2013 at 16:18.
Pushed by ingwa into branch 'text-annotations-ingwa'.

Fixed several bugs of transforming Shape/Paint layers

This patch fixes several problems:
1) Fixes the updates of the clone layer, when changing
   its source's mask
2) Fixes updates for undo of a transformation of a layer
   having both clone and a mask
3) Fixes Mirroring of a paint layer with odd size
4) Fixes Undo for transformations on Shape Layers
5) Adds a Unit Test for all this.
Related: bug 251168, bug 312734, bug 312742

M  +6    -0    krita/image/kis_base_rects_walker.h
M  +13   -0    krita/image/kis_image.cc
M  +29   -0    krita/image/kis_image.h
M  +3    -0    krita/image/kis_image_interfaces.h
M  +1    -0    krita/image/kis_mask.cc
M  +44   -2    krita/image/kis_processing_applicator.cpp
M  +2    -2    krita/image/kis_transform_worker.cc
M  +28   -0    krita/sdk/tests/qimage_based_test.h
A  +159  -0    krita/sdk/tests/ui_manager_test.h     [License: GPL (v2+)]
M  +23   -13   krita/ui/flake/kis_shape_layer_canvas.cpp
M  +6    -3    krita/ui/flake/kis_shape_layer_canvas.h
M  +6    -0    krita/ui/tests/CMakeLists.txt
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/initial/initial_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorX/paint_mirrorX_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_mirrorY/paint_mirrorY_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_rotated_30/paint_rotated_30_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_scale_0.5/paint_scale_0.5_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/paint_shear_30/paint_shear_30_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_mirrorX/shape_mirrorX_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_rotated_30/shape_rotated_30_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_scale_0.5/shape_scale_0.5_tmask1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_blur1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_blur1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_blur1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_clone1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_clone1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_paint1_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_paint1_paintDevice.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_paint1_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_root_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_root_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_shape_original.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_shape_projection.png
A  +-    --    krita/ui/tests/data/node_manager_test/shape_shear_30/shape_shear_30_tmask1_paintDevice.png
A  +202  -0    krita/ui/tests/kis_node_manager_test.cpp     [License: GPL (v2+)]
A  +40   -0    krita/ui/tests/kis_node_manager_test.h     [License: GPL (v2+)]
M  +3    -121  krita/ui/tests/kis_selection_manager_test.cpp

http://commits.kde.org/calligra/eaa023c1e36b2daad2def75c44f1170684dadd24