MCP: ctrl-select toggle selections status, analogous to GUI op

git-svn-id: svn://localhost/ardour2/branches/3.0@12102 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-04-26 22:10:32 +00:00
parent cafbc632fb
commit ae2e8c6765
4 changed files with 11 additions and 3 deletions

View file

@ -721,6 +721,7 @@ Editor::Editor ()
ControlProtocol::AddRouteToSelection.connect (*this, invalidator (*this), boost::bind (&Editor::control_select, this, _1, Selection::Add), gui_context());
ControlProtocol::RemoveRouteFromSelection.connect (*this, invalidator (*this), boost::bind (&Editor::control_select, this, _1, Selection::Toggle), gui_context());
ControlProtocol::SetRouteSelection.connect (*this, invalidator (*this), boost::bind (&Editor::control_select, this, _1, Selection::Set), gui_context());
ControlProtocol::ToggleRouteSelection.connect (*this, invalidator (*this), boost::bind (&Editor::control_select, this, _1, Selection::Toggle), gui_context());
ControlProtocol::ClearRouteSelection.connect (*this, invalidator (*this), boost::bind (&Editor::control_unselect, this), gui_context());
BasicUI::AccessAction.connect (*this, invalidator (*this), boost::bind (&Editor::access_action, this, _1, _2), gui_context());

View file

@ -47,6 +47,7 @@ PBD::Signal0<void> ControlProtocol::VerticalZoomOutSelected;
PBD::Signal1<void,RouteNotificationListPtr> ControlProtocol::TrackSelectionChanged;
PBD::Signal1<void,uint32_t> ControlProtocol::AddRouteToSelection;
PBD::Signal1<void,uint32_t> ControlProtocol::SetRouteSelection;
PBD::Signal1<void,uint32_t> ControlProtocol::ToggleRouteSelection;
PBD::Signal1<void,uint32_t> ControlProtocol::RemoveRouteFromSelection;
PBD::Signal0<void> ControlProtocol::ClearRouteSelection;
PBD::Signal0<void> ControlProtocol::StepTracksDown;

View file

@ -78,6 +78,7 @@ class ControlProtocol : public PBD::Stateful, public PBD::ScopedConnectionList,
static PBD::Signal1<void,uint32_t> AddRouteToSelection;
static PBD::Signal1<void,uint32_t> SetRouteSelection;
static PBD::Signal1<void,uint32_t> ToggleRouteSelection;
static PBD::Signal1<void,uint32_t> RemoveRouteFromSelection;
static PBD::Signal0<void> ClearRouteSelection;

View file

@ -1247,10 +1247,15 @@ MackieControlProtocol::select_range ()
if (!routes.empty()) {
for (RouteList::iterator r = routes.begin(); r != routes.end(); ++r) {
if (r == routes.begin()) {
SetRouteSelection ((*r)->remote_control_id());
if (_modifier_state == MODIFIER_CONTROL) {
ToggleRouteSelection ((*r)->remote_control_id ());
} else {
AddRouteToSelection ((*r)->remote_control_id());
if (r == routes.begin()) {
SetRouteSelection ((*r)->remote_control_id());
} else {
AddRouteToSelection ((*r)->remote_control_id());
}
}
}
}