[Bf-blender-cvs] [4fc138c1f5d] temp-vse-transform-overwrite: Revert ovelap mode property back to enum

Richard Antalik noreply at git.blender.org
Wed Aug 11 17:52:34 CEST 2021


Commit: 4fc138c1f5dd4e3a4c5c1e857822d5e2e1899ad2
Author: Richard Antalik
Date:   Wed Aug 11 15:50:40 2021 +0200
Branches: temp-vse-transform-overwrite
https://developer.blender.org/rB4fc138c1f5dd4e3a4c5c1e857822d5e2e1899ad2

Revert ovelap mode property back to enum

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

M	release/scripts/startup/bl_ui/space_sequencer.py
M	source/blender/blenloader/intern/versioning_300.c
M	source/blender/editors/transform/transform_convert_sequencer.c
M	source/blender/editors/transform/transform_mode_edge_seq_slide.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/sequencer/intern/sequencer.c

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

diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 80fd47c0207..b2abed3e3b3 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -152,7 +152,7 @@ class SEQUENCER_HT_header(Header):
             tool_settings = context.tool_settings
             sequencer_tool_settings = tool_settings.sequencer_tool_settings
             row = layout.row(align=True)
-            row.prop(sequencer_tool_settings, "use_overwrite_mode", text="Overwrite Mode")
+            row.prop(sequencer_tool_settings, "overlap_mode")
             row = layout.row(align=True)
             row.prop(tool_settings, "use_snap_sequencer", text="")
             sub = row.row(align=True)
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index 862ef99fca5..fcc4f604f27 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -775,5 +775,10 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
         }
       }
     }
+
+    LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
+      SequencerToolSettings *sequencer_tool_settings = SEQ_tool_settings_ensure(scene);
+      sequencer_tool_settings->overlap_mode = SEQ_OVERLAP_SHUFFLE;
+    }
   }
 }
diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c
index 61162106272..9f50bdc5d93 100644
--- a/source/blender/editors/transform/transform_convert_sequencer.c
+++ b/source/blender/editors/transform/transform_convert_sequencer.c
@@ -483,7 +483,7 @@ static void seq_transform_handle_overwrite_trim(TransInfo *t,
   /* Trim all non effects, that have influence on effect length which is overlapping. */
   Sequence *seq;
   SEQ_ITERATOR_FOREACH (seq, targets) {
-    if (SEQ_effect_get_num_inputs(seq->type) > 0) {
+    if ((seq->type & SEQ_TYPE_EFFECT) != 0 && SEQ_effect_get_num_inputs(seq->type) > 0) {
       continue;
     }
     if (is_partial_overlap(transformed, seq, &overlap_side)) {
@@ -554,16 +554,18 @@ static void seq_transform_handle_overlap_shuffle(TransInfo *t, SeqCollection *tr
 static void seq_transform_handle_overlap(TransInfo *t, SeqCollection *transformed_strips)
 {
   ListBase *seqbasep = seqbase_active_get(t);
-  eSeqOverlapMode overlap_mode = SEQ_tool_settings_overlap_mode_get(t->scene);
+  const eSeqOverlapMode overlap_mode = SEQ_tool_settings_overlap_mode_get(t->scene);
 
-  if ((overlap_mode & SEQ_OVERLAP_OVERWRITE) == 0 && t->flag & T_ALT_TRANSFORM) {
-    seq_transform_handle_expand_to_fit(t, transformed_strips);
-  }
-  else if ((overlap_mode & SEQ_OVERLAP_OVERWRITE) != 0) {
-    seq_transform_handle_overwrite(t, transformed_strips);
-  }
-  else {
-    seq_transform_handle_overlap_shuffle(t, transformed_strips);
+  switch (overlap_mode) {
+    case SEQ_OVERLAP_EXPAND:
+      seq_transform_handle_expand_to_fit(t, transformed_strips);
+      break;
+    case SEQ_OVERLAP_OVERWRITE:
+      seq_transform_handle_overwrite(t, transformed_strips);
+      break;
+    case SEQ_OVERLAP_SHUFFLE:
+      seq_transform_handle_overlap_shuffle(t, transformed_strips);
+      break;
   }
 
   if (seq_transform_check_strip_effects(transformed_strips)) {
diff --git a/source/blender/editors/transform/transform_mode_edge_seq_slide.c b/source/blender/editors/transform/transform_mode_edge_seq_slide.c
index b79047db6d9..fb70d04a530 100644
--- a/source/blender/editors/transform/transform_mode_edge_seq_slide.c
+++ b/source/blender/editors/transform/transform_mode_edge_seq_slide.c
@@ -54,24 +54,6 @@
 /** \name Transform (Sequencer Slide)
  * \{ */
 
-static eRedrawFlag seq_slide_handleEvent(struct TransInfo *t, const wmEvent *event)
-{
-  BLI_assert(t->mode == TFM_SEQ_SLIDE);
-
-  eSeqOverlapMode overlap_mode = SEQ_tool_settings_overlap_mode_get(t->scene);
-  if ((overlap_mode & SEQ_OVERLAP_OVERWRITE) != 0) {
-    return TREDRAW_NOTHING;
-  }
-
-  const wmKeyMapItem *kmi = t->custom.mode.data;
-  if (kmi && event->type == kmi->type && event->val == kmi->val) {
-    /* Allows the "Expand to Fit" effect to be enabled as a toggle. */
-    t->flag ^= T_ALT_TRANSFORM;
-    return TREDRAW_HARD;
-  }
-  return TREDRAW_NOTHING;
-}
-
 static void headerSeqSlide(TransInfo *t, const float val[2], char str[UI_MAX_DRAW_STR])
 {
   char tvec[NUM_STR_REP_LEN * 3];
@@ -86,23 +68,6 @@ static void headerSeqSlide(TransInfo *t, const float val[2], char str[UI_MAX_DRA
 
   ofs += BLI_snprintf_rlen(
       str + ofs, UI_MAX_DRAW_STR - ofs, TIP_("Sequence Slide: %s%s"), &tvec[0], t->con.text);
-
-  eSeqOverlapMode overlap_mode = SEQ_tool_settings_overlap_mode_get(t->scene);
-  if ((overlap_mode & SEQ_OVERLAP_OVERWRITE) != 0) {
-    return;
-  }
-
-  ofs += BLI_snprintf_rlen(str + ofs, UI_MAX_DRAW_STR - ofs, ", (", &tvec[0], t->con.text);
-
-  const wmKeyMapItem *kmi = t->custom.mode.data;
-  if (kmi) {
-    ofs += WM_keymap_item_to_string(kmi, false, str + ofs, UI_MAX_DRAW_STR - ofs);
-  }
-
-  ofs += BLI_snprintf_rlen(str + ofs,
-                           UI_MAX_DRAW_STR - ofs,
-                           TIP_(" or Alt) Expand to fit %s"),
-                           WM_bool_as_string((t->flag & T_ALT_TRANSFORM) != 0));
 }
 
 static void applySeqSlideValue(TransInfo *t, const float val[2])
@@ -161,7 +126,6 @@ static void applySeqSlide(TransInfo *t, const int UNUSED(mval[2]))
 void initSeqSlide(TransInfo *t)
 {
   t->transform = applySeqSlide;
-  t->handleEvent = seq_slide_handleEvent;
   t->tsnap.applySnap = transform_snap_sequencer_apply_translate;
 
   initMouseInputMode(t, &t->mouse, INPUT_VECTOR);
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 28913027547..7800e7f9efe 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1347,7 +1347,9 @@ typedef struct SequencerToolSettings {
 } SequencerToolSettings;
 
 typedef enum eSeqOverlapMode {
-  SEQ_OVERLAP_OVERWRITE = (1 << 0),
+  SEQ_OVERLAP_EXPAND,
+  SEQ_OVERLAP_OVERWRITE,
+  SEQ_OVERLAP_SHUFFLE,
 } eSeqOverlapMode;
 
 typedef enum eSeqImageFitMethod {
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index fbcbd59a1a7..1607f9dedd8 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -3504,6 +3504,21 @@ static void rna_def_sequencer_tool_settings(BlenderRNA *brna)
       {0, NULL, 0, NULL, NULL},
   };
 
+  static const EnumPropertyItem scale_overlap_modes[] = {
+      {SEQ_OVERLAP_EXPAND, "EXPAND", 0, "Expand", "Move strips so transformed strips fits"},
+      {SEQ_OVERLAP_OVERWRITE,
+       "OVERWRITE",
+       0,
+       "Overwrite",
+       "Trim or split strips to resolve overlap"},
+      {SEQ_OVERLAP_SHUFFLE,
+       "SHUFFLE",
+       0,
+       "Shuffle",
+       "Move transformed strips to nearest free space to resolve overlap"},
+      {0, NULL, 0, NULL, NULL},
+  };
+
   srna = RNA_def_struct(brna, "SequencerToolSettings", NULL);
   RNA_def_struct_path_func(srna, "rna_SequencerToolSettings_path");
   RNA_def_struct_ui_text(srna, "Sequencer Tool Settings", "");
@@ -3544,8 +3559,8 @@ static void rna_def_sequencer_tool_settings(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Snapping Distance", "Maximum distance for snapping in pixels");
 
   /* Transform overlap handling. */
-  prop = RNA_def_property(srna, "use_overwrite_mode", PROP_BOOLEAN, PROP_NONE);
-  RNA_def_property_boolean_sdna(prop, NULL, "overlap_mode", SEQ_OVERLAP_OVERWRITE);
+  prop = RNA_def_property(srna, "overlap_mode", PROP_ENUM, PROP_NONE);
+  RNA_def_property_enum_items(prop, scale_overlap_modes);
   RNA_def_property_ui_text(prop, "Overlap Mode", "How to resolve overlap after transformation");
 }
 
diff --git a/source/blender/sequencer/intern/sequencer.c b/source/blender/sequencer/intern/sequencer.c
index 07bef29cda8..00f6ebc203a 100644
--- a/source/blender/sequencer/intern/sequencer.c
+++ b/source/blender/sequencer/intern/sequencer.c
@@ -314,6 +314,8 @@ SequencerToolSettings *SEQ_tool_settings_init(void)
   tool_settings->snap_mode = SEQ_SNAP_TO_STRIPS | SEQ_SNAP_TO_CURRENT_FRAME |
                              SEQ_SNAP_TO_STRIP_HOLD;
   tool_settings->snap_distance = 15;
+  tool_settings->overlap_mode = SEQ_OVERLAP_SHUFFLE;
+
   return tool_settings;
 }



More information about the Bf-blender-cvs mailing list