[Bf-blender-cvs] [c14949e9ed1] blender2.8: Gizmo: move spin tool axis option into gizmo-group

Campbell Barton noreply at git.blender.org
Tue Oct 2 09:10:43 CEST 2018


Commit: c14949e9ed1b88252453f21e4d0150597ad95ea5
Author: Campbell Barton
Date:   Tue Oct 2 17:05:13 2018 +1000
Branches: blender2.8
https://developer.blender.org/rBc14949e9ed1b88252453f21e4d0150597ad95ea5

Gizmo: move spin tool axis option into gizmo-group

Having this setting here wasn't correct (the operator ignores it).

===================================================================

M	release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M	source/blender/editors/mesh/editmesh_extrude_spin.c
M	source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 9920b5407c4..48ec56c3927 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -606,7 +606,8 @@ class _defs_edit_mesh:
         def draw_settings(context, layout, tool):
             props = tool.operator_properties("mesh.spin")
             layout.prop(props, "steps")
-            layout.prop(props, "gizmo_axis")
+            props = tool.gizmo_group_properties("MESH_GGT_spin")
+            layout.prop(props, "axis")
 
         return dict(
             text="Spin",
@@ -624,7 +625,8 @@ class _defs_edit_mesh:
         def draw_settings(context, layout, tool):
             props = tool.operator_properties("mesh.spin")
             layout.prop(props, "steps")
-            layout.prop(props, "gizmo_axis")
+            props = tool.gizmo_group_properties("MESH_GGT_spin")
+            layout.prop(props, "axis")
 
         return dict(
             text="Spin (Duplicate)",
diff --git a/source/blender/editors/mesh/editmesh_extrude_spin.c b/source/blender/editors/mesh/editmesh_extrude_spin.c
index 3ad1e60d361..d99caaf8380 100644
--- a/source/blender/editors/mesh/editmesh_extrude_spin.c
+++ b/source/blender/editors/mesh/editmesh_extrude_spin.c
@@ -215,8 +215,6 @@ void MESH_OT_spin(wmOperatorType *ot)
 	WM_gizmogrouptype_append(MESH_GGT_spin);
 #ifdef USE_GIZMO
 	WM_gizmogrouptype_append(MESH_GGT_spin_redo);
-	prop = RNA_def_enum_flag(ot->srna, "gizmo_axis", rna_enum_axis_flag_xyz_items, (1 << 2), "Axis", "");
-	RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
 #endif
 }
 
diff --git a/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c b/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c
index 5212d36a5a2..18bd5771866 100644
--- a/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c
+++ b/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c
@@ -33,6 +33,10 @@
 #include "WM_message.h"
 #include "WM_toolsystem.h"
 
+#include "RNA_define.h"
+#include "RNA_access.h"
+#include "RNA_enum_types.h"
+
 #include "ED_gizmo_utils.h"
 #include "ED_screen.h"
 #include "ED_view3d.h"
@@ -81,7 +85,7 @@ typedef struct GizmoGroupData_SpinInit {
 	/* We could store more vars here! */
 	struct {
 		wmOperatorType *ot_spin;
-		PropertyRNA *ot_spin_gizmo_axis_prop;
+		PropertyRNA *gzgt_axis_prop;
 		float orient_mat[3][3];
 #ifdef USE_SELECT_CENTER
 		float select_center[3];
@@ -191,7 +195,7 @@ static void gizmo_mesh_spin_init_setup(const bContext *UNUSED(C), wmGizmoGroup *
 #endif
 
 	ggd->data.ot_spin = WM_operatortype_find("MESH_OT_spin", true);
-	ggd->data.ot_spin_gizmo_axis_prop = RNA_struct_type_find_property(ggd->data.ot_spin->srna, "gizmo_axis");
+	ggd->data.gzgt_axis_prop = RNA_struct_type_find_property(gzgroup->type->srna, "axis");
 }
 
 static void gizmo_mesh_spin_init_refresh(const bContext *C, wmGizmoGroup *gzgroup);
@@ -266,8 +270,8 @@ static void gizmo_mesh_spin_init_draw_prepare(
 	{
 		PointerRNA ptr;
 		bToolRef *tref = WM_toolsystem_ref_from_context((bContext *)C);
-		WM_toolsystem_ref_properties_ensure_from_operator(tref, ggd->data.ot_spin, &ptr);
-		const int axis_flag = RNA_property_enum_get(&ptr, ggd->data.ot_spin_gizmo_axis_prop);
+		WM_toolsystem_ref_properties_ensure_from_gizmo_group(tref, gzgroup->type, &ptr);
+		const int axis_flag = RNA_property_enum_get(&ptr, ggd->data.gzgt_axis_prop);
 		for (int i = 0; i < 4; i++) {
 			bool hide = (axis_flag & (1 << i)) == 0;
 			wmGizmo *gz = ggd->gizmos.xyz_view[i];
@@ -410,8 +414,8 @@ static void gizmo_mesh_spin_init_refresh(const bContext *C, wmGizmoGroup *gzgrou
 	{
 		PointerRNA ptr;
 		bToolRef *tref = WM_toolsystem_ref_from_context((bContext *)C);
-		WM_toolsystem_ref_properties_ensure_from_operator(tref, ggd->data.ot_spin, &ptr);
-		const int axis_flag = RNA_property_enum_get(&ptr, ggd->data.ot_spin_gizmo_axis_prop);
+		WM_toolsystem_ref_properties_ensure_from_gizmo_group(tref, gzgroup->type, &ptr);
+		const int axis_flag = RNA_property_enum_get(&ptr, ggd->data.gzgt_axis_prop);
 		for (int i = 0; i < ARRAY_SIZE(ggd->gizmos.icon_button); i++) {
 			for (int j = 0; j < 2; j++) {
 				wmGizmo *gz = ggd->gizmos.icon_button[i][j];
@@ -457,8 +461,8 @@ static void gizmo_mesh_spin_init_message_subscribe(
 	WM_msg_subscribe_rna_params(
 	        mbus,
 	        &(const wmMsgParams_RNA){
-	            .ptr = (PointerRNA){.type = ggd->data.ot_spin->srna},
-	            .prop = ggd->data.ot_spin_gizmo_axis_prop,
+	            .ptr = (PointerRNA){.type = gzgroup->type->srna},
+	            .prop = ggd->data.gzgt_axis_prop,
 	        },
 	        &msg_sub_value_gz_tag_refresh, __func__);
 
@@ -480,6 +484,8 @@ void MESH_GGT_spin(struct wmGizmoGroupType *gzgt)
 	gzgt->message_subscribe = gizmo_mesh_spin_init_message_subscribe;
 	gzgt->draw_prepare = gizmo_mesh_spin_init_draw_prepare;
 	gzgt->invoke_prepare = gizmo_mesh_spin_init_invoke_prepare;
+
+	RNA_def_enum_flag(gzgt->srna, "axis", rna_enum_axis_flag_xyz_items, (1 << 2), "Axis", "");
 }
 
 #undef INIT_SCALE_BASE



More information about the Bf-blender-cvs mailing list