mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 19:16:40 +01:00
MCP: timeout display of value when altering with fader or pot; range ops on strip buttons should work; select logic may be broken
git-svn-id: svn://localhost/ardour2/branches/3.0@11959 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
f511b7cc6b
commit
8f7fa7d93b
15 changed files with 228 additions and 165 deletions
|
|
@ -712,8 +712,6 @@ Editor::Editor ()
|
|||
ControlProtocol::Undo.connect (*this, invalidator (*this), boost::bind (&Editor::undo, this, true), gui_context());
|
||||
ControlProtocol::Redo.connect (*this, invalidator (*this), boost::bind (&Editor::redo, this, true), gui_context());
|
||||
ControlProtocol::ScrollTimeline.connect (*this, invalidator (*this), ui_bind (&Editor::control_scroll, this, _1), gui_context());
|
||||
ControlProtocol::SelectByRID.connect (*this, invalidator (*this), ui_bind (&Editor::control_select, this, _1), gui_context());
|
||||
ControlProtocol::UnselectTrack.connect (*this, invalidator (*this), ui_bind (&Editor::control_unselect, this), gui_context());
|
||||
ControlProtocol::GotoView.connect (*this, invalidator (*this), ui_bind (&Editor::control_view, this, _1), gui_context());
|
||||
ControlProtocol::CloseDialog.connect (*this, invalidator (*this), Keyboard::close_current_dialog, gui_context());
|
||||
ControlProtocol::VerticalZoomInAll.connect (*this, invalidator (*this), ui_bind (&Editor::control_vertical_zoom_in_all, this), gui_context());
|
||||
|
|
@ -721,6 +719,11 @@ Editor::Editor ()
|
|||
ControlProtocol::VerticalZoomInSelected.connect (*this, invalidator (*this), ui_bind (&Editor::control_vertical_zoom_in_selected, this), gui_context());
|
||||
ControlProtocol::VerticalZoomOutSelected.connect (*this, invalidator (*this), ui_bind (&Editor::control_vertical_zoom_out_selected, this), gui_context());
|
||||
|
||||
ControlProtocol::AddRouteToSelection.connect (*this, invalidator (*this), ui_bind (&Editor::control_select, this, _1, Selection::Add), gui_context());
|
||||
ControlProtocol::RemoveRouteFromSelection.connect (*this, invalidator (*this), ui_bind (&Editor::control_select, this, _1, Selection::Toggle), gui_context());
|
||||
ControlProtocol::SetRouteSelection.connect (*this, invalidator (*this), ui_bind (&Editor::control_select, this, _1, Selection::Set), gui_context());
|
||||
ControlProtocol::ClearRouteSelection.connect (*this, invalidator (*this), ui_bind (&Editor::control_unselect, this), gui_context());
|
||||
|
||||
BasicUI::AccessAction.connect (*this, invalidator (*this), ui_bind (&Editor::access_action, this, _1, _2), gui_context());
|
||||
|
||||
/* problematic: has to return a value and thus cannot be x-thread */
|
||||
|
|
@ -966,7 +969,7 @@ Editor::control_unselect ()
|
|||
}
|
||||
|
||||
void
|
||||
Editor::control_select (uint32_t rid)
|
||||
Editor::control_select (uint32_t rid, Selection::Operation op)
|
||||
{
|
||||
/* handles the (static) signal from the ControlProtocol class that
|
||||
* requests setting the selected track to a given RID
|
||||
|
|
@ -985,7 +988,19 @@ Editor::control_select (uint32_t rid)
|
|||
TimeAxisView* tav = axis_view_from_route (r);
|
||||
|
||||
if (tav) {
|
||||
selection->set (tav);
|
||||
switch (op) {
|
||||
case Selection::Add:
|
||||
selection->add (tav);
|
||||
break;
|
||||
case Selection::Toggle:
|
||||
selection->toggle (tav);
|
||||
break;
|
||||
case Selection::Extend:
|
||||
break;
|
||||
case Selection::Set:
|
||||
selection->set (tav);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
selection->clear_tracks ();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue