Bug 396576 - Re-implementing the old behavior of Isolate Layer used on Group Layers
Summary: Re-implementing the old behavior of Isolate Layer used on Group Layers
Status: RESOLVED NOT A BUG
Alias: None
Product: krita
Classification: Applications
Component: Layer Stack (show other bugs)
Version: 4.1.0 beta
Platform: Microsoft Windows Microsoft Windows
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-07-16 16:59 UTC by michoss9
Modified: 2020-01-30 22:38 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description michoss9 2018-07-16 16:59:44 UTC
Hello. I would like to make a suggestion that a function, which used to be available as standard in past versions of Krita, be brought back as a new separate option or setting. 
I'm referring to the way Isolate Layers function works on group layers. In the past, using "Isolate Layer" option on some specific layer would apply it to only this specific layer, and the function would be turned off if you tried to select any other layer. Currently, the option is "global", in that you can freely switch between layers, and whichever layer you currently have selected becomes isolated. That is fine, however, it has an unfortunate side effect when it comes to group layers. In the past, selecting a group layer allowed you to switch between all the child layers, while still seeing the entire group. Right now, selecting either of the child layers will make the layer isolation "switch" to only encompass the newly chosen layer.

To give a clearer, step by step comparison:

Suppose I have a Group Layer containing paint layers A, B and C inside of it, as well as multiple ungrouped layers.

Behavior of the Isolate Layer function in Krita 3.0 and older:
-I right click on the Group Layer and select the "Isolate Layer" option
--All layers outside of the Group Layer become hidden, while layers A B and C remain visible
-I click on layer A to begin editing it
--All the layers retain their visibility. A, B and C are all still visible while I edit layer A
-I click on layer B to begin editing it
--All the layers retain their visibility. A, B and C are all still visible while I edit layer B
-I click on any layer outside of the group OR I create a new layer within the group
--The "Isolate Layer" option is disabled. All layers become visible again.

Behavior of the Isolate Layer function in the current version of Krita:
-I right click on the Group Layer and select the "Isolate Layer" option
--All layers outside of the Group Layer become hidden, while layers A B and C remain visible
-I click on layer A to begin editing it
--Layers B and C become hidden, as Isolate Layer only focuses on currently selected layer
-I click on layer B to begin editing it
--Layers A and C become hidden...
-I click on any layer outside of the group
--The selected outside layer becomes visible, while A, B and C are all hidden.
-I try to create a new layer
--The "Isolate Layer" option is disabled, All layers become visible again

While the current form of Isolating Layers makes it easier to view many different layers individually in quick succession (something which was already possible, just less convenient), it severely limits the potential of this function. I, personally, found the old form of it really useful in my workflow. For example, images I work on frequently feature multiple independently lined, shaded and textured items, each contained in a separate group, and often overlapping. Being able to work on each object separately, without having to manually hide all other objects manually was incredibly handy. 
It is even more useful in situations where the layer group uses some specific opacity or blending mode (acting as a filter or a texture) - in the current version, to see and edit the "raw" version of the group one does not only have to disable all other layers by hand, but also needs to reset the blending mode and opacity settings for the duration of the edits, and then put them back after they're done (hoping, that they haven't forgotten the exact values). That is really tedious compared to the convenience of the old mode of operation. 
Worth noting, that the old way also worked for paint/vector layers with masks attached to them.

My suggestion would be adding a toggle/setting in the View menu or Configure Krita panel that lets you decide whether you want layer isolation to "foolow you around" or stick to the originlly isolated layer. 
Alternatively, it could be a whole other option only applicable to group layers/layers with masks - when right clicking on a any layer with children, the menu would feature separate "isolate layer" and "isolate group" items. 

In either case, it would be quite beneficial to, in some way, reimplement this old functionality.
Comment 1 mc3dkid 2019-05-30 15:07:44 UTC
I would like to support this suggestion as the current implementation is a downgrade and doesn't make sense from a usability standpoint. Why was this ever changed?
Comment 2 vanyossi 2020-01-30 22:38:48 UTC
Isolate layer is designed to isolate the current layer only. Previous behaviour was a bug.

You can achieve the same workflow using the layer visibility toggles. 

- Shift+Click over the eye icon of the group layer to turn visibility on for all the layers in that group and turn off all other layer visibility. To revert to previous state, shift+click again over the same layer eye icon.

- Shift + Ctrl + click. over the eye icon of the group layer to turn visibility off for all layers outside that group. To revert to previous state, shift+click again over the same layer eye icon.

The blue eye state, indicates you are in a temporary state, if you normal click any eye icon the color will go back to normal. In that case the previous original state will be overwritten.

Visibility state is separated from isolate layer functionality, so you can shift+click the group, and isolate a single layer in the group further refine visibility.