fix mask vframe setup, add unshared vframe constructor
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindowedit.C
index a149b27557fcdfe755678808719e33d5e6cfe1fc..168b7c9320245bde8d47445ac7ea860803e5712a 100644 (file)
@@ -520,7 +520,26 @@ void MWindow::cut()
 {
        double start = edl->local_session->get_selectionstart();
        double end = edl->local_session->get_selectionend();
-       cut(start, end);
+       if( EQUIV(start,end) )
+               blade(start);
+       else
+               cut(start, end);
+}
+
+void MWindow::blade(double position)
+{
+       undo->update_undo_before();
+       edl->blade(position);
+       edl->optimize();
+       save_backup();
+       undo->update_undo_after(_("blade"), LOAD_EDITS | LOAD_TIMEBAR);
+       restart_brender();
+       update_plugin_guis();
+       gui->update(1, 2, 1, 1, 1, 1, 0);
+       cwindow->update(1, 0, 0, 0, 1);
+       awindow->gui->async_update_assets();
+       cwindow->playback_engine->que->
+               send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
 }
 
 void MWindow::cut(double start, double end, double new_position)
@@ -545,6 +564,7 @@ void MWindow::cut(double start, double end, double new_position)
        update_plugin_guis();
        gui->update(1, 2, 1, 1, 1, 1, 0);
        cwindow->update(1, 0, 0, 0, 1);
+       awindow->gui->async_update_assets();
        cwindow->playback_engine->que->
                send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
 }
@@ -894,6 +914,8 @@ void MWindow::finish_modify_handles()
        sync_parameters(CHANGE_EDL);
        update_plugin_guis();
        gui->update(1, 2, 1, 1, 1, 1, 0);
+// label list can be modified
+       awindow->gui->async_update_assets();
        cwindow->update(1, 0, 0, 0, 1);
 }
 
@@ -1092,7 +1114,7 @@ void MWindow::overwrite(EDL *source)
        }
 
        source->copy(src_start, src_start + overwrite_len,
-               1, 0, 0, &file, "", 1);
+               0, 0, 0, &file, "", 1);
 
 // HACK around paste_edl get_start/endselection on its own
 // so we need to clear only when not using both io points
@@ -1330,7 +1352,7 @@ int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
        if( !new_edls->total ) return 0;
 
 //PRINT_TRACE
-//     double original_length = edl->tracks->total_playable_length();
+//     double original_length = edl->tracks->total_length();
 //     double original_preview_end = edl->local_session->preview_end;
 //PRINT_TRACE
 
@@ -1344,6 +1366,7 @@ int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
                edl = new EDL;
                edl->create_objects();
                edl->copy_session(new_edls->values[0]);
+               edl->copy_mixers(new_edls->values[0]);
                gui->mainmenu->update_toggles(0);
                gui->unlock_window();
                gwindow->gui->update_toggles(1);
@@ -1605,7 +1628,7 @@ int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
 // Fix preview range
 //     if( EQUIV(original_length, original_preview_end) )
 //     {
-//             edl->local_session->preview_end = edl->tracks->total_playable_length();
+//             edl->local_session->preview_end = edl->tracks->total_length();
 //     }
 
 // Start examining next batch of index files
@@ -1909,6 +1932,7 @@ void MWindow::redo_entry(BC_WindowBase *calling_window_gui)
        save_backup();
        update_plugin_states();
        update_plugin_guis();
+       awindow->gui->async_update_assets();
        restart_brender();
        gui->update(1, 2, 1, 1, 1, 1, 1);
        cwindow->update(1, 1, 1, 1, 1);
@@ -2173,6 +2197,7 @@ void MWindow::trim_selection()
        update_plugin_guis();
        gui->update(1, 2, 1, 1, 1, 1, 0);
        cwindow->update(1, 0, 0, 0, 1);
+       awindow->gui->async_update_assets();
        restart_brender();
        cwindow->playback_engine->que->
                send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);