PM-GUI: add action to discover newly installed plugins

Also re-orders actions on the left sidebar, and move
"discover" to the top, and "clear" to the bottom.
This commit is contained in:
Robin Gareus 2021-09-09 15:29:25 +02:00
parent b3cb7d6136
commit 2c499332ab
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 15 additions and 2 deletions

View File

@ -50,6 +50,7 @@ using namespace ARDOUR_PLUGIN_UTILS;
PluginManagerUI::PluginManagerUI ()
: ArdourWindow (_("Plugin Manager"))
, _btn_reindex (_("Update Index Only"))
, _btn_discover (_("Disover New/Updated"))
, _btn_rescan_all (_("Re-scan All"))
, _btn_rescan_err (_("Re-scan Faulty"))
, _btn_rescan_sel (_("Re-scan Selected"))
@ -183,11 +184,12 @@ PluginManagerUI::PluginManagerUI ()
_tbl_nfo.set_col_spacings (3);
_tbl_nfo.set_row_spacing (0, 3);
b_actions->pack_start (_btn_clear);
b_actions->pack_start (_btn_discover);
b_actions->pack_start (_btn_reindex);
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->pack_start (_btn_clear);
b_actions->set_spacing (4);
b_actions->set_border_width (4);
@ -256,6 +258,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_discover, _("Update Index and scan newly installed or updated plugins."));
ArdourWidgets::set_tooltip (_btn_rescan_all, _("Scans all plugins, regardless if they have already been successfully scanned.\nDepending 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."));
@ -293,6 +296,7 @@ PluginManagerUI::PluginManagerUI ()
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_discover.signal_clicked.connect (sigc::mem_fun (*this, &PluginManagerUI::discover));
_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));
@ -815,6 +819,13 @@ PluginManagerUI::reindex()
psd.start ();
}
void
PluginManagerUI::discover()
{
PluginScanDialog psd (false, true, this);
psd.start ();
}
void
PluginManagerUI::rescan_selected ()
{

View File

@ -53,6 +53,7 @@ private:
void row_activated (Gtk::TreeModel::Path const&, Gtk::TreeViewColumn*);
void reindex ();
void discover ();
void rescan_all ();
void rescan_faulty ();
void rescan_selected ();
@ -123,6 +124,7 @@ private:
Gtk::ScrolledWindow _log_scroller;
ArdourWidgets::VPane _pane;
ArdourWidgets::ArdourButton _btn_reindex;
ArdourWidgets::ArdourButton _btn_discover;
ArdourWidgets::ArdourButton _btn_rescan_all;
ArdourWidgets::ArdourButton _btn_rescan_err;
ArdourWidgets::ArdourButton _btn_rescan_sel;