13
0

if route group shares color, make RouteUI::set_color() affect the group

git-svn-id: svn://localhost/ardour2/branches/3.0@13735 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-12-26 23:35:31 +00:00
parent 54ce76e8fd
commit d1c6e8b6d8

View File

@ -1335,18 +1335,26 @@ RouteUI::choose_color ()
void
RouteUI::set_color (const Gdk::Color & c)
{
char buf[64];
RouteGroup* g = _route->route_group ();
_color = c;
/* leave _color alone in the group case so that tracks can retain their
* own pre-group colors.
*/
snprintf (buf, sizeof (buf), "%d:%d:%d", c.get_red(), c.get_green(), c.get_blue());
if (g && g->is_color()) {
GroupTabs::set_group_color (g, c);
} else {
char buf[64];
_color = c;
snprintf (buf, sizeof (buf), "%d:%d:%d", c.get_red(), c.get_green(), c.get_blue());
/* note: we use the route state ID here so that color is the same for both
the time axis view and the mixer strip
*/
/* note: we use the route state ID here so that color is the same for both
the time axis view and the mixer strip
*/
gui_object_state().set_property<string> (route_state_id(), X_("color"), buf);
_route->gui_changed ("color", (void *) 0); /* EMIT_SIGNAL */
gui_object_state().set_property<string> (route_state_id(), X_("color"), buf);
_route->gui_changed ("color", (void *) 0); /* EMIT_SIGNAL */
}
}
/** @return GUI state ID for things that are common to the route in all its representations */