[Gimp-developer] feature: Set exclusive layer visibility within groups

I have a little gripe about setting "exclusive visibility" (shift+click a layer's visibility icon) in an image.  Now that we have layer groups in GIMP 2.8, it only functions on the "top level" of the layer stack -- it seems impossible to toggle exclusive visibility inside a group.

Since a layer group can itself be a complex combination of layers (apparently including other layer groups!), we should have some ability to toggle exclusive visibility with respect to other members in that group only.

For example, the current behavior could be expanded from a simple on/off toggle to an iterative loop somewhat like this:

1 - When toggling exclusive visibility, first note the full path from image root to the selected item (inclusively) and begin iterating through it.
2 - IF at any point along this path there are any visible sibling items, THEN hide them, leaving only the selected item visible, and break and return.
3 - Otherwise, if we have traversed the entire path without finding any visible siblings, then selected item is the only visible item in the whole image.  (Whether the selected item is itself a layer or group is irrelevant.)  Therefore, traverse the selected path again and ensure that any and all sibling items at any point along the path are made visible.

This would establish a toggle chain of all items -> selected group -> (subgroup, etc.) -> selected item in group -> all items.

It could also be reversed; all items -> selected item in group -> selected group -> (parent group, etc.) -> all items, but I'm not exactly sure how that logic would pan out.

Note that in the simple case of an image with no layer groups, this quickly reduces to the current behavior of all items -> selected layer -> all items.  (This also applies when setting exclusive visibility on a top-level group, because in that case we DO want to act on the group as a whole).

-- Stratadrake
strata_ranger hotmail com
Numbers may not lie, but neither do they tell the whole truth.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]