summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-01-30 22:53:22 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-01-30 22:53:22 +0000
commit7629120cda89dd4ec1b03ba4ddcc6f5dd1b0ca5a (patch)
tree8021cafa93fb6bec082a7362261f9040947f5329 /gtk2_ardour/editor_selection.cc
parent664cec21359ba055243c3feaf47c6eb16fccbb3b (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.cc36
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);
}