diff --git a/release/ui/bpy_ops.py b/release/ui/bpy_ops.py index 084f4c9703b..aaf9edc082e 100644 --- a/release/ui/bpy_ops.py +++ b/release/ui/bpy_ops.py @@ -26,8 +26,12 @@ class bpy_ops(object): submodules = set() + # add this classes functions + for id_name in dir(self.__class__): + if not id_name.startswith('__'): + submodules.add(id_name) + for id_name in op_dir(): - id_split = id_name.split('_OT_', 1) if len(id_split) == 2: @@ -65,10 +69,6 @@ class bpy_ops_submodule(object): module_upper = self.module.upper() for id_name in op_dir(): - - if id_name.startswith('__'): - continue - id_split = id_name.split('_OT_', 1) if len(id_split) == 2 and module_upper == id_split[0]: functions.add(id_split[1]) diff --git a/source/blender/editors/object/editconstraint.c b/source/blender/editors/object/editconstraint.c index 6a88fb5ab51..477d04a818b 100644 --- a/source/blender/editors/object/editconstraint.c +++ b/source/blender/editors/object/editconstraint.c @@ -1011,7 +1011,7 @@ static int pose_constraints_clear_exec(bContext *C, wmOperator *op) void POSE_OT_constraints_clear(wmOperatorType *ot) { /* identifiers */ - //ot->name = "Clear Constraints"; + ot->name = "Clear Constraints"; ot->idname= "POSE_OT_constraints_clear"; ot->description= "Clear all the constraints for the selected bones."; diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 5ec25cfe4c2..05a60f3c0f9 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -184,13 +184,18 @@ static void rna_Object_track_set(PointerRNA *ptr, PointerRNA value) static EnumPropertyItem *rna_Object_parent_type_itemf(bContext *C, PointerRNA *ptr, int *free) { Object *ob= (Object*)ptr->data; - Object *par= ob->parent; EnumPropertyItem *item= NULL; int totitem= 0; + if(C==NULL) { + return parent_type_items; + } + RNA_enum_items_add_value(&item, &totitem, parent_type_items, PAROBJECT); - if(par) { + if(ob->parent) { + Object *par= ob->parent; + if(par->type == OB_CURVE) RNA_enum_items_add_value(&item, &totitem, parent_type_items, PARCURVE); else if(par->type == OB_LATTICE) diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 9e8c5dc7ca0..5e60207f62d 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -130,6 +130,13 @@ void WM_operatortype_append(void (*opfunc)(wmOperatorType*)) ot= MEM_callocN(sizeof(wmOperatorType), "operatortype"); ot->srna= RNA_def_struct(&BLENDER_RNA, "", "OperatorProperties"); opfunc(ot); + + if(ot->name==NULL) { + static char dummy_name[] = "Dummy Name"; + fprintf(stderr, "ERROR: Operator %s has no name property!\n", ot->idname); + ot->name= dummy_name; + } + RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:""); // XXX All ops should have a description but for now allow them not to. RNA_def_struct_identifier(ot->srna, ot->idname); BLI_addtail(&global_ops, ot);