X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowedit.C;h=24763f75af6fc12d1b82917086f38620c97d496b;hb=163923953049a5be18026801eba4fcec8bc87c07;hp=4e5ec2886b7a617577c261a83f9c9350672746b6;hpb=08284a3a20b2cc8606dd90c3c147e2c31d301a61;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index 4e5ec288..24763f75 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -1608,7 +1608,7 @@ void MWindow::paste_silence() if( edl->session->frame_rate > 0 ) end += 1./edl->session->frame_rate; } - undo->update_undo_before(); + undo->update_undo_before(_("silence"), this); edl->paste_silence(start, end, edl->session->labels_follow_edits, edl->session->plugins_follow_edits, @@ -1881,6 +1881,7 @@ void MWindow::redo_entry(BC_WindowBase *calling_window_gui) update_plugin_guis(); gui->update(1, 2, 1, 1, 1, 1, 1); + gui->update_proxy_toggle(); gui->unlock_window(); cwindow->update(1, 1, 1, 1, 1); cwindow->gui->unlock_window(); @@ -1893,9 +1894,6 @@ void MWindow::redo_entry(BC_WindowBase *calling_window_gui) } } - if( calling_window_gui != gui ) - gui->unlock_window(); - awindow->gui->async_update_assets(); cwindow->refresh_frame(CHANGE_ALL); @@ -2076,6 +2074,7 @@ void MWindow::save_clip(EDL *new_edl, const char *txt) "clip_%02d%02d%02d-%02d%02d%02d.png", dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday, dtm.tm_hour, dtm.tm_min, dtm.tm_sec); + new_edl->awindow_folder = AW_CLIP_FOLDER; edl->update_assets(new_edl); int cur_x, cur_y; gui->get_abs_cursor(cur_x, cur_y, 0); @@ -2209,6 +2208,7 @@ void MWindow::undo_entry(BC_WindowBase *calling_window_gui) update_plugin_guis(); gui->update(1, 2, 1, 1, 1, 1, 1); + gui->update_proxy_toggle(); gui->unlock_window(); cwindow->update(1, 1, 1, 1, 1); cwindow->gui->unlock_window(); @@ -2221,9 +2221,6 @@ void MWindow::undo_entry(BC_WindowBase *calling_window_gui) } } - if( calling_window_gui != gui ) - gui->unlock_window(); - awindow->gui->async_update_assets(); cwindow->refresh_frame(CHANGE_ALL); @@ -2231,21 +2228,33 @@ void MWindow::undo_entry(BC_WindowBase *calling_window_gui) } -void MWindow::new_folder(const char *new_folder) +void MWindow::new_folder(const char *new_folder, int is_clips) { undo->update_undo_before(); - edl->new_folder(new_folder); + if( edl->new_folder(new_folder, is_clips) ) { + MainError::show_error(_("create new folder failed")); + } undo->update_undo_after(_("new folder"), LOAD_ALL); awindow->gui->async_update_assets(); } void MWindow::delete_folder(char *folder) { -// undo->update_undo_after(_("delete folder"), LOAD_ALL); + undo->update_undo_before(); + if( edl->delete_folder(folder) < 0 ) { + MainError::show_error(_("delete folder failed")); + } + undo->update_undo_after(_("del folder"), LOAD_ALL); + awindow->gui->async_update_assets(); } void MWindow::select_point(double position) { + gui->unlock_window(); + gui->stop_drawing(); + cwindow->stop_playback(0); + gui->lock_window("MWindow::select_point"); + edl->local_session->set_selectionstart(position); edl->local_session->set_selectionend(position); @@ -2400,11 +2409,13 @@ void MWindow::speed_before() int MWindow::speed_after(int done) { int result = 0; - if( speed_edl && done >= 0 ) - result = normalize_speed(speed_edl, edl); - if( done ) { - speed_edl->remove_user(); - speed_edl = 0; + if( speed_edl ) { + if( done >= 0 ) + result = normalize_speed(speed_edl, edl); + if( done != 0 ) { + speed_edl->remove_user(); + speed_edl = 0; + } } return result; }