[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