Alt-h unhide should be limited to only visible collections
Please ignore the first comment below. The user is trolling.
Anyways, here is a blend file that crystal clear shows the issue. I have disabled the collection 2 in all ways you can. I have collection 1 active and selected. I press alt-h. Objects on that disabled, hidden collection 2 are unhidden. Try it yourself. Download the file and check collection 2 object visibilities. All are off. Turn them back off and select collection 1. Then just press alt-h. Then check collection 2 again. Objects are unhidden. file: we.tl/t-m1UQDhdebl
In 2.79 when you press alt-h it unhides all objects on visible layers. In 2.8 when you press alt-h it unhides all objects on all collections regardless whether those collections are visible or not. This new behaviour makes absolutely no sense to me at all. Doing things to hidden layers/collections when a generic keyboard shortcut is used should be a big no-no.
So here is my suggestion. When user presses alt-h only the objects on visible collections are unhidden/revealed. Hidden collections are untouched. Visibility of object and collection in the context of this suggestion is simply about the eye shaped "visible in viewport" icon.
4 Comments
If I´m not mistaken, this seems to be the current behavior now at Blender 3.6
This absolutely should be the way its done.
I'll frequently un-hide all with Alt-H, deselect a few of the now-visible, now-selected objects, and then I'll hide the rest again by pressing H, and go on to tweak the objects I left visible (e.g. to alter how they interact with their neighboring, always-visible objects).
But now every time I make visible a collection that's usually hidden, I have to re-hide all of their objects that were themselves hidden before.
Use case: I have a part that is 3d-printed, containing numerous hidden objects used for boolean operations (i.e. non-destructive modeling), and a collection containing objects that act as support material for that part, and which also contains numerous hidden boolean objects. For the sake of reduced clutter in the scene, the support material collection is normally kept hidden, and is never shown except when it comes time to export the model, or if I need to tweak one of the support objects.
I un-hide all on the main object, edit, and re-hide. Then I un-hide the support objects collection (only at the top level that is), just to tweak something to correspond to something I altered in the main object, only to find all those once-hidden boolean objects within the collection are visible again! But I couldn't see them initially because the collection itself was still hidden.
Having "Alt-H" unhide all objects in all collections that are themselves hidden, without "H" re-hiding those objects on the first press, IS ANNOYING AS HELL!
Either Alt-H needs to ignore objects in hidden collections, or "H" needs to forceably re-hide everything that was un-hiddden, even if their containing collections are still hidden at the top level.
There is a workaround but it's still annoying:
After hitting "H' to re-hide the intentionally-revealed objects (e.g. the booleans in the main part in my example), click the checkbox in the outliner to un-hide the collection containing the objects you know will have been improperly-revealed by that initial Alt-H. As soon as you un-hide that collection, those objects will be automatically selected. Press "H" now and they'll be hidden.
The disable collection checkbox is made exactly for your problem. It disables the colletion both from render and viewport so when you click alt H it doesn't appear again. Also, Since it is there for a long time now, i don't know why are you even proposing this.
* @jerzy.gorski.art * Because it is totally unintuitive and plain wrong for any keyboard shortcut like alt-h to alter objects on HIDDEN collections. How can you not see this as an obvious issue? Is there a situation ever where you'd want alt-h to unhide stuff on hidden collections?! Your solution does not even work as you claim. Even if collection is disabled alt-h still unhides objects on that collection! Troll.