change semantics for select-all operation: if no track is selected, use the current entered track, or if there is no entered track, use all tracks; if in internal edit mode, check first to see if any MIDI tracks are among those to be operated on, and only do the internal edit version of select-all if there are
git-svn-id: svn://localhost/ardour2/branches/3.0@13508 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
a0f00d7d22
commit
adbb47fae7
|
@ -1354,17 +1354,48 @@ Editor::select_all (Selection::Operation op)
|
||||||
{
|
{
|
||||||
list<Selectable *> touched;
|
list<Selectable *> touched;
|
||||||
|
|
||||||
if (_internal_editing) {
|
TrackViewList ts;
|
||||||
select_all_internal_edit (op);
|
|
||||||
return;
|
if (selection->tracks.empty()) {
|
||||||
|
if (entered_track) {
|
||||||
|
ts.push_back (entered_track);
|
||||||
|
} else {
|
||||||
|
ts = track_views;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ts = selection->tracks;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (TrackViewList::iterator iter = track_views.begin(); iter != track_views.end(); ++iter) {
|
if (_internal_editing) {
|
||||||
|
|
||||||
|
bool midi_selected = false;
|
||||||
|
|
||||||
|
for (TrackViewList::iterator iter = ts.begin(); iter != ts.end(); ++iter) {
|
||||||
|
if ((*iter)->hidden()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*> (*iter);
|
||||||
|
|
||||||
|
if (rtav && rtav->is_midi_track()) {
|
||||||
|
midi_selected = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (midi_selected) {
|
||||||
|
select_all_internal_edit (op);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (TrackViewList::iterator iter = ts.begin(); iter != ts.end(); ++iter) {
|
||||||
if ((*iter)->hidden()) {
|
if ((*iter)->hidden()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
(*iter)->get_selectables (0, max_framepos, 0, DBL_MAX, touched);
|
(*iter)->get_selectables (0, max_framepos, 0, DBL_MAX, touched);
|
||||||
}
|
}
|
||||||
|
|
||||||
begin_reversible_command (_("select all"));
|
begin_reversible_command (_("select all"));
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case Selection::Add:
|
case Selection::Add:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user