X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fpluginset.C;h=86bb4b6687290e24f3904ec637b021481f466cfc;hb=e854f4eeda320c2626780afdac9546f482de54b1;hp=a0d3b6c2b494aa8976853ffabacd29206c5989aa;hpb=15b020d5c21b2cc5545227f7c092f06086666b4a;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/pluginset.C b/cinelerra-5.1/cinelerra/pluginset.C index a0d3b6c2..86bb4b66 100644 --- a/cinelerra-5.1/cinelerra/pluginset.C +++ b/cinelerra-5.1/cinelerra/pluginset.C @@ -44,13 +44,6 @@ PluginSet::~PluginSet() } -PluginSet& PluginSet::operator=(PluginSet& plugins) -{ -printf("PluginSet::operator= 1\n"); - copy_from(&plugins); - return *this; -} - void PluginSet::copy_from(PluginSet *src) { while(last) delete last; @@ -59,6 +52,8 @@ void PluginSet::copy_from(PluginSet *src) Plugin *new_plugin; append(new_plugin = (Plugin*)create_edit()); new_plugin->copy_from(current); +// update gui_id when copying edl + new_plugin->gui_id = current->gui_id; } this->record = src->record; } @@ -442,6 +437,13 @@ int PluginSet::optimize() int result = 1; Plugin *current_edit; +// trim plugins before position 0 + while( first && first->startproject+first->length < 0 ) + delete first; + if( first && first->startproject < 0 ) { + first->length += first->startproject; + first->startproject = 0; + } // Delete keyframes out of range for(current_edit = (Plugin*)first;