[Bf-blender-cvs] [14884cda1ff] master: Gizmo: move transform to a persistent option
Campbell Barton
noreply at git.blender.org
Sat Apr 13 20:58:31 CEST 2019
Commit: 14884cda1ff5677cacff7a038efa5440f5e15a5c
Author: Campbell Barton
Date: Sat Apr 13 20:36:53 2019 +0200
Branches: master
https://developer.blender.org/rB14884cda1ff5677cacff7a038efa5440f5e15a5c
Gizmo: move transform to a persistent option
Based on feedback from animators, this is useful to keep as a view
option (as in 2.7x).
Now the transform gizmos can be enabled from the popover,
the tools still work for location/scale/rotation.
The transform tool has been removed.
See T63518
===================================================================
M release/scripts/presets/keyconfig/keymap_data/blender_default.py
M release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/blenkernel/BKE_scene.h
M source/blender/blenkernel/intern/scene.c
M source/blender/blenloader/intern/versioning_280.c
M source/blender/editors/include/ED_transform.h
M source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/editors/transform/transform_gizmo_3d.c
M source/blender/editors/transform/transform_ops.c
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesdna/DNA_view3d_types.h
M source/blender/makesrna/intern/rna_scene.c
M source/blender/makesrna/intern/rna_space.c
===================================================================
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index aa271d37ce3..8059d40bdf3 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -4385,6 +4385,15 @@ def km_transform_modal_map(_params):
return keymap
+def km_transform_gizmo(_params):
+ keymap = (
+ "Transform Gizmo Context",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": _template_items_gizmo_tweak_value()},
+ )
+ return keymap
+
+
def km_backdrop_transform_widget_tweak_modal_map(_params):
keymap = (
"Backdrop Transform Widget Tweak Modal Map",
@@ -6145,6 +6154,7 @@ def generate_keymaps(params=None):
# Gizmos.
km_gizmos(params),
+ km_transform_gizmo(params),
km_backdrop_transform_widget_tweak_modal_map(params),
km_backdrop_crop_widget(params),
km_backdrop_crop_widget_tweak_modal_map(params),
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 16bc3ad29fa..ed31a847933 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -77,7 +77,7 @@ class _template_widget:
props = tool.gizmo_group_properties("VIEW3D_GGT_xform_extrude")
layout.prop(props, "axis_type", expand=True)
- class TRANSFORM_GGT_gizmo:
+ class VIEW3D_GGT_xform_gizmo:
@staticmethod
def draw_settings_with_index(context, layout, index):
scene = context.scene
@@ -237,13 +237,13 @@ class _defs_transform:
@ToolDef.from_fn
def translate():
def draw_settings(context, layout, tool):
- _template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 1)
+ _template_widget.VIEW3D_GGT_xform_gizmo.draw_settings_with_index(context, layout, 1)
return dict(
idname="builtin.move",
label="Move",
# cursor='SCROLL_XY',
icon="ops.transform.translate",
- widget="TRANSFORM_GGT_gizmo",
+ widget="VIEW3D_GGT_xform_gizmo",
operator="transform.translate",
keymap="3D View Tool: Move",
draw_settings=draw_settings,
@@ -252,13 +252,13 @@ class _defs_transform:
@ToolDef.from_fn
def rotate():
def draw_settings(context, layout, tool):
- _template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 2)
+ _template_widget.VIEW3D_GGT_xform_gizmo.draw_settings_with_index(context, layout, 2)
return dict(
idname="builtin.rotate",
label="Rotate",
# cursor='SCROLL_XY',
icon="ops.transform.rotate",
- widget="TRANSFORM_GGT_gizmo",
+ widget="VIEW3D_GGT_xform_gizmo",
operator="transform.rotate",
keymap="3D View Tool: Rotate",
draw_settings=draw_settings,
@@ -267,13 +267,13 @@ class _defs_transform:
@ToolDef.from_fn
def scale():
def draw_settings(context, layout, tool):
- _template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 3)
+ _template_widget.VIEW3D_GGT_xform_gizmo.draw_settings_with_index(context, layout, 3)
return dict(
idname="builtin.scale",
label="Scale",
# cursor='SCROLL_XY',
icon="ops.transform.resize",
- widget="TRANSFORM_GGT_gizmo",
+ widget="VIEW3D_GGT_xform_gizmo",
operator="transform.resize",
keymap="3D View Tool: Scale",
draw_settings=draw_settings,
@@ -282,7 +282,7 @@ class _defs_transform:
@ToolDef.from_fn
def scale_cage():
def draw_settings(context, layout, tool):
- _template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 3)
+ _template_widget.VIEW3D_GGT_xform_gizmo.draw_settings_with_index(context, layout, 3)
return dict(
idname="builtin.scale_cage",
label="Scale Cage",
@@ -293,31 +293,6 @@ class _defs_transform:
draw_settings=draw_settings,
)
- @ToolDef.from_fn
- def transform():
- def draw_settings(context, layout, tool):
- if not layout.use_property_split:
- layout.label(text="Gizmos:")
- tool_settings = context.tool_settings
- layout.prop(tool_settings, "use_gizmo_mode")
-
- props = tool.gizmo_group_properties("TRANSFORM_GGT_gizmo")
- layout.prop(props, "drag_action")
-
- _template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 1)
-
- return dict(
- idname="builtin.transform",
- label="Transform",
- description=(
- "Supports any combination of grab, rotate & scale at once"
- ),
- icon="ops.transform.transform",
- widget="TRANSFORM_GGT_gizmo",
- keymap="3D View Tool: Transform",
- draw_settings=draw_settings,
- )
-
class _defs_view3d_select:
@@ -724,7 +699,7 @@ class _defs_edit_mesh:
props = tool.operator_properties("transform.shear")
layout.label(text="View Axis:")
layout.prop(props, "shear_axis", expand=True)
- _template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 2)
+ _template_widget.VIEW3D_GGT_xform_gizmo.draw_settings_with_index(context, layout, 2)
return dict(
idname="builtin.shear",
label="Shear",
@@ -1690,7 +1665,6 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
# for reuse
_tools_transform = (
- _defs_transform.transform,
_defs_transform.translate,
_defs_transform.rotate,
(
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 36fc0a38fcb..a3d5045135b 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -4775,6 +4775,7 @@ class VIEW3D_PT_gizmo_display(Panel):
def draw(self, context):
layout = self.layout
+ scene = context.scene
view = context.space_data
overlay = view.overlay
@@ -4784,8 +4785,14 @@ class VIEW3D_PT_gizmo_display(Panel):
col.active = view.show_gizmo
colsub = col.column()
colsub.prop(view, "show_gizmo_navigate", text="Navigate")
- colsub.prop(view, "show_gizmo_context", text="Active Object")
colsub.prop(view, "show_gizmo_tool", text="Active Tools")
+ colsub.prop(view, "show_gizmo_context", text="Active Object")
+
+ col.label(text="Transform Gizmos")
+ rowsub = col.row()
+ rowsub.active = view.show_gizmo_context
+ rowsub.prop(view, "show_gizmo_transform")
+ col.prop(scene.transform_orientation_slots[1], "type", text="")
class VIEW3D_PT_overlay(Panel):
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index 4e4883222cc..2ab2bd3fbe6 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -128,6 +128,7 @@ float BKE_scene_frame_get(const struct Scene *scene);
float BKE_scene_frame_get_from_ctime(const struct Scene *scene, const float frame);
void BKE_scene_frame_set(struct Scene *scene, double cfra);
+struct TransformOrientationSlot *BKE_scene_orientation_slot_get_from_flag(struct Scene *scene, int slot_index);
struct TransformOrientationSlot *BKE_scene_orientation_slot_get(struct Scene *scene, int flag);
void BKE_scene_orientation_slot_set_index(struct TransformOrientationSlot *orient_slot, int orientation);
int BKE_scene_orientation_slot_get_index(const struct TransformOrientationSlot *orient_slot);
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 644eb704655..630441265e1 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -651,7 +651,6 @@ void BKE_scene_init(Scene *sce)
sce->toolsettings->uvcalc_flag = UVCALC_TRANSFORM_CORRECT;
sce->toolsettings->unwrapper = 1;
sce->toolsettings->select_thresh = 0.01f;
- sce->toolsettings->gizmo_flag = SCE_GIZMO_SHOW_TRANSLATE | SCE_GIZMO_SHOW_ROTATE | SCE_GIZMO_SHOW_SCALE;
sce->toolsettings->selectmode = SCE_SELECT_VERTEX;
sce->toolsettings->uv_selectmode = UV_SELECT_VERTEX;
@@ -1347,24 +1346,28 @@ void BKE_scene_frame_set(struct Scene *scene, double cfra)
/** \name Scene Orientation Slots
* \{ */
-TransformOrientationSlot *BKE_scene_orientation_slot_get(Scene *scene, int flag)
+TransformOrientationSlot *BKE_scene_orientation_slot_get(Scene *scene, int slot_index)
{
- BLI_assert(flag && !(flag & ~(SCE_GIZMO_SHOW_TRANSLATE | SCE_GIZMO_SHOW_ROTATE | SCE_GIZMO_SHOW_SCALE)));
- int index = SCE_ORIENT_DEFAULT;
- if (flag & SCE_GIZMO_SHOW_TRANSLATE) {
- index = SCE_ORIENT_TRANSLATE;
+ if ((scene->orientation_slots[slot_index].flag & SELECT) == 0) {
+ slot_index = SCE_ORIENT_DEFAULT;
}
- else if (flag & SCE_GIZMO_SHOW_ROTATE) {
- index = SCE_ORIENT_ROTATE;
+ return &scene->orientation_slots[slot_index];
+}
+
+TransformOrientationSlot *BKE_scene_orientation_slot_get_from_flag(Scene *scene, int flag)
+{
+ BLI_assert(flag && !(flag & ~(V3D_GIZMO_TYPE_MASK_TRANSLATE | V3D_GIZMO_TYPE_MASK_ROTATE | V3D_GIZMO_TYPE_MASK_SCALE)));
+ int slot_index = SCE_ORIENT_DEFAULT;
+ if (flag & V3D_GIZMO_TYPE_MASK_TRANSLATE) {
+ slot_index = SCE_ORIENT_TRANSLATE;
}
- else if (flag & SCE_GIZMO_SHOW_SCALE) {
- index = SCE_ORIENT_SCALE;
+ else if (flag & V3D_GIZMO_TYPE_MASK_ROTATE) {
+ slot_index = SCE_ORIENT_ROTATE;
}
-
- if ((scene->orientation_slots[index].flag & SELECT) == 0) {
- index = SCE_ORIENT_DEFAULT;
+ else if (flag & V3D_GIZMO_TYPE_MASK_SCALE) {
+ slot_index = SCE_ORIENT_SCALE;
}
- return &scene->orientation_slots[index];
+ return BKE_s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list