X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowedit.C;h=458ced964e8f3418505b7d27ccf19adb80662dd0;hb=83b70dd60863377cb281e6be5206304e10373e30;hp=f75896d73ec01602ef76e31b5560aeecedd103b6;hpb=22c6251d37911a11e322bf7518e6a992ea0bb6c7;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index f75896d7..458ced96 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -426,11 +426,11 @@ void MWindow::clear_select() gui->draw_overlays(1); } -void MWindow::select_edits() +void MWindow::select_edits(int v) { double start = edl->local_session->get_selectionstart(); double end = edl->local_session->get_selectionend(); - edl->tracks->select_edits(start, end); + edl->tracks->select_edits(start, end, v); gui->draw_overlays(1); } @@ -779,7 +779,7 @@ void MWindow::insert_effects_canvas(Track *dest_track, double start, double leng ArrayList shared_locations; PluginSet *pluginset = session->pluginset_highlighted; - int gang = edl->session->gang_tracks != GANG_NONE ? 1 : 0; + int gang = edl->local_session->gang_tracks != GANG_NONE ? 1 : 0; int data_type = dest_track->data_type; int first_track = 1; @@ -841,8 +841,8 @@ void MWindow::insert_effect(char *title, SharedLocation *shared_location, SharedLocation shared_location_local; shared_location_local.copy_from(shared_location); int first_track = 1; - double start_pos = edl->local_session->get_selectionstart(1); - double end_pos = edl->local_session->get_selectionend(1); + double start_pos = edl->local_session->get_selectionstart(); + double end_pos = edl->local_session->get_selectionend(); for( ; current; current=NEXT ) { if( current->data_type != data_type ) continue; if( !current->is_armed() ) continue; @@ -960,6 +960,34 @@ void MWindow::finish_modify_handles() cwindow->update(1, 0, 0, 0, 1); } +int MWindow::modify_transnhandles() +{ + gui->reset_default_message(); + gui->default_message(); + Transition *transition = session->drag_transition; + if( !transition ) return 1; + int64_t length = transition->length; + Track *track = transition->edit->track; + int64_t start_pos = track->to_units(session->drag_start, 0); + int64_t end_pos = track->to_units(session->drag_position, 0); + length += end_pos - start_pos; + if( length < 0 ) length = 0; + if( length == transition->length ) return 0; + + undo_before(); + transition->length = length; + undo_after(_("trans handle"), LOAD_EDITS); + + save_backup(); + restart_brender(); + sync_parameters(CHANGE_EDL); + update_plugin_guis(); + gui->update(1, FORCE_REDRAW, 1, 1, 1, 1, 0); + cwindow->update(1, 0, 0, 0, 1); + + return 0; +} + void MWindow::match_output_size(Track *track) { undo_before(); @@ -1164,10 +1192,10 @@ void MWindow::move_plugins_down(PluginSet *plugin_set) sync_parameters(CHANGE_EDL); } -void MWindow::move_track_down(Track *track) +void MWindow::roll_track_down(Track *track) { undo_before(); - edl->tracks->move_track_down(track); + edl->tracks->roll_track_down(track); save_backup(); undo_after(_("move track down"), LOAD_ALL); @@ -1177,10 +1205,10 @@ void MWindow::move_track_down(Track *track) save_backup(); } -void MWindow::move_tracks_down() +void MWindow::roll_tracks_down() { undo_before(); - edl->tracks->move_tracks_down(); + edl->tracks->roll_tracks_down(); save_backup(); undo_after(_("move tracks down"), LOAD_ALL); @@ -1190,10 +1218,10 @@ void MWindow::move_tracks_down() save_backup(); } -void MWindow::move_track_up(Track *track) +void MWindow::roll_track_up(Track *track) { undo_before(); - edl->tracks->move_track_up(track); + edl->tracks->roll_track_up(track); save_backup(); undo_after(_("move track up"), LOAD_ALL); restart_brender(); @@ -1202,10 +1230,10 @@ void MWindow::move_track_up(Track *track) save_backup(); } -void MWindow::move_tracks_up() +void MWindow::roll_tracks_up() { undo_before(); - edl->tracks->move_tracks_up(); + edl->tracks->roll_tracks_up(); save_backup(); undo_after(_("move tracks up"), LOAD_ALL); restart_brender(); @@ -1214,10 +1242,10 @@ void MWindow::move_tracks_up() } -void MWindow::swap_track_down(Track *track) +void MWindow::move_track_down(Track *track) { undo_before(); - edl->tracks->swap_track_down(track); + edl->tracks->move_track_down(track); save_backup(); undo_after(_("swap track down"), LOAD_ALL); @@ -1227,10 +1255,10 @@ void MWindow::swap_track_down(Track *track) save_backup(); } -void MWindow::swap_tracks_down() +void MWindow::move_tracks_down() { undo_before(); - edl->tracks->swap_tracks_down(); + edl->tracks->move_tracks_down(); save_backup(); undo_after(_("swap tracks down"), LOAD_ALL); @@ -1240,10 +1268,10 @@ void MWindow::swap_tracks_down() save_backup(); } -void MWindow::swap_track_up(Track *track) +void MWindow::move_track_up(Track *track) { undo_before(); - edl->tracks->swap_track_up(track); + edl->tracks->move_track_up(track); save_backup(); undo_after(_("swap track up"), LOAD_ALL); restart_brender(); @@ -1252,10 +1280,10 @@ void MWindow::swap_track_up(Track *track) save_backup(); } -void MWindow::swap_tracks_up() +void MWindow::move_tracks_up() { undo_before(); - edl->tracks->swap_tracks_up(); + edl->tracks->move_tracks_up(); save_backup(); undo_after(_("swap tracks up"), LOAD_ALL); restart_brender(); @@ -1562,7 +1590,7 @@ int MWindow::paste_edls(ArrayList *new_edls, int load_mode, // Delete current project if( load_mode == LOADMODE_REPLACE || load_mode == LOADMODE_REPLACE_CONCATENATE ) { - reset_caches(); + reset_caches(1); edl->save_defaults(defaults); hide_plugins(); edl->Garbage::remove_user(); @@ -2841,6 +2869,10 @@ int MWindow::masters_to_mixers() for( ; track && !track->master; track=track->next ) mixer_last = track; Track *next_track = track; + if( !master_track->armed ) { + master_track = next_track; + continue; + } Mixer *master_mixer = 0; for( int i=0, n=edl->mixers.size(); iindex_in(edl->mixers[i]) >= 0 ) {