int ClipPopupViewWindow::handle_event()
{
-// Find window with nothing
- VWindow *vwindow = mwindow->get_viewer(1);
-
-// TODO: create new vwindow or change current vwindow
- vwindow->gui->lock_window("ClipPopupView::handle_event");
-
- if( mwindow->session->drag_assets->total )
- vwindow->change_source(
- mwindow->session->drag_assets->values[0]);
- else
- if( mwindow->session->drag_clips->total )
- vwindow->change_source(
- mwindow->session->drag_clips->values[0]);
-
- vwindow->gui->unlock_window();
+ for( int i=0; i<mwindow->session->drag_assets->size(); ++i ) {
+ VWindow *vwindow = mwindow->get_viewer(1);
+ vwindow->gui->lock_window("ClipPopupView::handle_event 1");
+ vwindow->change_source(mwindow->session->drag_assets->get(i));
+ vwindow->gui->unlock_window();
+ }
+ for( int i=0; i<mwindow->session->drag_clips->size(); ++i ) {
+ VWindow *vwindow = mwindow->get_viewer(1);
+ vwindow->gui->lock_window("ClipPopupView::handle_event 2");
+ vwindow->change_source(mwindow->session->drag_clips->get(i));
+ vwindow->gui->unlock_window();
+ }
return 1;
}
MWindowGUI *gui = mwindow->gui;
gui->lock_window("ClipPopupCopy::handle_event");
if( mwindow->session->drag_clips->total > 0 ) {
- FileXML file;
EDL *edl = mwindow->session->drag_clips->values[0];
+ EDL *copy_edl = new EDL; // no parent or assets wont be copied
+ copy_edl->create_objects();
+ copy_edl->copy_all(edl);
+ FileXML file;
double start = 0, end = edl->tracks->total_length();
- edl->copy(start, end, 1, &file, "", 1);
+ copy_edl->copy(start, end, 1, &file, "", 1);
+ copy_edl->remove_user();
const char *file_string = file.string();
long file_length = strlen(file_string);
gui->to_clipboard(file_string, file_length, SECONDARY_SELECTION);
dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday,
dtm.tm_hour, dtm.tm_min, dtm.tm_sec);
clip_edl->set_path(path);
+ sprintf(new_clip->local_session->clip_icon,
+ "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_clip->set_path(path);
new_clip->to_nested(clip_edl);
int idx = edl->clips.number_of(clip);
}
else
edl->clips.append(new_clip);
- edl->clips.add_clip(new_clip);
popup->gui->async_update_assets();
}
}