Add a plugin-preset browser window
Previously preset-browser was only used instead of "generic control" display if a plugin does not have any controls (but presets). This allows for showing a dedicated window..
This commit is contained in:
parent
32b97031cf
commit
71fa4fa75c
@ -466,6 +466,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
|
||||
, add_button (_("Add"))
|
||||
, save_button (_("Save"))
|
||||
, delete_button (_("Delete"))
|
||||
, preset_browser_button (_("Preset Browser"))
|
||||
, reset_button (_("Reset"))
|
||||
, bypass_button (ArdourButton::led_default_elements)
|
||||
, pin_management_button (_("Pinout"))
|
||||
@ -477,6 +478,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
|
||||
, eqgui (0)
|
||||
, stats_gui (0)
|
||||
, preset_gui (0)
|
||||
, preset_dialog (0)
|
||||
{
|
||||
_preset_modified.set_size_request (16, -1);
|
||||
_preset_combo.set_text("(default)");
|
||||
@ -484,6 +486,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
|
||||
set_tooltip (add_button, _("Save a new preset"));
|
||||
set_tooltip (save_button, _("Save the current preset"));
|
||||
set_tooltip (delete_button, _("Delete the current preset"));
|
||||
set_tooltip (preset_browser_button, _("Show Preset Browser Dialog"));
|
||||
set_tooltip (reset_button, _("Reset parameters to default (if no parameters are in automation play mode)"));
|
||||
set_tooltip (pin_management_button, _("Show Plugin Pin Management Dialog"));
|
||||
set_tooltip (bypass_button, _("Disable signal processing by the plugin"));
|
||||
@ -508,6 +511,10 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
|
||||
delete_button.set_icon (ArdourIcon::PsetDelete);
|
||||
delete_button.signal_clicked.connect (sigc::mem_fun (*this, &PlugUIBase::delete_plugin_setting));
|
||||
|
||||
preset_browser_button.set_name ("generic button");
|
||||
preset_browser_button.set_icon (ArdourIcon::PsetBrowse);
|
||||
preset_browser_button.signal_clicked.connect (sigc::mem_fun (*this, &PlugUIBase::browse_presets));
|
||||
|
||||
reset_button.set_name ("generic button");
|
||||
reset_button.set_icon (ArdourIcon::PluginReset);
|
||||
reset_button.signal_clicked.connect (sigc::mem_fun (*this, &PlugUIBase::reset_plugin_parameters));
|
||||
@ -568,6 +575,7 @@ PlugUIBase::~PlugUIBase()
|
||||
delete preset_gui;
|
||||
delete latency_gui;
|
||||
delete latency_dialog;
|
||||
delete preset_dialog;
|
||||
}
|
||||
|
||||
void
|
||||
@ -697,6 +705,28 @@ PlugUIBase::has_descriptive_presets () const
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
PlugUIBase::browse_presets ()
|
||||
{
|
||||
if (!preset_dialog) {
|
||||
if (preset_gui) {
|
||||
/* Do not allow custom window, if preset_gui is used.
|
||||
* e.g. generic-plugin UI.
|
||||
*/
|
||||
return;
|
||||
}
|
||||
preset_dialog = new ArdourWindow (_("Select Preset"));
|
||||
preset_dialog->set_keep_above (true);
|
||||
Window* win = dynamic_cast<Window*> (preset_browser_button.get_toplevel ());
|
||||
if (win) {
|
||||
preset_dialog->set_transient_for (*win);
|
||||
}
|
||||
preset_gui = new PluginPresetsUI (insert);
|
||||
preset_dialog->add (*preset_gui);
|
||||
}
|
||||
preset_dialog->show_all ();
|
||||
}
|
||||
|
||||
void
|
||||
PlugUIBase::manage_pins ()
|
||||
{
|
||||
|
@ -132,6 +132,8 @@ protected:
|
||||
ArdourWidgets::ArdourButton save_button;
|
||||
/** a button to delete the current preset (if it is a user one) */
|
||||
ArdourWidgets::ArdourButton delete_button;
|
||||
/** a button to show a preset browser */
|
||||
ArdourWidgets::ArdourButton preset_browser_button;
|
||||
/** a button to delete the reset the plugin params */
|
||||
ArdourWidgets::ArdourButton reset_button;
|
||||
/** a button to bypass the plugin */
|
||||
@ -166,6 +168,7 @@ protected:
|
||||
PluginEqGui* eqgui;
|
||||
PluginLoadStatsGui* stats_gui;
|
||||
PluginPresetsUI* preset_gui;
|
||||
ArdourWindow* preset_dialog;
|
||||
|
||||
Gtk::Image* focus_out_image;
|
||||
Gtk::Image* focus_in_image;
|
||||
@ -176,6 +179,7 @@ protected:
|
||||
void save_plugin_setting ();
|
||||
void delete_plugin_setting ();
|
||||
void reset_plugin_parameters ();
|
||||
void browse_presets ();
|
||||
void manage_pins ();
|
||||
bool focus_toggled(GdkEventButton*);
|
||||
bool bypass_button_release(GdkEventButton*);
|
||||
|
Loading…
Reference in New Issue
Block a user