mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-11 00:56:33 +01:00
proper plugin-UI interaction/semantics
Always show plugin's own UI (if available) on double-click Alt+double-click -> show 'generic controls'. Context-menu offers both choices. Use Tooltip for to make it discoverable.
This commit is contained in:
parent
53c6c714cd
commit
b91b920b9b
2 changed files with 21 additions and 15 deletions
|
|
@ -113,7 +113,7 @@ ProcessorEntry::ProcessorEntry (ProcessorBox* parent, boost::shared_ptr<Processo
|
||||||
|
|
||||||
_button.set_active (_processor->active());
|
_button.set_active (_processor->active());
|
||||||
_button.show ();
|
_button.show ();
|
||||||
|
|
||||||
_processor->ActiveChanged.connect (active_connection, invalidator (*this), boost::bind (&ProcessorEntry::processor_active_changed, this), gui_context());
|
_processor->ActiveChanged.connect (active_connection, invalidator (*this), boost::bind (&ProcessorEntry::processor_active_changed, this), gui_context());
|
||||||
_processor->PropertyChanged.connect (name_connection, invalidator (*this), boost::bind (&ProcessorEntry::processor_property_changed, this, _1), gui_context());
|
_processor->PropertyChanged.connect (name_connection, invalidator (*this), boost::bind (&ProcessorEntry::processor_property_changed, this, _1), gui_context());
|
||||||
|
|
||||||
|
|
@ -247,7 +247,20 @@ ProcessorEntry::processor_property_changed (const PropertyChange& what_changed)
|
||||||
void
|
void
|
||||||
ProcessorEntry::setup_tooltip ()
|
ProcessorEntry::setup_tooltip ()
|
||||||
{
|
{
|
||||||
ARDOUR_UI::instance()->set_tip (_button, name (Wide));
|
if (_processor) {
|
||||||
|
boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (_processor);
|
||||||
|
if (pi) {
|
||||||
|
if (pi->plugin()->has_editor()) {
|
||||||
|
ARDOUR_UI::instance()->set_tip (_button,
|
||||||
|
string_compose (_("<b>%1</b>\nDouble-click to show GUI.\nAlt+double-click to show generic GUI."), name (Wide)));
|
||||||
|
} else {
|
||||||
|
ARDOUR_UI::instance()->set_tip (_button,
|
||||||
|
string_compose (_("<b>%1</b>\nDouble-click to show generic GUI."), name (Wide)));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ARDOUR_UI::instance()->set_tip (_button, string_compose ("<b>%1</b>", name (Wide)));
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
|
|
@ -918,6 +931,7 @@ ProcessorBox::show_processor_menu (int arg)
|
||||||
const bool sensitive = !processor_display.selection().empty();
|
const bool sensitive = !processor_display.selection().empty();
|
||||||
ActionManager::set_sensitive (ActionManager::plugin_selection_sensitive_actions, sensitive);
|
ActionManager::set_sensitive (ActionManager::plugin_selection_sensitive_actions, sensitive);
|
||||||
edit_action->set_sensitive (one_processor_can_be_edited ());
|
edit_action->set_sensitive (one_processor_can_be_edited ());
|
||||||
|
edit_generic_action->set_sensitive (one_processor_can_be_edited ());
|
||||||
|
|
||||||
boost::shared_ptr<PluginInsert> pi;
|
boost::shared_ptr<PluginInsert> pi;
|
||||||
if (single_selection) {
|
if (single_selection) {
|
||||||
|
|
@ -1050,13 +1064,12 @@ ProcessorBox::processor_button_press_event (GdkEventButton *ev, ProcessorEntry*
|
||||||
if (processor && (Keyboard::is_edit_event (ev) || (ev->button == 1 && ev->type == GDK_2BUTTON_PRESS))) {
|
if (processor && (Keyboard::is_edit_event (ev) || (ev->button == 1 && ev->type == GDK_2BUTTON_PRESS))) {
|
||||||
|
|
||||||
if (_session->engine().connected()) {
|
if (_session->engine().connected()) {
|
||||||
|
|
||||||
/* XXX giving an error message here is hard, because we may be in the midst of a button press */
|
/* XXX giving an error message here is hard, because we may be in the midst of a button press */
|
||||||
|
|
||||||
if (Config->get_use_plugin_own_gui ()) {
|
if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
|
||||||
edit_processor (processor);
|
|
||||||
} else {
|
|
||||||
generic_edit_processor (processor);
|
generic_edit_processor (processor);
|
||||||
|
} else {
|
||||||
|
edit_processor (processor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2235,7 +2248,7 @@ ProcessorBox::register_actions ()
|
||||||
sigc::ptr_fun (ProcessorBox::rb_edit));
|
sigc::ptr_fun (ProcessorBox::rb_edit));
|
||||||
|
|
||||||
edit_generic_action = ActionManager::register_action (
|
edit_generic_action = ActionManager::register_action (
|
||||||
popup_act_grp, X_("edit-generic"), _("Edit with basic controls..."),
|
popup_act_grp, X_("edit-generic"), _("Edit with generic controls..."),
|
||||||
sigc::ptr_fun (ProcessorBox::rb_edit_generic));
|
sigc::ptr_fun (ProcessorBox::rb_edit_generic));
|
||||||
|
|
||||||
ActionManager::add_action_group (popup_act_grp);
|
ActionManager::add_action_group (popup_act_grp);
|
||||||
|
|
@ -2437,7 +2450,7 @@ ProcessorBox::edit_processor (boost::shared_ptr<Processor> processor)
|
||||||
ProcessorWindowProxy* proxy = find_window_proxy (processor);
|
ProcessorWindowProxy* proxy = find_window_proxy (processor);
|
||||||
|
|
||||||
if (proxy) {
|
if (proxy) {
|
||||||
proxy->set_custom_ui_mode (Config->get_use_plugin_own_gui ());
|
proxy->set_custom_ui_mode (true);
|
||||||
proxy->toggle ();
|
proxy->toggle ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1855,13 +1855,6 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
/* font scaling does nothing with GDK/Quartz */
|
/* font scaling does nothing with GDK/Quartz */
|
||||||
add_option (S_("Preferences|GUI"), new FontScalingOptions (_rc_config));
|
add_option (S_("Preferences|GUI"), new FontScalingOptions (_rc_config));
|
||||||
#endif
|
#endif
|
||||||
add_option (S_("Preferences|GUI"),
|
|
||||||
new BoolOption (
|
|
||||||
"use-own-plugin-gui",
|
|
||||||
string_compose (_("Use plugins' own interfaces instead of %1's"), PROGRAM_NAME),
|
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_use_plugin_own_gui),
|
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_use_plugin_own_gui)
|
|
||||||
));
|
|
||||||
|
|
||||||
add_option (S_("GUI"),
|
add_option (S_("GUI"),
|
||||||
new BoolOption (
|
new BoolOption (
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue