offer to scan for plugins at first start.
[ardour.git] / gtk2_ardour / startup.cc
index d4c8686698cdb1cd63a54768341ae828c7e1b831..719e94f2412e515269b25f97b3c2995f022fc393 100644 (file)
 
 #include "ardour/audioengine.h"
 #include "ardour/filesystem_paths.h"
+#include "ardour/filename_extensions.h"
+#include "ardour/plugin_manager.h"
 #include "ardour/recent_sessions.h"
 #include "ardour/session.h"
 #include "ardour/session_state_utils.h"
 #include "ardour/template_utils.h"
-#include "ardour/filename_extensions.h"
 
 #include "ardour_ui.h"
 #include "startup.h"
@@ -343,13 +344,30 @@ void
 ArdourStartup::setup_final_page ()
 {
        string msg = string_compose (_("%1 is ready for use"), PROGRAM_NAME);
-       
-       final_page.set_markup (string_compose ("<span weight=\"bold\" size=\"large\">%1</span>", msg));
-       final_page.show ();
-       final_page_index = append_page (final_page);
-       set_page_complete (final_page, true);
-       set_page_header_image (final_page, icon_pixbuf);
-       set_page_type (final_page, ASSISTANT_PAGE_CONFIRM);
+
+       plugin_disco_button.signal_clicked().connect (sigc::mem_fun(*this, &ArdourStartup::discover_plugins));
+       plugin_disco_button.set_label (_("Scan for Plugins"));
+       plugin_disco_button.show ();
+
+       Gtk::Label* final_label = manage (new Label);
+       final_label->set_markup (string_compose ("<span weight=\"bold\" size=\"large\">%1</span>", msg));
+       final_label->show ();
+
+       VBox* vbox = manage (new VBox);
+       vbox->pack_start (*final_label, true, true);
+       vbox->pack_start (plugin_disco_button, true, false);
+       vbox->show ();
+
+       final_page_index = append_page (*vbox);
+       set_page_complete (*vbox, true);
+       set_page_header_image (*vbox, icon_pixbuf);
+       set_page_type (*vbox, ASSISTANT_PAGE_CONFIRM);
+}
+
+void
+ArdourStartup::discover_plugins () {
+       plugin_disco_button.set_sensitive (false);
+       PluginManager::instance().refresh();
 }
 
 void