From b1af682001596fb2943dca3e39a256be71637906 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sat, 4 May 2019 14:14:37 -0300 Subject: Outliner Visibility Update See T61578 for discussions and mockups. Visibility Options ================== We are adding more granular control over restriction columns in the outliner, exposing "indirect only" and "holdout" as options, and change the way users enable/disable collections in a viewlayer. We also rename the object viewport restriction to hide instance. So the options we have are: Collection ---------- * Render Visibility * Instance Visibility * Selectable (View) Layer Collection ----------------------- * Enable * Holdout * Indirect Only * Viewport Shortcuts ========= Isolate Collection ------------------ * Ctr + click isolates the collection. It turns all its parents and children "visible", and all the other collections "invisible". If ALL the collections were already properly set, we re-set the collections to their default value. Set Collection Inside Collections and Objects --------------------------------------------- * Shift + click: Set/unset inside collections and objects. We only set objects values as well when we are in View Layer mode and (obviously) when the objects have a matching property. Icons ===== Little reminder that we will need better icons for holdout, indirect only, and probably instanced (nothing wrong with the current, but it differs from the proposal when it is turned off). Also, we need to decide where do we want the modifier/bones/... icons to be (in which column) and ideally make sure their icons match the ones we use for collections/objects. At the moment those are using the screen icon, which is not being used by collections. Reviewers: brecht, billrey Subscribers: pablovazquez Differential Revision: https://developer.blender.org/D4823 --- source/blender/makesdna/DNA_collection_types.h | 2 +- source/blender/makesdna/DNA_object_types.h | 2 +- source/blender/makesdna/DNA_space_types.h | 15 +++++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'source/blender/makesdna') diff --git a/source/blender/makesdna/DNA_collection_types.h b/source/blender/makesdna/DNA_collection_types.h index b935acd5a24..9183537e2f0 100644 --- a/source/blender/makesdna/DNA_collection_types.h +++ b/source/blender/makesdna/DNA_collection_types.h @@ -76,7 +76,7 @@ typedef struct Collection { /* Collection->flag */ enum { - COLLECTION_RESTRICT_VIEW = (1 << 0), /* Hidden in viewport. */ + COLLECTION_RESTRICT_INSTANCE = (1 << 0), /* Hidden in viewport. */ COLLECTION_RESTRICT_SELECT = (1 << 1), /* Not selectable in viewport. */ COLLECTION_DISABLED_DEPRECATED = (1 << 2), /* Not used anymore */ COLLECTION_RESTRICT_RENDER = (1 << 3), /* Hidden in renders. */ diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index ae781ac4e9e..3a2d749b321 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -602,7 +602,7 @@ enum { /* ob->restrictflag */ enum { - OB_RESTRICT_VIEW = 1 << 0, + OB_RESTRICT_INSTANCE = 1 << 0, OB_RESTRICT_SELECT = 1 << 1, OB_RESTRICT_RENDER = 1 << 2, }; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 9e8ece0c6e8..bca2df27560 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -247,7 +247,7 @@ typedef struct SpaceOutliner { short flag, outlinevis, storeflag, search_flags; int filter; char filter_state; - char _pad; + char show_restrict_flags; short filter_id_type; /** @@ -260,7 +260,7 @@ typedef struct SpaceOutliner { typedef enum eSpaceOutliner_Flag { SO_TESTBLOCKS = (1 << 0), SO_NEWSELECTED = (1 << 1), - SO_HIDE_RESTRICTCOLS = (1 << 2), + SO_FLAG_UNUSED_1 = (1 << 2), /* cleared */ SO_HIDE_KEYINGSETINFO = (1 << 3), SO_SKIP_SORT_ALPHA = (1 << 4), } eSpaceOutliner_Flag; @@ -309,6 +309,17 @@ typedef enum eSpaceOutliner_StateFilter { SO_FILTER_OB_ACTIVE = 3, } eSpaceOutliner_StateFilter; +/* SpaceOutliner.show_restrict_flags */ +typedef enum eSpaceOutliner_ShowRestrictFlag { + SO_RESTRICT_ENABLE = (1 << 0), + SO_RESTRICT_SELECTABLE = (1 << 1), + SO_RESTRICT_INSTANCE = (1 << 2), + SO_RESTRICT_VIEWPORT = (1 << 3), + SO_RESTRICT_RENDER = (1 << 4), + SO_RESTRICT_HOLDOUT = (1 << 5), + SO_RESTRICT_INDIRECT_ONLY = (1 << 6), +} eSpaceOutliner_Restrict; + /* SpaceOutliner.outlinevis */ typedef enum eSpaceOutliner_Mode { SO_SCENES = 0, -- cgit v1.2.3