Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYimingWu <xp8110@outlook.com>2021-06-28 10:46:26 +0300
committerYimingWu <xp8110@outlook.com>2021-06-28 10:51:34 +0300
commitc297769d2249b2fa3c34eb36aee7631ca5278383 (patch)
tree7ebd13bcf2a87717f034cd6eb30988d534a72437
parentbb2648ebf0022186bdd27e451194388d1fd4cce0 (diff)
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
-rw-r--r--release/scripts/startup/bl_ui/properties_collection.py10
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c13
-rw-r--r--source/blender/editors/space_buttons/space_buttons.c8
3 files changed, 19 insertions, 12 deletions
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 222d25b7d75..3a2b7f27e52 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++;
}