+void
+GroupTabs::route_group_property_changed (RouteGroup* rg)
+{
+ /* This is a bit of a hack, but this might change
+ our route's effective color, so emit gui_changed
+ for our routes.
+ */
+
+ emit_gui_changed_for_members (rg);
+
+ set_dirty ();
+}
+
+void
+GroupTabs::route_added_to_route_group (RouteGroup*, boost::weak_ptr<Route> w)
+{
+ /* Similarly-spirited hack as in route_group_property_changed */
+
+ boost::shared_ptr<Route> r = w.lock ();
+ if (!r) {
+ return;
+ }
+
+ r->gui_changed (X_("color"), 0);
+
+ set_dirty ();
+}
+
+void
+GroupTabs::route_removed_from_route_group (RouteGroup*, boost::weak_ptr<Route> w)
+{
+ /* Similarly-spirited hack as in route_group_property_changed */
+
+ boost::shared_ptr<Route> r = w.lock ();
+ if (!r) {
+ return;
+ }
+
+ r->gui_changed (X_("color"), 0);
+
+ set_dirty ();
+}
+
+void
+GroupTabs::emit_gui_changed_for_members (RouteGroup* rg)
+{
+ for (RouteList::iterator i = rg->route_list()->begin(); i != rg->route_list()->end(); ++i) {
+ (*i)->gui_changed (X_("color"), 0);
+ }
+}