replace OBJECT_OT_location_apply, OBJECT_OT_scale_apply, OBJECT_OT_rotation_apply...
authorCampbell Barton <ideasman42@gmail.com>
Tue, 3 May 2011 07:09:02 +0000 (07:09 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 3 May 2011 07:09:02 +0000 (07:09 +0000)
added back menu item from 2.4x to apply Rotation & Scale.

release/scripts/startup/bl_ui/space_view3d.py
source/blender/editors/object/object_intern.h
source/blender/editors/object/object_ops.c
source/blender/editors/object/object_transform.c

index 2eaac42cf354649ee03cf8b5601469e53e37648c..7d31bc39b0a96f8b809987e583b17986ce5dfef7 100644 (file)
@@ -851,10 +851,15 @@ class VIEW3D_MT_object_apply(bpy.types.Menu):
     def draw(self, context):
         layout = self.layout
 
-        layout.operator("object.location_apply", text="Location")
-        layout.operator("object.rotation_apply", text="Rotation")
-        layout.operator("object.scale_apply", text="Scale")
+        layout.operator("object.transform_apply", text="Location").location = True
+        layout.operator("object.transform_apply", text="Rotation").rotation = True
+        layout.operator("object.transform_apply", text="Scale").scale = True
+        props = layout.operator("object.transform_apply", text="Rotation & Scale")
+        props.scale = True
+        props.rotation = True
+
         layout.separator()
+
         layout.operator("object.visual_transform_apply", text="Visual Transform")
         layout.operator("object.duplicates_make_real")
 
index dfaffe73209eea5bafa3eb7b465ad44e6f730b5d..801880f0f3266116a4e5f763cca223b0a84bf43c 100644 (file)
@@ -55,9 +55,7 @@ void OBJECT_OT_rotation_clear(struct wmOperatorType *ot);
 void OBJECT_OT_scale_clear(struct wmOperatorType *ot);
 void OBJECT_OT_origin_clear(struct wmOperatorType *ot);
 void OBJECT_OT_visual_transform_apply(struct wmOperatorType *ot);
-void OBJECT_OT_location_apply(struct wmOperatorType *ot);
-void OBJECT_OT_scale_apply(struct wmOperatorType *ot);
-void OBJECT_OT_rotation_apply(struct wmOperatorType *ot);
+void OBJECT_OT_transform_apply(struct wmOperatorType *ot);
 void OBJECT_OT_origin_set(struct wmOperatorType *ot);
 
 /* object_relations.c */
index 04152369a7eb733ed90b2d51132bd93488fea8ba..ff9b13379a2197a3a0d23618946112d96bee38df 100644 (file)
@@ -65,9 +65,7 @@ void ED_operatortypes_object(void)
        WM_operatortype_append(OBJECT_OT_scale_clear);
        WM_operatortype_append(OBJECT_OT_origin_clear);
        WM_operatortype_append(OBJECT_OT_visual_transform_apply);
-       WM_operatortype_append(OBJECT_OT_location_apply);
-       WM_operatortype_append(OBJECT_OT_scale_apply);
-       WM_operatortype_append(OBJECT_OT_rotation_apply);
+       WM_operatortype_append(OBJECT_OT_transform_apply);
        WM_operatortype_append(OBJECT_OT_origin_set);
        
        WM_operatortype_append(OBJECT_OT_mode_set);
index 04600080eb8febff651801a536c0f67e7afbb24b..bce16ceeed22d0caa40aa48fccff7808287abd6c 100644 (file)
@@ -386,7 +386,7 @@ static void ignore_parent_tx(Main *bmain, Scene *scene, Object *ob )
        }
 }
 
-static int apply_objects_internal(bContext *C, ReportList *reports, int apply_loc, int apply_scale, int apply_rot)
+static int apply_objects_internal(bContext *C, ReportList *reports, int apply_loc, int apply_rot, int apply_scale)
 {
        Main *bmain= CTX_data_main(C);
        Scene *scene= CTX_data_scene(C);
@@ -595,64 +595,37 @@ void OBJECT_OT_visual_transform_apply(wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
-static int location_apply_exec(bContext *C, wmOperator *op)
+static int object_transform_apply_exec(bContext *C, wmOperator *op)
 {
-       return apply_objects_internal(C, op->reports, 1, 0, 0);
-}
-
-void OBJECT_OT_location_apply(wmOperatorType *ot)
-{
-       /* identifiers */
-       ot->name= "Apply Location";
-       ot->description = "Apply the object's location to its data";
-       ot->idname= "OBJECT_OT_location_apply";
-       
-       /* api callbacks */
-       ot->exec= location_apply_exec;
-       ot->poll= ED_operator_objectmode; /* editmode will crash */
-       
-       /* flags */
-       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-}
+       const int loc= RNA_boolean_get(op->ptr, "location");
+       const int rot= RNA_boolean_get(op->ptr, "rotation");
+       const int sca= RNA_boolean_get(op->ptr, "scale");
 
-static int scale_apply_exec(bContext *C, wmOperator *op)
-{
-       return apply_objects_internal(C, op->reports, 0, 1, 0);
+       if(loc || rot || sca) {
+               return apply_objects_internal(C, op->reports, loc, rot, sca);
+       }
+       else {
+               return OPERATOR_CANCELLED;
+       }
 }
 
-void OBJECT_OT_scale_apply(wmOperatorType *ot)
+void OBJECT_OT_transform_apply(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Apply Scale";
-       ot->description = "Apply the object's scale to its data";
-       ot->idname= "OBJECT_OT_scale_apply";
-       
-       /* api callbacks */
-       ot->exec= scale_apply_exec;
-       ot->poll= ED_operator_objectmode;
-       
-       /* flags */
-       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-}
+       ot->name= "Apply Object Transform";
+       ot->description = "Apply the object's transformation to its data";
+       ot->idname= "OBJECT_OT_transform_apply";
 
-static int rotation_apply_exec(bContext *C, wmOperator *op)
-{
-       return apply_objects_internal(C, op->reports, 0, 0, 1);
-}
-
-void OBJECT_OT_rotation_apply(wmOperatorType *ot)
-{
-       /* identifiers */
-       ot->name= "Apply Rotation";
-       ot->description = "Apply the object's rotation to its data";
-       ot->idname= "OBJECT_OT_rotation_apply";
-       
        /* api callbacks */
-       ot->exec= rotation_apply_exec;
+       ot->exec= object_transform_apply_exec;
        ot->poll= ED_operator_objectmode;
-       
+
        /* flags */
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+       RNA_def_boolean(ot->srna, "location", 0, "Location", "");
+       RNA_def_boolean(ot->srna, "rotation", 0, "Rotation", "");
+       RNA_def_boolean(ot->srna, "scale", 0, "Scale", "");
 }
 
 /********************* Set Object Center ************************/