This patch is a proposal for a different behavior of the outliner toggle visibility/renderability buttons (and corresponding keyboard functions): toggle visibility/renderablilty for the object an all child-objects. I tested this different functionality on my own build Blender 2.5 now for awhile and I find this new behavior more intuitiv and useful.
What the the patch changes:
When you have multiple objects which are linked via the parent relation to some main-object (many times this is an "Empty"-object) and you click on the toggle buttons for visibility and renderability for the main-object the visibility and renderability of that object only is changed, not the visibility/renderability of the child-objects. This is IMHO a little confusing and annoying, because to changed the visibility/renderability of the whole multi-part object you have to click on each child-object (please correct me if this functionality is already there and I did not find it). With the patch the visibility/renderability of all child-objects is toggled, too, except those which are not selectable. Thus making the whole multi-object visible/renderable resp. not visble/renderable. The not-selectable-exception is IMHO useful if some object should e. g. never be shown or rendered, like helping objects for making holes in some other object etc.
The patch contain:
- new function propagate_restrict_flag() which propagate a given restriction flag to the settings of the supplied object
- when the visibility/renderability of an object is changed, call function propagate_restrict_flag() to propagate the new state down to all child-objects (except those who have OB_RESTRICT_SELECT set)
Note: this task is a copy of T24042 where I do not have access anymore.