+void MWindow::selected_edits_to_clipboard(int packed)
+{
+ EDL *new_edl = edl->selected_edits_to_clip(packed, 0, 0,
+ edl->session->labels_follow_edits,
+ edl->session->autos_follow_edits,
+ edl->session->plugins_follow_edits);
+ if( !new_edl ) return;
+ FileXML file;
+ new_edl->copy(COPY_EDL, &file, "", 1);
+ const char *file_string = file.string();
+ long file_length = strlen(file_string);
+ gui->to_clipboard(file_string, file_length, BC_PRIMARY_SELECTION);
+ gui->to_clipboard(file_string, file_length, SECONDARY_SELECTION);
+ new_edl->remove_user();
+}
+
+void MWindow::paste_clipboard(Track *first_track, double position, int overwrite,
+ int edit_edits, int edit_labels, int edit_autos, int edit_plugins)
+{
+ int64_t len = gui->clipboard_len(BC_PRIMARY_SELECTION);
+ if( !len ) return;
+ char *string = new char[len];
+ gui->from_clipboard(string, len, BC_PRIMARY_SELECTION);
+ FileXML file;
+ file.read_from_string(string);
+ delete [] string;
+ EDL *clip = new EDL();
+ clip->create_objects();
+ if( !clip->load_xml(&file, LOAD_ALL) ) {
+ undo_before();
+ edl->paste_edits(clip, first_track, position, overwrite,
+ edit_edits, edit_labels, edit_autos, edit_plugins);
+ save_backup();
+ undo_after(_("paste clip"), LOAD_ALL);
+ restart_brender();
+ cwindow->refresh_frame(CHANGE_EDL);
+
+ update_plugin_guis();
+ gui->update(1, NORMAL_DRAW, 1, 0, 0, 0, 0);
+ }
+ clip->remove_user();
+}
+
+void MWindow::move_group(EDL *group, Track *first_track, double position, int overwrite)
+{
+ undo_before();
+// lockout timebar labels update
+// labels can be deleted with tooltip repeater running
+ cwindow->gui->lock_window("Tracks::move_group");
+
+ ArrayList<Edit *>edits;
+ edl->tracks->get_selected_edits(&edits);
+ if( edl->session->labels_follow_edits )
+ edl->delete_edit_labels(&edits, 0);
+ edl->delete_edits(&edits, 0);
+ edl->paste_edits(group, first_track, position, overwrite, 1,
+ edl->session->labels_follow_edits,
+ edl->session->autos_follow_edits,
+ edl->session->plugins_follow_edits);
+ cwindow->gui->timebar->update(1);
+ cwindow->gui->unlock_window();
+// big debate over whether to do this, must either clear selected, or no tweaking
+// edl->tracks->clear_selected_edits();
+
+ save_backup();
+ undo_after(_("move group"), LOAD_ALL);
+ restart_brender();
+ cwindow->refresh_frame(CHANGE_EDL);
+
+ update_plugin_guis();
+ gui->update(1, NORMAL_DRAW, 1, 0, 0, 0, 0);
+}
+