X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fclippopup.C;h=677b9bedf4ff4a6cb17b859492f2ba6b03d7ea30;hb=86bd203ac1fc29d93f63d13e2979468f06bdc3a2;hp=db11a158ec7cf06493224dcb31c5fa7bd5bb62bc;hpb=4a90ef3ae46465c0634f81916b79e279e4bd9961;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/clippopup.C b/cinelerra-5.1/cinelerra/clippopup.C index db11a158..677b9bed 100644 --- a/cinelerra-5.1/cinelerra/clippopup.C +++ b/cinelerra-5.1/cinelerra/clippopup.C @@ -219,21 +219,18 @@ ClipPopupViewWindow::~ClipPopupViewWindow() 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; isession->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; isession->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; } @@ -253,10 +250,14 @@ int ClipPopupCopy::handle_event() 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); @@ -449,6 +450,10 @@ int ClipPopupNest::handle_event() 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); @@ -506,7 +511,6 @@ int ClipPopupUnNest::handle_event() } else edl->clips.append(new_clip); - edl->clips.add_clip(new_clip); popup->gui->async_update_assets(); } }