Exciting new Alt/h help key provided by sge (Georgy) with many thanks!
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / keyframegui.C
index f590571d8be69916cd24958de728134fd6c8dc9a..74356b54ff0a89aa6986333e19f7bd6b023fe7ea 100644 (file)
@@ -208,7 +208,9 @@ void KeyFrameThread::handle_done_event(int result)
 {
 // Apply the preset
        if( !result ) {
+               get_gui()->lock_window("KeyFrameThread::handle_done_event");
                apply_preset(preset_text, is_factory);
+               get_gui()->unlock_window();
        }
 }
 
@@ -361,9 +363,16 @@ void KeyFrameThread::apply_preset(const char *title, int is_factory)
                mwindow->undo->update_undo_before();
 
 #ifdef USE_KEYFRAME_SPANNING
-               KeyFrame keyframe;
-               presets_db->load_preset(plugin_title, title, &keyframe, is_factory);
-               plugin->keyframes->update_parameter(&keyframe);
+               ArrayList<PluginServer*> &plugindb = *mwindow->plugindb;
+               int k = plugindb.size();
+               while( --k>=0 && strcmp(plugindb[k]->title, plugin->title) );
+               if( k >= 0 ) {
+                       PluginServer server(*plugindb[k]);
+                       server.open_plugin(0, mwindow->preferences, mwindow->edl, plugin);
+                       KeyFrame keyframe(mwindow->edl, plugin->keyframes);
+                       presets_db->load_preset(plugin_title, title, &keyframe, is_factory);
+                       server.apply_keyframe(plugin, &keyframe);
+               }
 #else
                KeyFrame *keyframe = plugin->get_keyframe();
                presets_db->load_preset(plugin_title, title, keyframe, is_factory);
@@ -466,6 +475,8 @@ KeyFrameWindow::KeyFrameWindow(MWindow *mwindow, KeyFrameThread *thread,
 {
        this->mwindow = mwindow;
        this->thread = thread;
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Saved Plugin Presets");
 }
 
 void KeyFrameWindow::create_objects()
@@ -819,6 +830,6 @@ int KeyFramePresetsOK::keypress_event()
                        }
                }
        }
-       return 0;
+       return context_help_check_and_show();
 }