[Bf-blender-cvs] [e9d6f2164e4] blender-v2.93-release: UI: Hide collection tab when scene master collection is active

YimingWu noreply at git.blender.org
Wed Jun 30 09:47:16 CEST 2021


Commit: e9d6f2164e4db07d71f494910b7ce6c1db5a6d4b
Author: YimingWu
Date:   Mon Jun 28 15:46:26 2021 +0800
Branches: blender-v2.93-release
https://developer.blender.org/rBe9d6f2164e4db07d71f494910b7ce6c1db5a6d4b

UI: Hide collection tab when scene master collection is active

CollectionLineart does not care about the configurations
in master collection.
Other options are not applicaple for master collection as well.
Hence hiding it.

Reviewed by Dalai Felinto (dfelinto)

Differential Revision: https://developer.blender.org/D11702

===================================================================

M	release/scripts/startup/bl_ui/properties_collection.py
M	source/blender/editors/space_buttons/buttons_context.c
M	source/blender/editors/space_buttons/space_buttons.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/properties_collection.py b/release/scripts/startup/bl_ui/properties_collection.py
index c5c35121135..5a98e638992 100644
--- a/release/scripts/startup/bl_ui/properties_collection.py
+++ b/release/scripts/startup/bl_ui/properties_collection.py
@@ -25,6 +25,10 @@ class CollectionButtonsPanel:
     bl_region_type = 'WINDOW'
     bl_context = "collection"
 
+    @classmethod
+    def poll(cls, context):
+        return context.collection != context.scene.collection
+
 
 def lineart_make_line_type_entry(col, line_type, text_disp, expand, search_from):
     col.prop(line_type, "use", text=text_disp)
@@ -38,12 +42,6 @@ def lineart_make_line_type_entry(col, line_type, text_disp, expand, search_from)
 class COLLECTION_PT_collection_flags(CollectionButtonsPanel, Panel):
     bl_label = "Restrictions"
 
-    @classmethod
-    def poll(cls, context):
-        vl = context.view_layer
-        vlc = vl.active_layer_collection
-        return (vlc.name != 'Master Collection')
-
     def draw(self, context):
         layout = self.layout
         layout.use_property_split = True
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index 1699e704a4d..9760897cb22 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -154,7 +154,7 @@ static bool buttons_context_path_world(ButsContextPath *path)
   return false;
 }
 
-static bool buttons_context_path_collection(ButsContextPath *path, wmWindow *window)
+static bool buttons_context_path_collection(bContext *C, ButsContextPath *path, wmWindow *window)
 {
   PointerRNA *ptr = &path->ptr[path->len - 1];
 
@@ -162,10 +162,19 @@ static bool buttons_context_path_collection(ButsContextPath *path, wmWindow *win
   if (RNA_struct_is_a(ptr->type, &RNA_Collection)) {
     return true;
   }
+
+  Scene *scene = CTX_data_scene(C);
+
   /* if we have a view layer, use the view layer's active collection */
   if (buttons_context_path_view_layer(path, window)) {
     ViewLayer *view_layer = path->ptr[path->len - 1].data;
     Collection *c = view_layer->active_collection->collection;
+
+    /* Do not show collection tab for master collection. */
+    if (c == scene->master_collection) {
+      return false;
+    }
+
     if (c) {
       RNA_id_pointer_create(&c->id, &path->ptr[path->len]);
       path->len++;
@@ -600,7 +609,7 @@ static bool buttons_context_path(
       found = buttons_context_path_world(path);
       break;
     case BCONTEXT_COLLECTION: /* This is for Line Art collection flags */
-      found = buttons_context_path_collection(path, window);
+      found = buttons_context_path_collection(C, path, window);
       break;
     case BCONTEXT_TOOL:
       found = true;
diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c
index 9db8f7efbb2..57a7fe894b0 100644
--- a/source/blender/editors/space_buttons/space_buttons.c
+++ b/source/blender/editors/space_buttons/space_buttons.c
@@ -202,11 +202,11 @@ int ED_buttons_tabs_list(SpaceProperties *sbuts, short *context_tabs_array)
     context_tabs_array[length] = BCONTEXT_WORLD;
     length++;
   }
-  if (length != 0) {
-    context_tabs_array[length] = -1;
-    length++;
-  }
   if (sbuts->pathflag & (1 << BCONTEXT_COLLECTION)) {
+    if (length != 0) {
+      context_tabs_array[length] = -1;
+      length++;
+    }
     context_tabs_array[length] = BCONTEXT_COLLECTION;
     length++;
   }



More information about the Bf-blender-cvs mailing list