[Bf-blender-cvs] [289c5de] master: Fix T38359: incorrect display of material slot with pinned particle settings.
Brecht Van Lommel
noreply at git.blender.org
Wed Jan 29 16:52:47 CET 2014
Commit: 289c5de7d8c8f346832cb55754fb82e11f8377a4
Author: Brecht Van Lommel
Date: Wed Jan 29 16:50:37 2014 +0100
https://developer.blender.org/rB289c5de7d8c8f346832cb55754fb82e11f8377a4
Fix T38359: incorrect display of material slot with pinned particle settings.
Just hide it in this case, the material slot is not really valid without an
object in the context.
===================================================================
M release/scripts/startup/bl_ui/properties_particle.py
M source/blender/makesrna/intern/rna_particle.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py
index 01038c3..30fc3a9 100644
--- a/release/scripts/startup/bl_ui/properties_particle.py
+++ b/release/scripts/startup/bl_ui/properties_particle.py
@@ -799,11 +799,11 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
psys = context.particle_system
part = particle_get_settings(context)
- row = layout.row()
- if part.render_type in {'OBJECT', 'GROUP'}:
- row.enabled = False
- row.prop(part, "material_slot", text="")
if psys:
+ row = layout.row()
+ if part.render_type in {'OBJECT', 'GROUP'}:
+ row.enabled = False
+ row.prop(part, "material_slot", text="")
row.prop(psys, "parent")
split = layout.split()
diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c
index 4b05001..ca582ef 100644
--- a/source/blender/makesrna/intern/rna_particle.c
+++ b/source/blender/makesrna/intern/rna_particle.c
@@ -392,17 +392,17 @@ static void rna_ParticleSystem_co_hair(ParticleSystem *particlesystem, Object *o
}
-static EnumPropertyItem *rna_Particule_Material_itemf(bContext *C, PointerRNA *UNUSED(ptr),
+static EnumPropertyItem *rna_Particle_Material_itemf(bContext *C, PointerRNA *UNUSED(ptr),
PropertyRNA *UNUSED(prop), bool *r_free)
{
- Object *ob = CTX_data_active_object(C);
+ Object *ob = CTX_data_pointer_get(C, "object").data;
Material *ma;
EnumPropertyItem *item = NULL;
EnumPropertyItem tmp = {0, "", 0, "", ""};
int totitem = 0;
int i;
- if (ob->totcol > 0) {
+ if (ob && ob->totcol > 0) {
for (i = 1; i <= ob->totcol; i++) {
ma = give_current_material(ob, i);
tmp.value = i;
@@ -2413,8 +2413,8 @@ static void rna_def_particle_settings(BlenderRNA *brna)
prop = RNA_def_property(srna, "material_slot", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "omat");
RNA_def_property_enum_items(prop, part_mat_items);
- RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_Particule_Material_itemf");
- RNA_def_property_ui_text(prop, "Material Slot", "Material slot used for rendering particles");
+ RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_Particle_Material_itemf");
+ RNA_def_property_ui_text(prop, "Material Slot", "Material nlot used for rendering particles");
RNA_def_property_update(prop, 0, "rna_Particle_redo");
prop = RNA_def_property(srna, "integrator", PROP_ENUM, PROP_NONE);
More information about the Bf-blender-cvs
mailing list