repeat "Scan" button in plugin sub-menus
[ardour.git] / gtk2_ardour / rc_option_editor.cc
index 6e947440410f92633ea8c217677cf912318c6103..da0175893f2a3111c043a23b7ccb261a2a6b3fe6 100644 (file)
@@ -66,7 +66,7 @@
 #include "keyboard.h"
 #include "theme_manager.h"
 #include "ui_config.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace Gtk;
@@ -1362,7 +1362,7 @@ public:
                edit_box->set_spacing(3);
                _box->pack_start (*edit_box, false, false);
                edit_box->show ();
-               
+
                Label* label = manage (new Label);
                label->set_text (_("Click to edit the settings for selected protocol ( it must be ENABLED first ):"));
                edit_box->pack_start (*label, false, false);
@@ -1432,7 +1432,7 @@ private:
                else
                        edit_button->set_sensitive (false);
        }
-       
+
        void view_changed (TreeModel::Path const &, TreeModel::iterator const & i)
        {
                TreeModel::Row r = *i;
@@ -1854,6 +1854,13 @@ RCOptionEditor::RCOptionEditor ()
         , _rc_config (Config)
        , _mixer_strip_visibility ("mixer-element-visibility")
 {
+       XMLNode* node = ARDOUR_UI::instance()->preferences_settings();
+       if (node) {
+               /* gcc4 complains about ambiguity with Gtk::Widget::set_state
+                  (Gtk::StateType) here !!!
+               */
+               Tabbable::set_state (*node, Stateful::loading_state_version);
+       }
 
        UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &RCOptionEditor::parameter_changed));
 
@@ -2337,7 +2344,7 @@ if (!Profile->get_mixbus()) {
        rsas->add(ExistingNewlyCreatedBoth, _("existing selection and newly-created regions"));
 
        add_option (_("Editor"), rsas);
-       
+
        add_option (_("Editor/Waveforms"), new OptionEditorHeading (_("Waveforms")));
 
 if (!Profile->get_mixbus()) {
@@ -2879,6 +2886,9 @@ if (!ARDOUR::Profile->get_mixbus()) {
 
 #if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT)
        add_option (_("Plugins/VST"), new OptionEditorHeading (_("VST")));
+       add_option (_("Plugins/VST"),
+                       new RcActionButton (_("Scan for Plugins"),
+                               sigc::mem_fun (*this, &RCOptionEditor::plugin_scan_refresh)));
 
        bo = new BoolOption (
                        "discover-vst-on-start",
@@ -2944,7 +2954,11 @@ if (!ARDOUR::Profile->get_mixbus()) {
 #endif
 
 #ifdef AUDIOUNIT_SUPPORT
+
        add_option (_("Plugins/Audio Unit"), new OptionEditorHeading (_("Audio Unit")));
+       add_option (_("Plugins/Audio Unit"),
+                       new RcActionButton (_("Scan for Plugins"),
+                               sigc::mem_fun (*this, &RCOptionEditor::plugin_scan_refresh)));
 
        bo = new BoolOption (
                        "discover-audio-units",
@@ -3044,6 +3058,14 @@ if (!ARDOUR::Profile->get_mixbus()) {
        add_option (S_("Preferences|GUI"), bgo);
 #endif
 
+       add_option (S_("Preferences|GUI"),
+            new BoolOption (
+                    "use-wm-visibility",
+                    _("Use Window Manager/Desktop visibility information"),
+                    sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_use_wm_visibility),
+                    sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_wm_visibility)
+                    ));
+
        add_option (S_("Preferences|GUI"),
             new BoolOption (
                     "widget-prelight",
@@ -3339,6 +3361,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
        parameter_changed ("send-ltc");
        parameter_changed ("sync-source");
        parameter_changed ("use-monitor-bus");
+       parameter_changed ("open-gui-after-adding-plugin");
 }
 
 void
@@ -3473,3 +3496,11 @@ RCOptionEditor::use_own_window (bool and_fill_it)
 
        return win;
 }
+
+XMLNode&
+RCOptionEditor::get_state ()
+{
+       XMLNode* node = new XMLNode (X_("Preferences"));
+       node->add_child_nocopy (Tabbable::get_state());
+       return *node;
+}