[Bf-blender-cvs] [27d89ad6243] temp-vse-snapping: Add snap to hold offset

Richard Antalik noreply at git.blender.org
Mon Jun 21 09:13:23 CEST 2021


Commit: 27d89ad6243fbe986c2004a5e76f1c2b147f6850
Author: Richard Antalik
Date:   Sat Jun 19 11:06:12 2021 +0200
Branches: temp-vse-snapping
https://developer.blender.org/rB27d89ad6243fbe986c2004a5e76f1c2b147f6850

Add snap to hold offset

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

M	release/scripts/startup/bl_ui/space_sequencer.py
M	source/blender/editors/transform/transform_snap_sequencer.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_scene.c

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

diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index dbaae5de233..37e178dc334 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -2286,6 +2286,7 @@ class SEQUENCER_PT_snapping(Panel):
         col.label(text="Snap To")
         col.prop(tool_settings, "snap_to_strip_start")
         col.prop(tool_settings, "snap_to_strip_end")
+        col.prop(tool_settings, "snap_to_strip_hold_offset")
         col.prop(tool_settings, "snap_to_playhead")
         col.separator()
         col.prop(tool_settings, "snap_ignore_muted")
@@ -2299,7 +2300,7 @@ class SEQUENCER_PT_snapping(Panel):
 
         col.label(text="Snap Settings")
         col.prop(tool_settings, "snap_threshold", slider=True)
-        col.prop(tool_settings, "snap_sensitivity", slider=True)
+        #col.prop(tool_settings, "snap_sensitivity", slider=True)
         col.separator()
 
 
diff --git a/source/blender/editors/transform/transform_snap_sequencer.c b/source/blender/editors/transform/transform_snap_sequencer.c
index a956141d1b4..8e34d11d5bb 100644
--- a/source/blender/editors/transform/transform_snap_sequencer.c
+++ b/source/blender/editors/transform/transform_snap_sequencer.c
@@ -216,6 +216,9 @@ static int seq_get_snap_target_points_count(TransInfo *t,
   if (tool_settings->transform_flag & SEQ_SNAP_TO_STRIP_END) {
     count++;
   }
+  if (tool_settings->transform_flag & SEQ_SNAP_TO_STRIP_HOLD) {
+    count += 2;
+  }
 
   count *= SEQ_collection_count(snap_targets);
 
@@ -260,6 +263,13 @@ static void seq_snap_target_points_build(TransInfo *t,
       snap_data->target_snap_points[i] = seq->enddisp;
       i++;
     }
+    if (tool_settings->transform_flag & SEQ_SNAP_TO_STRIP_HOLD) {
+      const int content_start = min_ii(seq->enddisp, seq->start);
+      const int content_end = max_ii(seq->startdisp, seq->start + seq->len);
+      snap_data->target_snap_points[i] = content_start;
+      snap_data->target_snap_points[i + 1] = content_end;
+      i += 2;
+    }
   }
   BLI_assert(i <= snap_data->target_snap_point_count);
   qsort(snap_data->target_snap_points, snap_data->target_snap_point_count, sizeof(int), cmp_fn);
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 712a4521c5e..c586b064ff0 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1357,6 +1357,7 @@ typedef enum eSeqTransformFlag {
   SEQ_SNAP_TO_STRIP_START = (1 << 1),
   SEQ_SNAP_TO_STRIP_END = (1 << 2),
   SEQ_SNAP_TO_PLAYHEAD = (1 << 3),
+  SEQ_SNAP_TO_STRIP_HOLD = (1 << 12),
   SEQ_SNAP_IGNORE_MUTED = (1 << 4),
   SEQ_SNAP_IGNORE_SOUND = (1 << 5),
 
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index cd2343afca9..1dcf076691a 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -3553,6 +3553,11 @@ static void rna_def_sequencer_tool_settings(BlenderRNA *brna)
   RNA_def_property_boolean_default(prop, true);
   RNA_def_property_ui_text(prop, "Snap to End", "Snap to end of strips");
 
+  prop = RNA_def_property(srna, "snap_to_strip_hold_offset", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "transform_flag", SEQ_SNAP_TO_STRIP_HOLD);
+  RNA_def_property_boolean_default(prop, true);
+  RNA_def_property_ui_text(prop, "Snap to Hold Offset", "Snap to strip hold offset");
+
   prop = RNA_def_property(srna, "snap_to_playhead", PROP_BOOLEAN, PROP_NONE);
   RNA_def_property_boolean_sdna(prop, NULL, "transform_flag", SEQ_SNAP_TO_PLAYHEAD);
   RNA_def_property_boolean_default(prop, true);



More information about the Bf-blender-cvs mailing list