[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60157] trunk/blender: fix [#36537] " Grid Floor Scaling" can have some unexpected behaviour on new objects

Campbell Barton ideasman42 at gmail.com
Mon Sep 16 06:19:48 CEST 2013


Revision: 60157
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60157
Author:   campbellbarton
Date:     2013-09-16 04:19:48 +0000 (Mon, 16 Sep 2013)
Log Message:
-----------
fix [#36537] "Grid Floor Scaling" can have some unexpected behaviour on new objects

curves and metaballs now behave the same as meshes wrt grid scaling.
remove WM_operator_view3d_distance_invoke(), and replace with a function called from exec which initializes defaults, this way operators can have their own invoke functions.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_info.py
    trunk/blender/source/blender/editors/curve/editcurve_add.c
    trunk/blender/source/blender/editors/include/ED_mball.h
    trunk/blender/source/blender/editors/mesh/editmesh_add.c
    trunk/blender/source/blender/editors/metaball/mball_edit.c
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_info.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_info.py	2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/release/scripts/startup/bl_ui/space_info.py	2013-09-16 04:19:48 UTC (rev 60157)
@@ -227,7 +227,7 @@
     def draw(self, context):
         layout = self.layout
 
-        layout.operator_context = 'EXEC_REGION_WIN'
+        layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator("curve.primitive_bezier_curve_add", icon='CURVE_BEZCURVE', text="Bezier")
         layout.operator("curve.primitive_bezier_circle_add", icon='CURVE_BEZCIRCLE', text="Circle")
         layout.operator("curve.primitive_nurbs_curve_add", icon='CURVE_NCURVE', text="Nurbs Curve")
@@ -242,7 +242,7 @@
     def draw(self, context):
         layout = self.layout
 
-        layout.operator_context = 'EXEC_REGION_WIN'
+        layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator("surface.primitive_nurbs_surface_curve_add", icon='SURFACE_NCURVE', text="NURBS Curve")
         layout.operator("surface.primitive_nurbs_surface_circle_add", icon='SURFACE_NCIRCLE', text="NURBS Circle")
         layout.operator("surface.primitive_nurbs_surface_surface_add", icon='SURFACE_NSURFACE', text="NURBS Surface")
@@ -297,7 +297,9 @@
         layout.menu("INFO_MT_curve_add", icon='OUTLINER_OB_CURVE')
         #layout.operator_menu_enum("object.surface_add", "type", text="Surface", icon='OUTLINER_OB_SURFACE')
         layout.menu("INFO_MT_surface_add", icon='OUTLINER_OB_SURFACE')
+        layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator_menu_enum("object.metaball_add", "type", text="Metaball", icon='OUTLINER_OB_META')
+        layout.operator_context = 'EXEC_REGION_WIN'
         layout.operator("object.text_add", text="Text", icon='OUTLINER_OB_FONT')
         layout.separator()
 

Modified: trunk/blender/source/blender/editors/curve/editcurve_add.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editcurve_add.c	2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/source/blender/editors/curve/editcurve_add.c	2013-09-16 04:19:48 UTC (rev 60157)
@@ -45,6 +45,8 @@
 #include "BKE_depsgraph.h"
 #include "BKE_library.h"
 
+#include "RNA_access.h"
+
 #include "WM_api.h"
 #include "WM_types.h"
 
@@ -471,9 +473,12 @@
 	bool newob = false;
 	bool enter_editmode, is_view_aligned;
 	unsigned int layer;
+	float dia;
 	float loc[3], rot[3];
 	float mat[4][4];
 
+	WM_operator_view3d_unit_defaults(C, op);
+
 	if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, &is_view_aligned))
 		return OPERATOR_CANCELLED;
 
@@ -520,7 +525,11 @@
 	if (newob && enter_editmode)
 		ED_undo_push(C, "Enter Editmode");
 
-	ED_object_new_primitive_matrix(C, obedit, loc, rot, mat, true);
+	ED_object_new_primitive_matrix(C, obedit, loc, rot, mat, false);
+	dia = RNA_float_get(op->ptr, "radius");
+	mat[0][0] *= dia;
+	mat[1][1] *= dia;
+	mat[2][2] *= dia;
 
 	nu = add_nurbs_primitive(C, obedit, mat, type, newob);
 	editnurb = object_editcurve_get(obedit);
@@ -567,6 +576,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -589,6 +599,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -611,6 +622,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -633,6 +645,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -655,6 +668,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -678,6 +692,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -700,6 +715,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -722,6 +738,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -744,6 +761,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 
@@ -766,6 +784,7 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
+	ED_object_add_unit_props(ot);
 	ED_object_add_generic_props(ot, true);
 }
 

