[Bf-blender-cvs] [112fa4f312e] temp-vse-preview-transform: Merge changes from transform_gizmos - these patches can't be developped separately anymore
Richard Antalik
noreply at git.blender.org
Fri Sep 10 11:40:18 CEST 2021
Commit: 112fa4f312ebfc5e550d4bcffc6e5ec280c91de6
Author: Richard Antalik
Date: Mon Sep 6 21:16:40 2021 +0200
Branches: temp-vse-preview-transform
https://developer.blender.org/rB112fa4f312ebfc5e550d4bcffc6e5ec280c91de6
Merge changes from transform_gizmos - these patches can't be developped separately anymore
===================================================================
M release/scripts/presets/keyconfig/keymap_data/blender_default.py
M release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M source/blender/editors/space_sequencer/space_sequencer.c
M source/blender/editors/transform/transform_convert_sequencer_image.c
M source/blender/editors/transform/transform_gizmo_2d.c
M source/blender/sequencer/SEQ_iterator.h
M source/blender/sequencer/intern/iterator.c
M source/blender/sequencer/intern/render.c
===================================================================
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 44688136f9f..1e1bef6588b 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -7045,6 +7045,39 @@ def km_sequencer_editor_tool_blade(_params):
)
+def km_sequencer_editor_tool_move(params):
+ return (
+ "Sequencer Tool: Move",
+ {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
+ {"items": [
+ ("transform.translate", {"type": params.tool_tweak, "value": 'ANY'},
+ {"properties": [("sequencer_image", True), ("release_confirm", True)]}),
+ ]},
+ )
+
+
+def km_sequencer_editor_tool_rotate(params):
+ return (
+ "Sequencer Tool: Rotate",
+ {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
+ {"items": [
+ ("transform.rotate", {"type": params.tool_tweak, "value": 'ANY'},
+ {"properties": [("sequencer_image", True), ("release_confirm", True)]}),
+ ]},
+ )
+
+
+def km_sequencer_editor_tool_scale(params):
+ return (
+ "Sequencer Tool: Scale",
+ {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
+ {"items": [
+ ("transform.resize", {"type": params.tool_tweak, "value": 'ANY'},
+ {"properties": [("sequencer_image", True), ("release_confirm", True)]}),
+ ]},
+ )
+
+
# ------------------------------------------------------------------------------
# Full Configuration
@@ -7298,6 +7331,9 @@ def generate_keymaps(params=None):
km_sequencer_editor_tool_select_box(params),
km_sequencer_editor_tool_blade(params),
km_sequencer_editor_tool_generic_sample(params),
+ km_sequencer_editor_tool_scale(params),
+ km_sequencer_editor_tool_rotate(params),
+ km_sequencer_editor_tool_move(params),
]
# ------------------------------------------------------------------------------
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index c5191e80aef..b968a661c09 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -2439,6 +2439,52 @@ class _defs_sequencer_generic:
keymap="Sequencer Tool: Sample",
)
+ @ToolDef.from_fn
+ def translate():
+ return dict(
+ idname="builtin.move",
+ label="Move",
+ icon="ops.transform.translate",
+ widget="SEQUENCER_GGT_gizmo2d_translate",
+ operator="transform.translate",
+ keymap="Sequencer Tool: Move",
+ )
+
+ @ToolDef.from_fn
+ def rotate():
+ return dict(
+ idname="builtin.rotate",
+ label="Rotate",
+ icon="ops.transform.rotate",
+ widget="SEQUENCER_GGT_gizmo2d_rotate",
+ operator="transform.rotate",
+ keymap="Sequencer Tool: Rotate",
+ )
+
+ @ToolDef.from_fn
+ def scale():
+ return dict(
+ idname="builtin.scale",
+ label="Scale",
+ icon="ops.transform.resize",
+ widget="SEQUENCER_GGT_gizmo2d_resize",
+ operator="transform.resize",
+ keymap="Sequencer Tool: Scale",
+ )
+
+ @ToolDef.from_fn
+ def transform():
+ return dict(
+ idname="builtin.transform",
+ label="Transform",
+ description=(
+ "Supports any combination of grab, rotate, and scale at once"
+ ),
+ icon="ops.transform.transform",
+ widget="SEQUENCER_GGT_gizmo2d",
+ # No keymap default action, only for gizmo!
+ )
+
class _defs_sequencer_select:
@ToolDef.from_fn
@@ -3030,7 +3076,12 @@ class SEQUENCER_PT_tools_active(ToolSelectPanelHelper, Panel):
None: [
],
'PREVIEW': [
+ # *_tools_select,
_defs_sequencer_generic.sample,
+ _defs_sequencer_generic.translate,
+ _defs_sequencer_generic.rotate,
+ _defs_sequencer_generic.scale,
+ _defs_sequencer_generic.transform,
*_tools_annotate,
],
'SEQUENCER': [
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index 2a6e49edfb6..bdc4a9d2386 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -42,6 +42,7 @@
#include "ED_screen.h"
#include "ED_space_api.h"
+#include "ED_transform.h"
#include "ED_view3d.h"
#include "ED_view3d_offscreen.h" /* Only for sequencer view3d drawing callback. */
@@ -480,11 +481,72 @@ static void SEQUENCER_GGT_navigate(wmGizmoGroupType *gzgt)
VIEW2D_GGT_navigate_impl(gzgt, "SEQUENCER_GGT_navigate");
}
+static void SEQUENCER_GGT_gizmo2d(wmGizmoGroupType *gzgt)
+{
+ gzgt->name = "Sequencer Transform Gizmo";
+ gzgt->idname = "SEQUENCER_GGT_gizmo2d";
+
+ gzgt->flag |= (WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP |
+ WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK);
+
+ gzgt->gzmap_params.spaceid = SPACE_SEQ;
+ gzgt->gzmap_params.regionid = RGN_TYPE_PREVIEW;
+
+ ED_widgetgroup_gizmo2d_xform_callbacks_set(gzgt);
+}
+
+static void SEQUENCER_GGT_gizmo2d_translate(wmGizmoGroupType *gzgt)
+{
+ gzgt->name = "Sequencer Translate Gizmo";
+ gzgt->idname = "SEQUENCER_GGT_gizmo2d_translate";
+
+ gzgt->flag |= (WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP |
+ WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK);
+
+ gzgt->gzmap_params.spaceid = SPACE_SEQ;
+ gzgt->gzmap_params.regionid = RGN_TYPE_PREVIEW;
+
+ ED_widgetgroup_gizmo2d_xform_no_cage_callbacks_set(gzgt);
+}
+
+static void SEQUENCER_GGT_gizmo2d_resize(wmGizmoGroupType *gzgt)
+{
+ gzgt->name = "Sequencer Transform Gizmo Resize";
+ gzgt->idname = "SEQUENCER_GGT_gizmo2d_resize";
+
+ gzgt->flag |= (WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP |
+ WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK);
+
+ gzgt->gzmap_params.spaceid = SPACE_SEQ;
+ gzgt->gzmap_params.regionid = RGN_TYPE_PREVIEW;
+
+ ED_widgetgroup_gizmo2d_resize_callbacks_set(gzgt);
+}
+
+static void SEQUENCER_GGT_gizmo2d_rotate(wmGizmoGroupType *gzgt)
+{
+ gzgt->name = "Sequencer Transform Gizmo Resize";
+ gzgt->idname = "SEQUENCER_GGT_gizmo2d_rotate";
+
+ gzgt->flag |= (WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP |
+ WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK);
+
+ gzgt->gzmap_params.spaceid = SPACE_SEQ;
+ gzgt->gzmap_params.regionid = RGN_TYPE_PREVIEW;
+
+ ED_widgetgroup_gizmo2d_rotate_callbacks_set(gzgt);
+}
+
static void sequencer_gizmos(void)
{
wmGizmoMapType *gzmap_type = WM_gizmomaptype_ensure(
&(const struct wmGizmoMapType_Params){SPACE_SEQ, RGN_TYPE_PREVIEW});
+ WM_gizmogrouptype_append(SEQUENCER_GGT_gizmo2d);
+ WM_gizmogrouptype_append(SEQUENCER_GGT_gizmo2d_translate);
+ WM_gizmogrouptype_append(SEQUENCER_GGT_gizmo2d_resize);
+ WM_gizmogrouptype_append(SEQUENCER_GGT_gizmo2d_rotate);
+
WM_gizmogrouptype_append_and_link(gzmap_type, SEQUENCER_GGT_navigate);
}
@@ -741,6 +803,8 @@ static void sequencer_preview_region_listener(const wmRegionListenerParams *para
ARegion *region = params->region;
wmNotifier *wmn = params->notifier;
+ WM_gizmomap_tag_refresh(region->gizmo_map);
+
/* Context changes. */
switch (wmn->category) {
case NC_GPENCIL:
diff --git a/source/blender/editors/transform/transform_convert_sequencer_image.c b/source/blender/editors/transform/transform_convert_sequencer_image.c
index 55d69da1a2d..28ae7914b2f 100644
--- a/source/blender/editors/transform/transform_convert_sequencer_image.c
+++ b/source/blender/editors/transform/transform_convert_sequencer_image.c
@@ -96,11 +96,12 @@ void createTransSeqImageData(TransInfo *t)
{
Editing *ed = SEQ_editing_get(t->scene, false);
ListBase *seqbase = SEQ_active_seqbase_get(ed);
- SeqCollection *selected_strips = SEQ_query_selected_strips(seqbase);
+ SeqCollection *strips = Seq_query_rendered_strips(seqbase, t->scene->r.cfra, 0);
+ SEQ_filter_selected_strips(strips);
- const int count = SEQ_collection_len(selected_strips);
+ const int count = SEQ_collection_len(strips);
if (ed == NULL || count == 0) {
- SEQ_collection_free(selected_strips);
+ SEQ_collection_free(strips);
return;
}
@@ -112,13 +113,13 @@ void createTransSeqImageData(TransInfo *t)
TransDataSeq *tdseq = MEM_callocN(tc->data_len * sizeof(TransDataSeq), "TransSeq TransDataSeq");
Sequence *seq;
- SEQ_ITERATOR_FOREACH (seq, selected_strips) {
+ SEQ_ITERATOR_FOREACH (seq, strips) {
SeqToTransData(seq, td++, td2d++, tdseq++, 0);
SeqToTransData(seq, td++, td2d++, tdseq++, 1);
SeqToTransData(seq, td++, td2d++, tdseq++, 2);
}
- SEQ_collection_free(selected_strips);
+ SEQ_collection_free(strips);
}
void recalcData_sequencer_image(TransInfo *t)
diff --git a/source/blender/editors/transform/transform_gizmo_2d.c b/source/blender/editors/transform/transform_gizmo_2d.c
index 0b677e2560b..ce71c50a5ed 100644
--- a/source/blender/editors/transform/transform_gizmo_2d.c
+++ b/source/blender/editors/transform/transform_gizmo_2d.c
@@ -49,6 +49,10 @@
#include "ED_screen.h"
#include "ED_uvedit.h"
+#include "SEQ_iterator.h"
+#include "SEQ_sequencer.h"
+#include "SEQ_time.h"
+
#include "transform.h" /* own include */
/* -------------------------------------------------------------------- */
@@ -234,6 +238,32 @@ static bool gizmo2d_calc_bounds(const bContext *C, float *r_center, float *r_min
return changed;
}
+static float gizmo2d_calc_rotation(const bContext *C)
+{
+ ScrArea *area = CTX_wm_area(C);
+ if (area->spacetype != SPACE_SEQ) {
+ return 0.0f;
+ }
+
+ Scene *scene = CTX_data_scene(C);
+ Editing *ed = SEQ_editing_get(scene, false);
+ ListBase *seqbase = SEQ_active_seqbase_get(ed);
+ SeqCollection *strips = Seq_query_rendered_strips(seqbase, scene->r.cfra, 0);
+ SEQ_filter_selected_strips(strips);
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list