13
0

Keep inline control state in sync with editor-mixer

This commit is contained in:
Robin Gareus 2024-10-22 00:34:29 +02:00
parent 590400a95f
commit b5d6b97fd2
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 12 additions and 6 deletions

View File

@ -715,7 +715,7 @@ ProcessorEntry::show_all_controls ()
(*i)->set_visible (true);
}
_parent->update_gui_object_state (this);
_parent->update_gui_object_state (this, true);
}
void
@ -725,7 +725,7 @@ ProcessorEntry::hide_all_controls ()
(*i)->set_visible (false);
}
_parent->update_gui_object_state (this);
_parent->update_gui_object_state (this, true);
}
void
@ -942,14 +942,14 @@ ProcessorEntry::toggle_inline_display_visibility ()
} else {
_plugin_display->show();
}
_parent->update_gui_object_state (this);
_parent->update_gui_object_state (this, true);
}
void
ProcessorEntry::toggle_control_visibility (Control* c)
{
c->set_visible (!c->visible ());
_parent->update_gui_object_state (this);
_parent->update_gui_object_state (this, true);
}
Menu*
@ -4691,7 +4691,7 @@ ProcessorBox::entry_gui_object_state (ProcessorEntry* entry)
}
void
ProcessorBox::update_gui_object_state (ProcessorEntry* entry)
ProcessorBox::update_gui_object_state (ProcessorEntry* entry, bool emit)
{
XMLNode* proc = entry_gui_object_state (entry);
if (!proc) {
@ -4701,6 +4701,12 @@ ProcessorBox::update_gui_object_state (ProcessorEntry* entry)
/* XXX: this is a bit inefficient; we just remove all child nodes and re-add them */
proc->remove_nodes_and_delete (X_("Object"));
entry->add_control_state (proc);
/* notify other strips to update */
if (emit && _route) {
PBD::Unwinder<bool> uw (no_processor_redisplay, true);
_route->processors_changed (RouteProcessorChange ());
}
}
bool

View File

@ -461,7 +461,7 @@ public:
void edit_processor (std::shared_ptr<ARDOUR::Processor>);
void generic_edit_processor (std::shared_ptr<ARDOUR::Processor>);
void update_gui_object_state (ProcessorEntry *);
void update_gui_object_state (ProcessorEntry *, bool emit = false);
sigc::signal<void,std::shared_ptr<ARDOUR::Processor> > ProcessorSelected;
sigc::signal<void,std::shared_ptr<ARDOUR::Processor> > ProcessorUnselected;