Modified: trunk/blender/source/blender/editors/include/ED_mball.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mball.h	2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/source/blender/editors/include/ED_mball.h	2013-09-16 04:19:48 UTC (rev 60157)
@@ -39,7 +39,7 @@
 void ED_operatortypes_metaball(void);
 void ED_keymap_metaball(struct wmKeyConfig *keyconf);
 
-struct MetaElem *add_metaball_primitive(struct bContext *C, struct Object *obedit, float mat[4][4], float dia, int type, int newname);
+struct MetaElem *add_metaball_primitive(struct bContext *C, struct Object *obedit, float mat[4][4], float dia, int type);
 
 bool mouse_mball(struct bContext *C, const int mval[2], bool extend, bool deselect, bool toggle);
 

Modified: trunk/blender/source/blender/editors/mesh/editmesh_add.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_add.c	2013-09-16 04:04:44 UTC (rev 60156)
+++ trunk/blender/source/blender/editors/mesh/editmesh_add.c	2013-09-16 04:19:48 UTC (rev 60157)
@@ -105,6 +105,7 @@
 	bool was_editmode;
 	unsigned int layer;
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
 	obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Plane"), &dia, mat, &was_editmode, loc, rot, layer);
 	em = BKE_editmesh_from_object(obedit);
@@ -130,7 +131,6 @@
 	ot->idname = "MESH_OT_primitive_plane_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_plane_exec;
 	ot->poll = ED_operator_scene_editable;
 
@@ -150,6 +150,7 @@
 	bool was_editmode;
 	unsigned int layer;
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
 	obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Cube"), &dia, mat, &was_editmode, loc, rot, layer);
 	em = BKE_editmesh_from_object(obedit);
@@ -176,7 +177,6 @@
 	ot->idname = "MESH_OT_primitive_cube_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_cube_exec;
 	ot->poll = ED_operator_scene_editable;
 
@@ -206,6 +206,7 @@
 	cap_end = RNA_enum_get(op->ptr, "fill_type");
 	cap_tri = (cap_end == 2);
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
 	obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Circle"), &dia, mat, &was_editmode, loc, rot, layer);
 	em = BKE_editmesh_from_object(obedit);
@@ -232,7 +233,6 @@
 	ot->idname = "MESH_OT_primitive_circle_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_circle_exec;
 	ot->poll = ED_operator_scene_editable;
 
@@ -259,6 +259,7 @@
 	const bool cap_end = (end_fill_type != 0);
 	const bool cap_tri = (end_fill_type == 2);
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
 	obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Cylinder"), &dia, mat, &was_editmode, loc, rot, layer);
 	em = BKE_editmesh_from_object(obedit);
@@ -290,7 +291,6 @@
 	ot->idname = "MESH_OT_primitive_cylinder_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_cylinder_exec;
 	ot->poll = ED_operator_scene_editable;
 
@@ -319,6 +319,7 @@
 	const bool cap_end = (end_fill_type != 0);
 	const bool cap_tri = (end_fill_type == 2);
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
 	obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Cone"), &dia, mat, &was_editmode, loc, rot, layer);
 	em = BKE_editmesh_from_object(obedit);
@@ -347,7 +348,6 @@
 	ot->idname = "MESH_OT_primitive_cone_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_cone_exec;
 	ot->poll = ED_operator_scene_editable;
 
@@ -376,6 +376,7 @@
 	bool was_editmode;
 	unsigned int layer;
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
 	obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Grid"), &dia, mat, &was_editmode, loc, rot, layer);
 	em = BKE_editmesh_from_object(obedit);
@@ -403,7 +404,6 @@
 	ot->idname = "MESH_OT_primitive_grid_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_grid_exec;
 	ot->poll = ED_operator_scene_editable;
 
@@ -428,6 +428,7 @@
 	unsigned int layer;
 	bool was_editmode;
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, &is_view_aligned);
 	if (!is_view_aligned)
 		rot[0] += (float)M_PI / 2.0f;
@@ -460,7 +461,6 @@
 	ot->idname = "MESH_OT_primitive_monkey_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_monkey_exec;
 	ot->poll = ED_operator_scene_editable;
 
@@ -480,6 +480,7 @@
 	bool was_editmode;
 	unsigned int layer;
 
+	WM_operator_view3d_unit_defaults(C, op);
 	ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
 	obedit = make_prim_init(C, CTX_DATA_(BLF_I18NCONTEXT_ID_MESH, "Sphere"), &dia, mat, &was_editmode, loc, rot, layer);
 	em = BKE_editmesh_from_object(obedit);
@@ -508,7 +509,6 @@
 	ot->idname = "MESH_OT_primitive_uv_sphere_add";
 
 	/* api callbacks */
-	ot->invoke = WM_operator_view3d_distance_invoke;
 	ot->exec = add_primitive_uvsphere_exec;

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list