diff options
author | Robin Gareus <robin@gareus.org> | 2014-02-25 14:52:57 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-02-25 14:57:59 +0100 |
commit | d8329d855dab6199afef27cc8635472ddca0fe7b (patch) | |
tree | f74e8e82bedda1137c3511d9b521342e0a5e66dc | |
parent | 0708721b4f9fca3967a6f1c436717ff2aca0baec (diff) |
implement plugin-scan cancel-button sensitivity
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/ardour.h | 2 | ||||
-rw-r--r-- | libs/ardour/audio_unit.cc | 2 | ||||
-rw-r--r-- | libs/ardour/globals.cc | 2 | ||||
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 2 | ||||
-rw-r--r-- | libs/ardour/plugin_manager.cc | 8 |
7 files changed, 14 insertions, 12 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 55572ad392..31e401a0fd 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -306,7 +306,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) ARDOUR::FileSource::AmbiguousFileName.connect_same_thread (forever_connections, boost::bind (&ARDOUR_UI::ambiguous_file, this, _1, _2)); /* also plugin scan messages */ - ARDOUR::PluginScanMessage.connect (forever_connections, MISSING_INVALIDATOR, boost::bind(&ARDOUR_UI::plugin_scan_dialog, this, _1, _2), gui_context()); + ARDOUR::PluginScanMessage.connect (forever_connections, MISSING_INVALIDATOR, boost::bind(&ARDOUR_UI::plugin_scan_dialog, this, _1, _2, _3), gui_context()); ARDOUR::GUIIdle.connect (forever_connections, MISSING_INVALIDATOR, boost::bind(&ARDOUR_UI::gui_idle_handler, this), gui_context()); @@ -3805,16 +3805,17 @@ ARDOUR_UI::cancel_plugin_scan () static MessageDialog *scan_dlg = NULL; void -ARDOUR_UI::plugin_scan_dialog (std::string type, std::string plugin) +ARDOUR_UI::plugin_scan_dialog (std::string type, std::string plugin, bool can_cancel) { if (!Config->get_show_plugin_scan_window()) { return; } + static Gtk::Button *cancel_button; if (!scan_dlg) { scan_dlg = new MessageDialog("", false, MESSAGE_INFO, BUTTONS_NONE); VBox* vbox = scan_dlg->get_vbox(); vbox->set_size_request(400,-1); scan_dlg->set_title (_("Scanning for plugins")); - Gtk::Button *cancel_button = manage(new Gtk::Button(_("Cancel plugin scan"))); + cancel_button = manage(new Gtk::Button(_("Cancel plugin scan"))); cancel_button->set_name ("EditorGTKButton"); cancel_button->signal_clicked().connect ( mem_fun (*this, &ARDOUR_UI::cancel_plugin_scan) ); @@ -3827,6 +3828,7 @@ ARDOUR_UI::plugin_scan_dialog (std::string type, std::string plugin) scan_dlg->set_message(type + ": " + Glib::path_get_basename(plugin)); scan_dlg->show_all(); } + cancel_button->set_sensitive(can_cancel); /* due to idle calls, gtk_events_pending() may always return true */ int timeout = 30; diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 395833fbad..69ff876dc8 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -669,7 +669,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void gui_idle_handler (); void cancel_plugin_scan (); - void plugin_scan_dialog (std::string type, std::string plugin); + void plugin_scan_dialog (std::string type, std::string plugin, bool); void session_format_mismatch (std::string, std::string); diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h index 38d8a9a6a2..003f05ca5d 100644 --- a/libs/ardour/ardour/ardour.h +++ b/libs/ardour/ardour/ardour.h @@ -50,7 +50,7 @@ namespace ARDOUR { class AudioEngine; extern LIBARDOUR_API PBD::Signal1<void,std::string> BootMessage; - extern LIBARDOUR_API PBD::Signal2<void,std::string,std::string> PluginScanMessage; + extern LIBARDOUR_API PBD::Signal3<void,std::string,std::string,bool> PluginScanMessage; extern LIBARDOUR_API PBD::Signal0<void> GUIIdle; /** diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 332f50546f..9e461c6346 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -2278,7 +2278,7 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip } AUPluginInfo::get_names (temp, info->name, info->creator); - ARDOUR::PluginScanMessage(_("AU"), info->name); + ARDOUR::PluginScanMessage(_("AU"), info->name, false); info->type = ARDOUR::AudioUnit; info->unique_id = stringify_descriptor (*info->descriptor); diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index f04ffe691d..71d65a60f3 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -125,7 +125,7 @@ mix_buffers_with_gain_t ARDOUR::mix_buffers_with_gain = 0; mix_buffers_no_gain_t ARDOUR::mix_buffers_no_gain = 0; PBD::Signal1<void,std::string> ARDOUR::BootMessage; -PBD::Signal2<void,std::string,std::string> ARDOUR::PluginScanMessage; +PBD::Signal3<void,std::string,std::string,bool> ARDOUR::PluginScanMessage; PBD::Signal0<void> ARDOUR::GUIIdle; namespace ARDOUR { diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index a9b21924ed..345c1a47dd 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -2110,7 +2110,7 @@ LV2PluginInfo::discover() info->name = string(lilv_node_as_string(name)); lilv_node_free(name); - ARDOUR::PluginScanMessage(_("LV2"), info->name); + ARDOUR::PluginScanMessage(_("LV2"), info->name, false); const LilvPluginClass* pclass = lilv_plugin_get_class(p); const LilvNode* label = lilv_plugin_class_get_label(pclass); diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc index c145fd3aa4..fc27a34255 100644 --- a/libs/ardour/plugin_manager.cc +++ b/libs/ardour/plugin_manager.cc @@ -210,7 +210,7 @@ PluginManager::refresh (bool cache_only) #endif PluginListChanged (); /* EMIT SIGNAL */ - PluginScanMessage(X_("closeme"), ""); + PluginScanMessage(X_("closeme"), "", false); cancel_scan = false; } @@ -351,7 +351,7 @@ PluginManager::ladspa_refresh () dll_extension_pattern, ladspa_modules); for (vector<std::string>::iterator i = ladspa_modules.begin(); i != ladspa_modules.end(); ++i) { - ARDOUR::PluginScanMessage(_("LADSPA"), *i); + ARDOUR::PluginScanMessage(_("LADSPA"), *i, false); ladspa_discover (*i); } } @@ -664,7 +664,7 @@ PluginManager::windows_vst_discover_from_path (string path, bool cache_only) if (plugin_objects) { for (x = plugin_objects->begin(); x != plugin_objects->end (); ++x) { if (cancelled()) break; - ARDOUR::PluginScanMessage(_("VST"), **x); + ARDOUR::PluginScanMessage(_("VST"), **x, !cache_only); windows_vst_discover (**x, cache_only); } @@ -804,7 +804,7 @@ PluginManager::lxvst_discover_from_path (string path, bool cache_only) if (plugin_objects) { for (x = plugin_objects->begin(); x != plugin_objects->end (); ++x) { if (cancelled()) break; - ARDOUR::PluginScanMessage(_("LXVST"), **x); + ARDOUR::PluginScanMessage(_("LXVST"), **x, !cache_only); lxvst_discover (**x, cache_only); } |