+void PluginDialog::clear_selection()
+{
+ standalone_list->set_all_selected(&standalone_data, 0);
+ standalone_list->draw_items(1);
+ shared_list->set_all_selected(&shared_data, 0);
+ shared_list->draw_items(1);
+ module_list->set_all_selected(&module_data, 0);
+ module_list->draw_items(1);
+ selected_available = -1;
+ selected_shared = -1;
+ selected_modules = -1;
+ thread->plugin = 0;
+ thread->plugin_type = PLUGIN_NONE;
+}
+
+void PluginDialog::apply()
+{
+ if( selected_available >= 0 ) {
+ attach_new(selected_available);
+ }
+ else if( selected_shared >= 0 ) {
+ attach_shared(selected_shared);
+ }
+ else if( selected_modules >= 0 ) {
+ attach_module(selected_modules);
+ }
+
+ thread->apply();
+}
+
+void PluginDialogThread::apply()
+{
+ if( mwindow->edl )
+ mwindow->edl->session->single_standalone = single_standalone;
+ if(plugin_type) {
+ mwindow->gui->lock_window("PluginDialogThread::run 3");
+ mwindow->undo->update_undo_before();
+ if( is_mainmenu ) {
+ mwindow->insert_effect(plugin_title, &shared_location,
+ data_type, plugin_type, single_standalone);
+ }
+ else {
+ if( plugin ) {
+ if( mwindow->edl->tracks->plugin_exists(plugin) ) {
+ plugin->change_plugin(plugin_title,
+ &shared_location, plugin_type);
+ }
+ }
+ else {
+ if( mwindow->edl->tracks->track_exists(track) ) {
+ mwindow->insert_effect(plugin_title, &shared_location,
+ track, 0, 0, 0, plugin_type);
+ }
+ }
+ }
+
+ mwindow->save_backup();
+ mwindow->undo->update_undo_after(_("attach effect"), LOAD_EDITS | LOAD_PATCHES);
+ mwindow->restart_brender();
+ mwindow->update_plugin_states();
+ mwindow->sync_parameters(CHANGE_EDL);
+ mwindow->gui->update(1, NORMAL_DRAW, 0, 0, 1, 0, 0);
+ mwindow->gui->unlock_window();
+ }
+ plugin = 0;
+}
+
+PluginDialogApply::PluginDialogApply(PluginDialog *dialog, int x, int y)
+ : BC_GenericButton(x, y, _("Apply"))
+{
+ this->dialog = dialog;
+}
+
+int PluginDialogApply::handle_event()
+{
+ dialog->apply();
+ dialog->clear_selection();
+ return 1;
+}
+