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,
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();
}
}
- if( calling_window_gui != gui )
- gui->unlock_window();
-
awindow->gui->async_update_assets();
cwindow->refresh_frame(CHANGE_ALL);
"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);
void MWindow::to_clip(EDL *edl, const char *txt, int all)
{
FileXML file;
- double start, end;
+ LocalSession *src = edl->local_session;
gui->lock_window("MWindow::to_clip 1");
- start = all ? 0 :
- edl->local_session->get_selectionstart();
- end = all ? edl->tracks->total_length() :
- edl->local_session->get_selectionend();
-
+ double start = all ? 0 :
+ src->inpoint_valid() ? src->get_inpoint() :
+ src->outpoint_valid() ? 0 : src->get_selectionstart();
+ double end = all ? edl->tracks->total_length() :
+ src->outpoint_valid() ? src->get_outpoint() :
+ src->inpoint_valid() ? edl->tracks->total_length() :
+ src->get_selectionend();
if( EQUIV(end, start) ) {
start = 0;
end = edl->tracks->total_length();
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();
}
}
- if( calling_window_gui != gui )
- gui->unlock_window();
-
awindow->gui->async_update_assets();
cwindow->refresh_frame(CHANGE_ALL);
}
-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);
edl->rescale_proxy(orig_scale, new_scale);
}
-void MWindow::set_proxy(int use_scaler, int new_scale, int auto_scale, int beep,
- ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
-{
- edl->set_proxy(use_scaler, new_scale, auto_scale, beep, orig_assets, proxy_assets);
-}
-
void MWindow::add_proxy(int use_scaler,
ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
{
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;
}