Bug 365595 - Let Mirror/Rotate Layer work with a selection when it is present and assign shortcuts
Summary: Let Mirror/Rotate Layer work with a selection when it is present and assign s...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Usability (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other Linux
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
: 362989 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-07-13 07:54 UTC by Dmitry Kazakov
Modified: 2018-09-09 13:52 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
List of affected actions (25.50 KB, image/png)
2016-07-13 07:56 UTC, Dmitry Kazakov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Kazakov 2016-07-13 07:54:51 UTC
All Layer Translformation actions (see atachment) should work in a universal way, that is:

1) If there is a selection present, process the current selection on the currently selected layer
2) If there is no selection, just process the whole layer bounds
3) It might be a good idea to have some shortcuts for mirroring and rotation actions
4) They also should be renamed to conform with the new behavior

See bug 352533 as an initial idea.

WISHGROUP: Small Usability Fixes
Comment 1 Dmitry Kazakov 2016-07-13 07:56:26 UTC
Created attachment 100056 [details]
List of affected actions
Comment 2 wolthera 2016-10-02 16:10:04 UTC
*** Bug 362989 has been marked as a duplicate of this bug. ***
Comment 3 Dmitry Kazakov 2018-09-09 13:52:50 UTC
Git commit 3014d62c9817690ed21384450cb771c75bf60ce4 by Dmitry Kazakov.
Committed on 09/09/2018 at 13:52.
Pushed by dkazakov into branch 'master'.

Now Rotate/Scale/Mirror/Shear Layer actions also support
handling a selection. If there is a selection active, then
the action will transform selected content only.

Now there are also 8 new actions, that will rotate/scale/
mirror/shear *all* layers without resizing the image. These
actions can also handle selections.

Animation Note:

* when no selection present, the actions transform *all*
  the frames of the layers in question

* when there is a selection active, only current frame
  is transformed
Ref T3920
CC:kimageshop@kde.org

M  +96   -0    krita/krita.action
M  +15   -0    krita/krita4.xmlgui
M  +2    -0    libs/image/CMakeLists.txt
R  +0    -0    libs/image/commands_new/kis_transaction_based_command.cpp [from: libs/ui/kis_transaction_based_command.cpp - 100% similarity]
R  +2    -2    libs/image/commands_new/kis_transaction_based_command.h [from: libs/ui/kis_transaction_based_command.h - 092% similarity]
M  +79   -27   libs/image/kis_image.cc
M  +6    -7    libs/image/kis_image.h
M  +12   -0    libs/image/kis_processing_applicator.cpp
M  +5    -0    libs/image/kis_processing_visitor.cpp
M  +8    -0    libs/image/kis_processing_visitor.h
A  +91   -0    libs/image/processing/KisSelectionBasedProcessingHelper.cpp     [License: UNKNOWN]  *
A  +37   -0    libs/image/processing/KisSelectionBasedProcessingHelper.h     [License: UNKNOWN]  *
M  +26   -9    libs/image/processing/kis_mirror_processing_visitor.cpp
M  +10   -0    libs/image/processing/kis_mirror_processing_visitor.h
M  +37   -5    libs/image/processing/kis_transform_processing_visitor.cpp
M  +8    -1    libs/image/processing/kis_transform_processing_visitor.h
M  +11   -4    libs/libkis/Node.cpp
M  +1    -1    libs/libkis/Node.h
M  +0    -1    libs/ui/CMakeLists.txt
M  +1    -1    libs/ui/actions/kis_selection_action_factories.cpp
M  +42   -56   libs/ui/kis_node_manager.cpp
M  +7    -12   libs/ui/kis_node_manager.h
M  +1    -1    libs/ui/operations/kis_filter_selection_operation.cpp
M  +0    -104  libs/ui/tests/kis_node_manager_test.cpp
M  +0    -6    libs/ui/tests/kis_node_manager_test.h
M  +1    -1    libs/ui/tool/kis_selection_tool_helper.cpp
M  +1    -1    plugins/dockers/gamutmask/gamutmask_dock.cpp
M  +46   -14   plugins/extensions/imagesize/imagesize.cc
M  +6    -0    plugins/extensions/imagesize/imagesize.h
M  +1    -1    plugins/extensions/pykrita/sip/krita/Node.sip
M  +91   -10   plugins/extensions/rotateimage/rotateimage.cc
M  +12   -0    plugins/extensions/rotateimage/rotateimage.h
M  +25   -4    plugins/extensions/shearimage/shearimage.cc
M  +6    -0    plugins/extensions/shearimage/shearimage.h
M  +1    -1    plugins/tools/tool_smart_patch/kis_tool_smart_patch.cpp

The files marked with a * at the end have a non valid license. Please read: https://community.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.


https://commits.kde.org/krita/3014d62c9817690ed21384450cb771c75bf60ce4