summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor_selection.cc')
-rw-r--r--gtk2_ardour/editor_selection.cc103
1 files changed, 52 insertions, 51 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 378885e293..3b53a2d821 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -49,23 +49,23 @@ using namespace Editing;
struct TrackViewByPositionSorter
{
- bool operator() (const TimeAxisViewPtr a, const TimeAxisViewPtr b) {
+ bool operator() (const TimeAxisView* a, const TimeAxisView *b) {
return a->y_position() < b->y_position();
}
};
bool
-Editor::extend_selection_to_track (TimeAxisViewPtr view)
+Editor::extend_selection_to_track (TimeAxisView& view)
{
- if (selection->selected (view)) {
+ if (selection->selected (&view)) {
/* already selected, do nothing */
return false;
}
if (selection->tracks.empty()) {
- if (!selection->selected (view)) {
- selection->set (view);
+ if (!selection->selected (&view)) {
+ selection->set (&view);
return true;
} else {
return false;
@@ -82,15 +82,15 @@ Editor::extend_selection_to_track (TimeAxisViewPtr view)
sorted.sort (cmp);
- if (!selection->selected (view)) {
- to_be_added.push_back (view);
+ if (!selection->selected (&view)) {
+ to_be_added.push_back (&view);
}
/* figure out if we should go forward or backwards */
for (TrackViewList::iterator i = sorted.begin(); i != sorted.end(); ++i) {
- if (*i == view) {
+ if ((*i) == &view) {
passed_clicked = true;
}
@@ -110,7 +110,7 @@ Editor::extend_selection_to_track (TimeAxisViewPtr view)
for (TrackViewList::iterator i = sorted.begin(); i != sorted.end(); ++i) {
- if (*i == view) {
+ if ((*i) == &view) {
passed_clicked = true;
continue;
}
@@ -131,7 +131,7 @@ Editor::extend_selection_to_track (TimeAxisViewPtr view)
for (TrackViewList::reverse_iterator r = sorted.rbegin(); r != sorted.rend(); ++r) {
- if (*r == view) {
+ if ((*r) == &view) {
passed_clicked = true;
continue;
}
@@ -180,36 +180,36 @@ Editor::set_selected_track_as_side_effect (bool force)
if (!selection->tracks.empty()) {
if (!selection->selected (clicked_routeview)) {
- selection->add (boost::static_pointer_cast<TimeAxisView> (clicked_routeview));
+ selection->add (clicked_routeview);
}
} else if (force) {
- selection->set (boost::static_pointer_cast<TimeAxisView> (clicked_routeview));
+ selection->set (clicked_routeview);
}
}
void
-Editor::set_selected_track (TimeAxisViewPtr view, Selection::Operation op, bool no_remove)
+Editor::set_selected_track (TimeAxisView& view, Selection::Operation op, bool no_remove)
{
switch (op) {
case Selection::Toggle:
- if (selection->selected (view)) {
+ if (selection->selected (&view)) {
if (!no_remove) {
- selection->remove (view);
+ selection->remove (&view);
}
} else {
- selection->add (view);
+ selection->add (&view);
}
break;
case Selection::Add:
- if (!selection->selected (view)) {
- selection->add (view);
+ if (!selection->selected (&view)) {
+ selection->add (&view);
}
break;
case Selection::Set:
- selection->set (view);
+ selection->set (&view);
break;
case Selection::Extend:
@@ -229,7 +229,7 @@ Editor::set_selected_track_from_click (bool press, Selection::Operation op, bool
return;
}
- set_selected_track (clicked_routeview, op, no_remove);
+ set_selected_track (*clicked_routeview, op, no_remove);
}
bool
@@ -269,7 +269,7 @@ Editor::get_onscreen_tracks (TrackViewList& tvl)
*/
void
-Editor::get_equivalent_tracks (RouteTimeAxisViewPtr basis, set<RouteTimeAxisViewPtr> & equivs, RouteGroup::Property prop) const
+Editor::get_equivalent_tracks (RouteTimeAxisView* basis, set<RouteTimeAxisView*> & equivs, RouteGroup::Property prop) const
{
equivs.insert (basis);
@@ -280,7 +280,7 @@ Editor::get_equivalent_tracks (RouteTimeAxisViewPtr basis, set<RouteTimeAxisView
properties; find other members */
for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i) {
- RouteTimeAxisViewPtr v = boost::dynamic_pointer_cast<RouteTimeAxisView> (*i);
+ RouteTimeAxisView* v = dynamic_cast<RouteTimeAxisView*> (*i);
if (v && v->route()->route_group() == group) {
equivs.insert (v);
}
@@ -294,10 +294,10 @@ Editor::get_equivalent_tracks (RouteTimeAxisViewPtr basis, set<RouteTimeAxisView
*/
void
-Editor::get_relevant_tracks (set<RouteTimeAxisViewPtr>& relevant_tracks) const
+Editor::get_relevant_tracks (set<RouteTimeAxisView*>& relevant_tracks) const
{
for (TrackSelection::iterator ti = selection->tracks.begin(); ti != selection->tracks.end(); ++ti) {
- RouteTimeAxisViewPtr rtv = boost::dynamic_pointer_cast<RouteTimeAxisView> (*ti);
+ RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*> (*ti);
if (rtv) {
get_equivalent_tracks (rtv, relevant_tracks, RouteGroup::Select);
}
@@ -313,37 +313,37 @@ Editor::get_relevant_tracks (set<RouteTimeAxisViewPtr>& relevant_tracks) const
*/
void
-Editor::mapover_tracks (slot<void, RouteTimeAxisViewPtr, uint32_t> sl, TimeAxisViewPtr basis, RouteGroup::Property prop) const
+Editor::mapover_tracks (slot<void, RouteTimeAxisView&, uint32_t> sl, TimeAxisView* basis, RouteGroup::Property prop) const
{
- RouteTimeAxisViewPtr route_basis = boost::dynamic_pointer_cast<RouteTimeAxisView> (basis);
+ RouteTimeAxisView* route_basis = dynamic_cast<RouteTimeAxisView*> (basis);
if (route_basis == 0) {
return;
}
- set<RouteTimeAxisViewPtr> tracks;
+ set<RouteTimeAxisView*> tracks;
get_equivalent_tracks (route_basis, tracks, prop);
/* call the slots */
uint32_t const sz = tracks.size ();
- for (set<RouteTimeAxisViewPtr>::iterator i = tracks.begin(); i != tracks.end(); ++i) {
- sl (*i, sz);
+ for (set<RouteTimeAxisView*>::iterator i = tracks.begin(); i != tracks.end(); ++i) {
+ sl (**i, sz);
}
}
void
-Editor::mapped_get_equivalent_regions (RouteTimeAxisViewPtr tv, uint32_t ignored, RegionView * basis, vector<RegionView*>* all_equivs) const
+Editor::mapped_get_equivalent_regions (RouteTimeAxisView& tv, uint32_t ignored, RegionView * basis, vector<RegionView*>* all_equivs) const
{
boost::shared_ptr<Playlist> pl;
vector<boost::shared_ptr<Region> > results;
RegionView* marv;
boost::shared_ptr<Diskstream> ds;
- if ((ds = tv->get_diskstream()) == 0) {
+ if ((ds = tv.get_diskstream()) == 0) {
/* bus */
return;
}
- if (tv == basis->get_time_axis_view()) {
+ if (&tv == &basis->get_time_axis_view()) {
/* looking in same track as the original */
return;
}
@@ -353,7 +353,7 @@ Editor::mapped_get_equivalent_regions (RouteTimeAxisViewPtr tv, uint32_t ignored
}
for (vector<boost::shared_ptr<Region> >::iterator ir = results.begin(); ir != results.end(); ++ir) {
- if ((marv = tv->view()->find_view (*ir)) != 0) {
+ if ((marv = tv.view()->find_view (*ir)) != 0) {
all_equivs->push_back (marv);
}
}
@@ -362,7 +362,7 @@ Editor::mapped_get_equivalent_regions (RouteTimeAxisViewPtr tv, uint32_t ignored
void
Editor::get_equivalent_regions (RegionView* basis, vector<RegionView*>& equivalent_regions, RouteGroup::Property prop) const
{
- mapover_tracks (bind (mem_fun (*this, &Editor::mapped_get_equivalent_regions), basis, &equivalent_regions), basis->get_trackview(), prop);
+ mapover_tracks (bind (mem_fun (*this, &Editor::mapped_get_equivalent_regions), basis, &equivalent_regions), &basis->get_trackview(), prop);
/* add clicked regionview since we skipped all other regions in the same track as the one it was in */
@@ -377,9 +377,10 @@ Editor::get_equivalent_regions (RegionSelection & basis, RouteGroup::Property pr
for (RegionSelection::const_iterator i = basis.begin(); i != basis.end(); ++i) {
vector<RegionView*> eq;
-
+
mapover_tracks (
- bind (mem_fun (*this, &Editor::mapped_get_equivalent_regions), *i, &eq), (*i)->get_trackview(), prop
+ bind (mem_fun (*this, &Editor::mapped_get_equivalent_regions), *i, &eq),
+ &(*i)->get_trackview(), prop
);
for (vector<RegionView*>::iterator j = eq.begin(); j != eq.end(); ++j) {
@@ -400,9 +401,9 @@ Editor::get_regionview_count_from_region_list (boost::shared_ptr<Region> region)
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
- RouteTimeAxisViewPtr tatv;
+ RouteTimeAxisView* tatv;
- if ((tatv = boost::dynamic_pointer_cast<RouteTimeAxisView> (*i)) != 0) {
+ if ((tatv = dynamic_cast<RouteTimeAxisView*> (*i)) != 0) {
boost::shared_ptr<Playlist> pl;
vector<boost::shared_ptr<Region> > results;
@@ -529,7 +530,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
first_frame = max_frames;
for (RegionSelection::iterator x = selection->regions.begin(); x != selection->regions.end(); ++x) {
- if ((*x)->get_time_axis_view() == clicked_regionview->get_time_axis_view()) {
+ if (&(*x)->get_time_axis_view() == &clicked_regionview->get_time_axis_view()) {
if ((*x)->region()->last_frame() > last_frame) {
last_frame = (*x)->region()->last_frame();
@@ -609,8 +610,8 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
/* 2. find all the tracks we should select in */
- set<RouteTimeAxisViewPtr> relevant_tracks;
- set<RouteTimeAxisViewPtr> already_in_selection;
+ set<RouteTimeAxisView*> relevant_tracks;
+ set<RouteTimeAxisView*> already_in_selection;
get_relevant_tracks (relevant_tracks);
@@ -624,7 +625,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
if (!selection->selected (entered_regionview)) {
- RouteTimeAxisViewPtr rtv = boost::dynamic_pointer_cast<RouteTimeAxisView> (entered_regionview->get_time_axis_view());
+ RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*> (&entered_regionview->get_time_axis_view());
if (rtv) {
@@ -636,17 +637,17 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
already a selected region.
*/
- RouteTimeAxisViewPtr closest;
+ RouteTimeAxisView* closest = 0;
int distance = INT_MAX;
int key = rtv->route()->order_key ("editor");
for (RegionSelection::iterator x = selection->regions.begin(); x != selection->regions.end(); ++x) {
- RouteTimeAxisViewPtr artv = boost::dynamic_pointer_cast<RouteTimeAxisView>((*x)->get_time_axis_view());
+ RouteTimeAxisView* artv = dynamic_cast<RouteTimeAxisView*>(&(*x)->get_time_axis_view());
if (artv && artv != rtv) {
- pair<set<RouteTimeAxisViewPtr>::iterator,bool> result;
+ pair<set<RouteTimeAxisView*>::iterator,bool> result;
result = already_in_selection.insert (artv);
@@ -677,7 +678,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
}
for (TrackViewList::iterator x = track_views.begin(); x != track_views.end(); ++x) {
- RouteTimeAxisViewPtr artv = boost::dynamic_pointer_cast<RouteTimeAxisView>(*x);
+ RouteTimeAxisView* artv = dynamic_cast<RouteTimeAxisView*>(*x);
if (artv && artv != rtv) {
int k = artv->route()->order_key ("editor");
@@ -710,7 +711,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
get_relevant_tracks (relevant_tracks);
- for (set<RouteTimeAxisViewPtr>::iterator t = relevant_tracks.begin(); t != relevant_tracks.end(); ++t) {
+ for (set<RouteTimeAxisView*>::iterator t = relevant_tracks.begin(); t != relevant_tracks.end(); ++t) {
(*t)->get_selectables (first_frame, last_frame, -1.0, -1.0, results);
}
@@ -807,7 +808,7 @@ Editor::track_selection_changed ()
case 0:
break;
default:
- set_selected_mixer_strip (selection->tracks.front());
+ set_selected_mixer_strip (*(selection->tracks.front()));
break;
}
@@ -1060,7 +1061,7 @@ Editor::set_selection_from_region ()
return;
}
- selection->set (TimeAxisViewPtr (), selection->regions.start(), selection->regions.end_frame());
+ selection->set (0, selection->regions.start(), selection->regions.end_frame());
if (!Profile->get_sae()) {
set_mouse_mode (Editing::MouseRange, false);
}
@@ -1093,7 +1094,7 @@ void
Editor::set_selection_from_range (Location& loc)
{
begin_reversible_command (_("set selection from range"));
- selection->set (TimeAxisViewPtr (), loc.start(), loc.end());
+ selection->set (0, loc.start(), loc.end());
commit_reversible_command ();
if (!Profile->get_sae()) {
@@ -1320,7 +1321,7 @@ Editor::select_range_between ()
}
set_mouse_mode (MouseRange);
- selection->set (TimeAxisViewPtr (), start, end);
+ selection->set ((TimeAxisView*) 0, start, end);
}
bool