X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedl.C;h=d639106d1c3a8fb98d0d8abec89e72d52614d465;hb=01c087cf8b098c6cd424cb2cb3778f3b1317fa21;hp=dbda78c10612085bb960d17727ae60bf2fe7b4a3;hpb=5d8a7826b0f80f00622e46baf75453995a76e343;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/edl.C b/cinelerra-5.1/cinelerra/edl.C index dbda78c1..d639106d 100644 --- a/cinelerra-5.1/cinelerra/edl.C +++ b/cinelerra-5.1/cinelerra/edl.C @@ -212,7 +212,7 @@ int EDL::read_xml(FileXML *file, uint32_t load_flags) file->tag.title_is("/CLIP_EDL") || file->tag.title_is("/NESTED_EDL") || file->tag.title_is("/VWINDOW_EDL") ) { - result = 1; + break; } else if( file->tag.title_is("CLIPBOARD") ) { @@ -664,14 +664,19 @@ void EDL::create_nested(EDL *nested) void EDL::overwrite_clip(EDL *clip) { int folder = folder_no; - char clip_title[BCTEXTLEN]; strcpy(clip_title, local_session->clip_title); - char clip_notes[BCTEXTLEN]; strcpy(clip_notes, local_session->clip_notes); - char clip_icon[BCSTRLEN]; strcpy(clip_icon, local_session->clip_icon); + char clip_title[BCTEXTLEN], clip_notes[BCTEXTLEN], clip_icon[BCSTRLEN]; + if( parent_edl ) { + strcpy(clip_title, local_session->clip_title); + strcpy(clip_notes, local_session->clip_notes); + strcpy(clip_icon, local_session->clip_icon); + } copy_all(clip); folder_no = folder; - strcpy(local_session->clip_title, clip_title); - strcpy(local_session->clip_notes, clip_notes); - strcpy(local_session->clip_icon, clip_icon); + if( parent_edl ) { + strcpy(local_session->clip_title, clip_title); + strcpy(local_session->clip_notes, clip_notes); + strcpy(local_session->clip_icon, clip_icon); + } if( !clip_icon[0] ) return; // discard old clip icon to reconstruct char clip_icon_path[BCTEXTLEN]; @@ -1920,7 +1925,7 @@ EDL *EDL::selected_edits_to_clip(int packed, } int64_t clip_start_pos = startproject; Edit *clip_edit = new Edit(new_edl, new_track); - clip_edit->copy_from(edit); + clip_edit->clone_from(edit); clip_edit->startproject = startproject; startproject += clip_edit->length; new_track->edits->append(clip_edit); @@ -2050,7 +2055,7 @@ void EDL::paste_edits(EDL *clip, Track *first_track, double position, int overwr if( overwrite ) track->edits->clear(start, end); Edit *dst = track->edits->insert_new_edit(start); - dst->copy_from(edit); + dst->clone_from(edit); dst->startproject = start; dst->is_selected = 1; while( (dst=dst->next) != 0 ) @@ -2129,6 +2134,7 @@ void EDL::paste_edits(EDL *clip, Track *first_track, double position, int overwr Plugin *new_plugin = dst_plugin_set->insert_plugin(plugin->title, start, end-start, plugin->plugin_type, &plugin->shared_location, (KeyFrame*)plugin->keyframes->default_auto, 0); + new_plugin->on = plugin->on; KeyFrame *keyframe = (KeyFrame*)plugin->keyframes->first; for( ; keyframe; keyframe=(KeyFrame*)keyframe->next ) { int64_t keyframe_pos = pos + keyframe->position;