more improvements for range drag/track selection logic etc.

git-svn-id: svn://localhost/ardour2/branches/3.0@7714 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2010-08-30 18:08:41 +00:00
parent a8e86b8f09
commit 6e8a5fa135
2 changed files with 23 additions and 0 deletions

View File

@ -487,10 +487,20 @@ EditorRouteGroups::set_session (Session* s)
SessionHandlePtr::set_session (s);
if (_session) {
RouteGroup& arg (_session->all_route_group());
arg.PropertyChanged.connect (property_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());
}
PBD::PropertyChange pc;
pc.add (Properties::select);
pc.add (Properties::active);
all_group_changed (pc);
groups_changed ();
}
@ -510,3 +520,15 @@ EditorRouteGroups::all_group_toggled ()
}
}
void
EditorRouteGroups::all_group_changed (const PropertyChange&)
{
if (_session) {
RouteGroup& arg (_session->all_route_group());
_all_group_active_button.set_active (arg.is_active() && arg.is_select());
} else {
_all_group_active_button.set_active (false);
}
}

View File

@ -72,6 +72,7 @@ private:
void remove_selected ();
void run_new_group_dialog ();
void all_group_toggled();
void all_group_changed (const PBD::PropertyChange&);
Glib::RefPtr<Gtk::ListStore> _model;
Glib::RefPtr<Gtk::TreeSelection> _selection;