[Bf-blender-cvs] [29467629753] temp-lineart-contained: Collections: Prevent setting scene collection color tag from rna

Nathan Craddock noreply at git.blender.org
Sat Dec 19 06:18:54 CET 2020


Commit: 294676297530f8f98a0d38bc9c7855cfb8c0026c
Author: Nathan Craddock
Date:   Thu Nov 12 22:51:55 2020 -0700
Branches: temp-lineart-contained
https://developer.blender.org/rB294676297530f8f98a0d38bc9c7855cfb8c0026c

Collections: Prevent setting scene collection color tag from rna

It should not be possible to set the scene collection's color tag
through rna. Also adds a missing notifier for setting the collection
color tag from python.

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

M	source/blender/makesrna/intern/rna_collection.c

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

diff --git a/source/blender/makesrna/intern/rna_collection.c b/source/blender/makesrna/intern/rna_collection.c
index 26743e5f8a9..b0aa3ddfb54 100644
--- a/source/blender/makesrna/intern/rna_collection.c
+++ b/source/blender/makesrna/intern/rna_collection.c
@@ -348,6 +348,31 @@ static void rna_Collection_flag_update(Main *bmain, Scene *scene, PointerRNA *pt
   WM_main_add_notifier(NC_SCENE | ND_OB_SELECT, scene);
 }
 
+static int rna_Collection_color_tag_get(struct PointerRNA *ptr)
+{
+  Collection *collection = (Collection *)ptr->data;
+
+  return collection->color_tag;
+}
+
+static void rna_Collection_color_tag_set(struct PointerRNA *ptr, int value)
+{
+  Collection *collection = (Collection *)ptr->data;
+
+  if (collection->flag & COLLECTION_IS_MASTER) {
+    return;
+  }
+
+  collection->color_tag = value;
+}
+
+static void rna_Collection_color_tag_update(Main *UNUSED(bmain),
+                                            Scene *scene,
+                                            PointerRNA *UNUSED(ptr))
+{
+  WM_main_add_notifier(NC_SCENE | ND_LAYER_CONTENT, scene);
+}
+
 #else
 
 /* collection.objects */
@@ -523,9 +548,11 @@ void RNA_def_collections(BlenderRNA *brna)
 
   prop = RNA_def_property(srna, "color_tag", PROP_ENUM, PROP_NONE);
   RNA_def_property_enum_sdna(prop, NULL, "color_tag");
+  RNA_def_property_enum_funcs(
+      prop, "rna_Collection_color_tag_get", "rna_Collection_color_tag_set", NULL);
   RNA_def_property_enum_items(prop, rna_enum_collection_color_items);
   RNA_def_property_ui_text(prop, "Collection Color", "Color tag for a collection");
-  RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, NULL);
+  RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, "rna_Collection_color_tag_update");
 
   RNA_define_lib_overridable(false);
 }



More information about the Bf-blender-cvs mailing list