diff options
author | Carl Hetherington <carl@carlh.net> | 2011-04-06 00:36:36 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-04-06 00:36:36 +0000 |
commit | 72f85f6cec86ff30de85103c11c11fcfa62f48b5 (patch) | |
tree | 29d860467cbdad5ea12ed7f810706feb10940e56 /gtk2_ardour/editor_route_groups.cc | |
parent | eaf2c28d99e9af95a4aabfde2201a6a9596280a1 (diff) |
Fix show checkbuttons for mixer groups on startup (#3919). Also synchronise visible status between editor and mixer.
git-svn-id: svn://localhost/ardour2/branches/3.0@9297 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_route_groups.cc')
-rw-r--r-- | gtk2_ardour/editor_route_groups.cc | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/gtk2_ardour/editor_route_groups.cc b/gtk2_ardour/editor_route_groups.cc index 9ee0b503fc..319c48735c 100644 --- a/gtk2_ardour/editor_route_groups.cc +++ b/gtk2_ardour/editor_route_groups.cc @@ -343,20 +343,6 @@ EditorRouteGroups::row_change (const Gtk::TreeModel::Path&, const Gtk::TreeModel return; } - if ((*iter)[_columns.is_visible]) { - for (TrackViewList::const_iterator j = _editor->get_track_views().begin(); j != _editor->get_track_views().end(); ++j) { - if ((*j)->route_group() == group) { - _editor->_routes->show_track_in_display (**j); - } - } - } else { - for (TrackViewList::const_iterator j = _editor->get_track_views().begin(); j != _editor->get_track_views().end(); ++j) { - if ((*j)->route_group() == group) { - _editor->hide_track_in_display (*j); - } - } - } - PropertyList plist; bool val = (*iter)[_columns.gain]; plist.add (Properties::gain, val); @@ -404,7 +390,7 @@ EditorRouteGroups::add (RouteGroup* group) focus = true; } - group->PropertyChanged.connect (property_changed_connection, MISSING_INVALIDATOR, ui_bind (&EditorRouteGroups::property_changed, this, group, _1), gui_context()); + group->PropertyChanged.connect (_property_changed_connections, MISSING_INVALIDATOR, ui_bind (&EditorRouteGroups::property_changed, this, group, _1), gui_context()); if (focus) { TreeViewColumn* col = _display.get_column (0); @@ -456,6 +442,16 @@ EditorRouteGroups::property_changed (RouteGroup* group, const PropertyChange& ch if (change.contains (Properties::name) || change.contains (Properties::active)) { _editor->_group_tabs->set_dirty (); } + + for (TrackViewList::const_iterator i = _editor->get_track_views().begin(); i != _editor->get_track_views().end(); ++i) { + if ((*i)->route_group() == group) { + if (group->is_hidden ()) { + _editor->hide_track_in_display (*i); + } else { + _editor->_routes->show_track_in_display (**i); + } + } + } } void @@ -493,7 +489,7 @@ EditorRouteGroups::set_session (Session* s) RouteGroup& arg (_session->all_route_group()); - arg.PropertyChanged.connect (property_changed_connection, MISSING_INVALIDATOR, ui_bind (&EditorRouteGroups::all_group_changed, this, _1), gui_context()); + arg.PropertyChanged.connect (all_route_groups_changed_connection, MISSING_INVALIDATOR, ui_bind (&EditorRouteGroups::all_group_changed, this, _1), gui_context()); _session->route_group_added.connect (_session_connections, MISSING_INVALIDATOR, ui_bind (&EditorRouteGroups::add, this, _1), gui_context()); _session->route_group_removed.connect (_session_connections, MISSING_INVALIDATOR, boost::bind (&EditorRouteGroups::groups_changed, this), gui_context()); |