if( playback_engine->is_playing_back )
stop_playback(1);
- gui->lock_window("VWindow::change_source 2");
// if(asset && this->asset &&
// asset->id == this->asset->id &&
// asset == this->asset) return;
+ gui->lock_window("VWindow::change_source 2");
//printf("VWindow::change_source %d\n", __LINE__);
if(asset)
mwindow->asset_to_edl(this->edl, asset);
else
- mwindow->edl_to_nested(this->edl, nested_edl);
+ this->edl->to_nested(nested_edl);
// Update GUI
gui->change_source(this->edl, title);
if( playback_engine->is_playing_back )
stop_playback(1);
- gui->lock_window("VWindow::change_source 3");
//printf("VWindow::change_source %d %p\n", __LINE__, edl);
// EDLs are identical
// if(edl && mwindow->edl->vwindow_edl &&
// edl->id == mwindow->edl->vwindow_edl->id) return;
if(edl && get_edl() && edl->id == get_edl()->id) return;
+ gui->lock_window("VWindow::change_source 3");
+
delete_source(1, 0);
if(edl)
}
}
-void VWindow::copy()
+void VWindow::copy(int all)
{
EDL *edl = get_edl();
if(edl)
{
- double start = edl->local_session->get_selectionstart();
- double end = edl->local_session->get_selectionend();
+ double start = all ? 0 :
+ edl->local_session->get_selectionstart();
+ double end = all ? edl->tracks->total_length() :
+ edl->local_session->get_selectionend();
+ EDL *copy_edl = new EDL; // no parent or assets wont be copied
+ copy_edl->create_objects();
+ copy_edl->copy_all(edl);
FileXML file;
- edl->copy(start,
- end,
- 0,
- 0,
- 0,
- &file,
- "",
- 1);
+ copy_edl->copy(start, end, 0, &file, "", 1);
+ copy_edl->remove_user();
const char *file_string = file.string();
long file_length = strlen(file_string);
mwindow->gui->lock_window();