diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-01-30 22:53:22 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-01-30 22:53:22 +0000 |
commit | 7629120cda89dd4ec1b03ba4ddcc6f5dd1b0ca5a (patch) | |
tree | 8021cafa93fb6bec082a7362261f9040947f5329 /gtk2_ardour/editor_selection.cc | |
parent | 664cec21359ba055243c3feaf47c6eb16fccbb3b (diff) |
many changes, large and small, related to smart mode editing, range/region selection, and behaviour of playhead when always-play-range is enabled. could be buggy, but probably in subtle (or even very subtle) ways rather than obvious
git-svn-id: svn://localhost/ardour2/branches/3.0@11394 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_selection.cc')
-rw-r--r-- | gtk2_ardour/editor_selection.cc | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index b7b0019b89..010984c26e 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -177,13 +177,12 @@ Editor::select_all_tracks () * tracks, in which case nothing will happen unless `force' is true. */ void -Editor::set_selected_track_as_side_effect (Selection::Operation op, bool /*force*/) +Editor::set_selected_track_as_side_effect (Selection::Operation op) { if (!clicked_axisview) { return; } -#if 1 if (!clicked_routeview) { return; } @@ -265,18 +264,6 @@ Editor::set_selected_track_as_side_effect (Selection::Operation op, bool /*force cerr << ("Editor::set_selected_track_as_side_effect case Selection::Add not yet implemented\n"); break; } - -#else // the older version - - if (!selection->tracks.empty()) { - if (!selection->selected (clicked_axisview)) { - selection->add (clicked_axisview); - } - - } else if (force) { - selection->set (clicked_axisview); - } -#endif } void @@ -560,7 +547,7 @@ Editor::get_regionview_count_from_region_list (boost::shared_ptr<Region> region) bool -Editor::set_selected_regionview_from_click (bool press, Selection::Operation op, bool /*no_track_remove*/) +Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) { vector<RegionView*> all_equivalent_regions; bool commit = false; @@ -575,7 +562,6 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op, if (op == Selection::Toggle || op == Selection::Set) { - switch (op) { case Selection::Toggle: if (selection->selected (clicked_regionview)) { @@ -982,6 +968,10 @@ Editor::time_selection_changed () } else { ActionManager::set_sensitive (ActionManager::time_selection_sensitive_actions, true); } + + if (_session && Config->get_always_play_range() && !_session->transport_rolling() && !selection->time.empty()) { + _session->request_locate (selection->time.start()); + } } /** Set all region actions to have a given sensitivity */ @@ -1266,6 +1256,10 @@ Editor::region_selection_changed () */ sensitize_all_region_actions (true); } + + if (_session && Config->get_always_play_range() && !_session->transport_rolling() && !selection->regions.empty()) { + _session->request_locate (selection->regions.start()); + } } void @@ -1851,13 +1845,9 @@ Editor::deselect_all () } long -Editor::select_range_around_region (RegionView* rv) +Editor::select_range (framepos_t s, framepos_t e) { - assert (rv); - - selection->set (&rv->get_time_axis_view()); - + selection->add (clicked_axisview); selection->time.clear (); - boost::shared_ptr<Region> r = rv->region (); - return selection->set (r->position(), r->position() + r->length()); + return selection->set (s, e); } |