[Bf-blender-cvs] [dd9d12bf45e] master: VSE: Paste strips after playhead by default

Peter Fog noreply at git.blender.org
Tue Dec 15 22:30:26 CET 2020


Commit: dd9d12bf45edac33fb414b9d7e4a0a716b2fa4d0
Author: Peter Fog
Date:   Tue Dec 15 22:01:58 2020 +0100
Branches: master
https://developer.blender.org/rBdd9d12bf45edac33fb414b9d7e4a0a716b2fa4d0

VSE: Paste strips after playhead by default

Paste copied strips after playhead, because this is more intuitive.

Previous functionality is still available by enabling "Keep Offset"
property, or under shortcut Ctrl+Shift+V.

Reviewed By: ISS

Differential Revision: https://developer.blender.org/D9734

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

M	release/scripts/presets/keyconfig/keymap_data/blender_default.py
M	source/blender/editors/space_sequencer/sequencer_edit.c

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

diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 5a5957b8bf1..86b2f6f9005 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -2501,6 +2501,8 @@ def km_sequencer(params):
         ("sequencer.delete", {"type": 'DEL', "value": 'PRESS'}, None),
         ("sequencer.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
         ("sequencer.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+        ("sequencer.paste", {"type": 'V', "value": 'PRESS', "ctrl": True, "shift": True},
+        {"properties": [("keep_offset", True)]}),
         ("sequencer.images_separate", {"type": 'Y', "value": 'PRESS'}, None),
         ("sequencer.meta_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
         ("sequencer.meta_make", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 184f821d411..1e3529a9607 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -2527,7 +2527,7 @@ void ED_sequencer_deselect_all(Scene *scene)
   SEQ_CURRENT_END;
 }
 
-static int sequencer_paste_exec(bContext *C, wmOperator *UNUSED(op))
+static int sequencer_paste_exec(bContext *C, wmOperator *op)
 {
   Main *bmain = CTX_data_main(C);
   Scene *scene = CTX_data_scene(C);
@@ -2536,8 +2536,25 @@ static int sequencer_paste_exec(bContext *C, wmOperator *UNUSED(op))
   int ofs;
   Sequence *iseq, *iseq_first;
 
+  if (BLI_listbase_count(&seqbase_clipboard) == 0) {
+    BKE_report(op->reports, RPT_INFO, "No strips to paste");
+    return OPERATOR_CANCELLED;
+  }
+
   ED_sequencer_deselect_all(scene);
-  ofs = scene->r.cfra - seqbase_clipboard_frame;
+  if (RNA_boolean_get(op->ptr, "keep_offset")) {
+    ofs = scene->r.cfra - seqbase_clipboard_frame;
+  }
+  else {
+    int min_seq_startdisp = INT_MAX;
+    LISTBASE_FOREACH (Sequence *, seq, &seqbase_clipboard) {
+      if (seq->startdisp < min_seq_startdisp) {
+        min_seq_startdisp = seq->startdisp;
+      }
+    }
+    /* Paste strips after playhead. */
+    ofs = scene->r.cfra - min_seq_startdisp;
+  }
 
   /* Copy strips, temporarily restoring pointers to actual data-blocks. This
    * must happen on the clipboard itself, so that copying does user counting
@@ -2585,6 +2602,11 @@ void SEQUENCER_OT_paste(wmOperatorType *ot)
 
   /* Flags. */
   ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+  /* Properties. */
+  PropertyRNA *prop = RNA_def_boolean(
+      ot->srna, "keep_offset", false, "Keep Offset", "Keep strip offset to playhead when pasting");
+  RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 }
 
 /** \} */



More information about the Bf-blender-cvs mailing list