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:
authorCampbell Barton <ideasman42@gmail.com>2012-05-13 02:38:15 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-05-13 02:38:15 +0400
commit71461298db371296741216cfffd24271913fff21 (patch)
treefb6c876bdaf95b82357cbd2239681a413a6edb9b /source/blender/makesrna/intern/rna_ID.c
parentc1570d9f499b3fa8e45e5de386a23aef54d4f054 (diff)
patch [#31434] IDMaterials.pop/append() UI update from console
from Dan Eicher (dna)
Diffstat (limited to 'source/blender/makesrna/intern/rna_ID.c')
-rw-r--r--source/blender/makesrna/intern/rna_ID.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index 8832d92e42f..94298cc034c 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -82,6 +82,8 @@ EnumPropertyItem id_type_items[] = {
#include "BKE_material.h"
#include "BKE_depsgraph.h"
+#include "WM_api.h"
+
/* name functions that ignore the first two ID characters */
void rna_ID_name_get(PointerRNA *ptr, char *value)
{
@@ -336,6 +338,25 @@ int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assig
}
}
+void rna_IDMaterials_append_id(ID *id, Material *ma)
+{
+ material_append_id(id, ma);
+
+ WM_main_add_notifier(NC_OBJECT | ND_DRAW, id);
+ WM_main_add_notifier(NC_OBJECT | ND_OB_SHADING, id);
+}
+
+Material *rna_IDMaterials_pop_id(ID *id, int index_i, int remove_material_slot)
+{
+ Material *ma = material_pop_id(id, index_i, remove_material_slot);
+
+ DAG_id_tag_update(id, OB_RECALC_DATA);
+ WM_main_add_notifier(NC_OBJECT | ND_DRAW, id);
+ WM_main_add_notifier(NC_OBJECT | ND_OB_SHADING, id);
+
+ return ma;
+}
+
void rna_Library_filepath_set(PointerRNA *ptr, const char *value)
{
Library *lib = (Library *)ptr->data;
@@ -442,12 +463,12 @@ static void rna_def_ID_materials(BlenderRNA *brna)
RNA_def_struct_sdna(srna, "ID");
RNA_def_struct_ui_text(srna, "ID Materials", "Collection of materials");
- func = RNA_def_function(srna, "append", "material_append_id");
+ func = RNA_def_function(srna, "append", "rna_IDMaterials_append_id");
RNA_def_function_ui_description(func, "Add a new material to the data block");
parm = RNA_def_pointer(func, "material", "Material", "", "Material to add");
RNA_def_property_flag(parm, PROP_REQUIRED);
-
- func = RNA_def_function(srna, "pop", "material_pop_id");
+
+ func = RNA_def_function(srna, "pop", "rna_IDMaterials_pop_id");
RNA_def_function_ui_description(func, "Remove a material from the data block");
parm = RNA_def_int(func, "index", 0, 0, MAXMAT, "", "Index of material to remove", 0, MAXMAT);
RNA_def_property_flag(parm, PROP_REQUIRED);