diff --git a/gtk2_ardour/plugin_manager_ui.cc b/gtk2_ardour/plugin_manager_ui.cc index a3715e8aab..9ce3466f75 100644 --- a/gtk2_ardour/plugin_manager_ui.cc +++ b/gtk2_ardour/plugin_manager_ui.cc @@ -49,6 +49,7 @@ using namespace ARDOUR_PLUGIN_UTILS; PluginManagerUI::PluginManagerUI () : ArdourWindow (_("Plugin Manager")) + , _btn_reindex (_("Update Index Only")) , _btn_rescan_all (_("Re-scan All")) , _btn_rescan_err (_("Re-scan Faulty")) , _btn_rescan_sel (_("Re-scan Selected")) @@ -187,6 +188,7 @@ PluginManagerUI::PluginManagerUI () b_actions->pack_start (_btn_rescan_sel); b_actions->pack_start (_btn_rescan_err); b_actions->pack_start (_btn_rescan_all); + b_actions->pack_start (_btn_reindex); b_actions->set_spacing (4); b_actions->set_border_width (4); @@ -254,6 +256,7 @@ PluginManagerUI::PluginManagerUI () /* tooltips */ /* clang-format off */ + ArdourWidgets::set_tooltip (_btn_reindex, _("Only update plugin index, do not discover new plugins.")); ArdourWidgets::set_tooltip (_btn_rescan_all, _("Scans all plugins, regardless if they have already been successfully scanned\n.Depending on the number of plugins installed this can take a long time.")); ArdourWidgets::set_tooltip (_btn_rescan_err, _("Scans plugins that have not yet been successfully scanned.")); ArdourWidgets::set_tooltip (_btn_rescan_sel, _("Scans the selected plugin.")); @@ -290,6 +293,7 @@ PluginManagerUI::PluginManagerUI () PluginManager::instance ().PluginScanLogChanged.connect (_manager_connections, invalidator (*this), boost::bind (&PluginManagerUI::refill, this), gui_context ()); PluginManager::instance ().PluginStatusChanged.connect (_manager_connections, invalidator (*this), boost::bind (&PluginManagerUI::plugin_status_changed, this, _1, _2, _3), gui_context ()); + _btn_reindex.signal_clicked.connect (sigc::mem_fun (*this, &PluginManagerUI::reindex)); _btn_rescan_all.signal_clicked.connect (sigc::mem_fun (*this, &PluginManagerUI::rescan_all)); _btn_rescan_err.signal_clicked.connect (sigc::mem_fun (*this, &PluginManagerUI::rescan_faulty)); _btn_rescan_sel.signal_clicked.connect (sigc::mem_fun (*this, &PluginManagerUI::rescan_selected)); @@ -805,6 +809,13 @@ PluginManagerUI::rescan_faulty () _entry_search.set_text (""); } +void +PluginManagerUI::reindex() +{ + PluginScanDialog psd (true, true, this); + psd.start (); +} + void PluginManagerUI::rescan_selected () { diff --git a/gtk2_ardour/plugin_manager_ui.h b/gtk2_ardour/plugin_manager_ui.h index 498eb874a4..e9871b1a83 100644 --- a/gtk2_ardour/plugin_manager_ui.h +++ b/gtk2_ardour/plugin_manager_ui.h @@ -52,6 +52,7 @@ private: void hidden_changed (std::string const&); void row_activated (Gtk::TreeModel::Path const&, Gtk::TreeViewColumn*); + void reindex (); void rescan_all (); void rescan_faulty (); void rescan_selected (); @@ -121,6 +122,7 @@ private: Gtk::TextView _log; Gtk::ScrolledWindow _log_scroller; ArdourWidgets::VPane _pane; + ArdourWidgets::ArdourButton _btn_reindex; ArdourWidgets::ArdourButton _btn_rescan_all; ArdourWidgets::ArdourButton _btn_rescan_err; ArdourWidgets::ArdourButton _btn_rescan_sel;