Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_toolbar.py6
-rw-r--r--source/blender/editors/mesh/editmesh_extrude_spin.c2
-rw-r--r--source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c22
3 files changed, 18 insertions, 12 deletions
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