summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-08-24 14:03:34 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2018-08-24 14:04:18 -0400
commit932eefad9fee118695adc1cf661c43b2067ceeea (patch)
treebb0f97bc7fa7d3228ad2b13acf9eb9262ddcbb5d /gtk2_ardour
parent2d0416a0169e0c2e13f61fd353775826072ba147 (diff)
use new CoreSelection methods in editor and mixer
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_ops.cc81
-rw-r--r--gtk2_ardour/mixer_ui.cc48
2 files changed, 11 insertions, 118 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 3e757297a9..23b3d239d7 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -58,6 +58,7 @@
#include "ardour/legatize.h"
#include "ardour/region_factory.h"
#include "ardour/reverse.h"
+#include "ardour/selection.h"
#include "ardour/session.h"
#include "ardour/session_playlists.h"
#include "ardour/strip_silence.h"
@@ -753,7 +754,7 @@ Editor::build_region_boundary_cache ()
if (ARDOUR_UI::instance()->video_timeline) {
region_boundary_cache.push_back (ARDOUR_UI::instance()->video_timeline->get_video_start_offset());
}
-
+
std::pair<samplepos_t, samplepos_t> ext = session_gui_extents (false);
samplepos_t session_end = ext.second;
@@ -6422,79 +6423,13 @@ Editor::split_region ()
void
Editor::select_next_stripable (bool routes_only)
{
- if (selection->tracks.empty()) {
- selection->set (track_views.front());
- return;
- }
-
- TimeAxisView* current = selection->tracks.front();
-
- bool valid;
- do {
- for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
-
- if (*i == current) {
- ++i;
- if (i != track_views.end()) {
- current = (*i);
- } else {
- current = (*(track_views.begin()));
- //selection->set (*(track_views.begin()));
- }
- break;
- }
- }
-
- if (routes_only) {
- RouteUI* rui = dynamic_cast<RouteUI *>(current);
- valid = rui && rui->route()->active();
- } else {
- valid = 0 != current->stripable ().get();
- }
-
- } while (current->hidden() || !valid);
-
- selection->set (current);
-
- ensure_time_axis_view_is_visible (*current, false);
+ _session->selection().select_next_stripable (false, routes_only);
}
void
Editor::select_prev_stripable (bool routes_only)
{
- if (selection->tracks.empty()) {
- selection->set (track_views.front());
- return;
- }
-
- TimeAxisView* current = selection->tracks.front();
-
- bool valid;
- do {
- for (TrackViewList::reverse_iterator i = track_views.rbegin(); i != track_views.rend(); ++i) {
-
- if (*i == current) {
- ++i;
- if (i != track_views.rend()) {
- current = (*i);
- } else {
- current = *(track_views.rbegin());
- }
- break;
- }
- }
- if (routes_only) {
- RouteUI* rui = dynamic_cast<RouteUI *>(current);
- valid = rui && rui->route()->active();
- } else {
- valid = 0 != current->stripable ().get();
- }
-
- } while (current->hidden() || !valid);
-
- selection->set (current);
-
- ensure_time_axis_view_is_visible (*current, false);
+ _session->selection().select_prev_stripable (false, routes_only);
}
void
@@ -7366,7 +7301,7 @@ Editor::playhead_forward_to_grid ()
_session->request_locate (0);
}
} else {
-
+
if (pos.sample < max_samplepos - 1) {
pos.sample += 2;
snap_to_internal (pos, RoundUpAlways, SnapToGrid_Scaled, true);
@@ -7374,7 +7309,7 @@ Editor::playhead_forward_to_grid ()
}
}
-
+
/* keep PH visible in window */
if (pos.sample > (_leftmost_sample + current_page_samples() *0.9)) {
reset_x_origin (pos.sample - (current_page_samples()*0.9));
@@ -7399,7 +7334,7 @@ Editor::playhead_backward_to_grid ()
_session->request_locate (0);
}
} else {
-
+
if (pos.sample > 2) {
pos.sample -= 2;
snap_to_internal (pos, RoundDownAlways, SnapToGrid_Scaled, true);
@@ -7415,7 +7350,7 @@ Editor::playhead_backward_to_grid ()
_session->request_locate (pos.sample, _session->transport_rolling());
}
-
+
/* keep PH visible in window */
if (pos.sample < (_leftmost_sample + current_page_samples() *0.1)) {
reset_x_origin (pos.sample - (current_page_samples()*0.1));
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 6f11e59900..b9b9eccaca 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -656,60 +656,18 @@ Mixer_UI::select_none ()
deselect_all_strip_processors();
}
- void
+void
Mixer_UI::select_next_strip ()
{
deselect_all_strip_processors();
- strips.sort (MixerStripSorter());
-
- if (_selection.empty()) {
- _selection.set (strips.front());
- return;
- }
-
- bool select_me = false;
-
- for (list<MixerStrip*>::iterator i = strips.begin(); i != strips.end(); ++i) {
-
- if (select_me) {
- _selection.set (*i);
- return;
- }
-
- if ((*i)->selected()) {
- select_me = true;
- }
- }
-
- _selection.set (strips.front());
+ _session->selection().select_next_stripable (true, false);
}
void
Mixer_UI::select_prev_strip ()
{
deselect_all_strip_processors();
- strips.sort (MixerStripSorter());
-
- if (_selection.empty()) {
- _selection.set (strips.back());
- return;
- }
-
- bool select_me = false;
-
- for (list<MixerStrip*>::reverse_iterator i = strips.rbegin(); i != strips.rend(); ++i) {
-
- if (select_me) {
- _selection.set (*i);
- return;
- }
-
- if ((*i)->selected()) {
- select_me = true;
- }
- }
-
- _selection.set (strips.back());
+ _session->selection().select_prev_stripable (true, false);
}
void