X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_selection.cc;h=c0f3f60e3f5b9e2d0a004a9bbf567d06a479c998;hb=ec6a85f921b2b6c950c6c94f0392c059cffba5dd;hp=3161b01007b0f54e3c88eb6f9c840556f2b1f5bc;hpb=434ca0e6ee834a726a606c0a4b5e5b7bb42b377c;p=ardour.git diff --git a/gtk2_ardour/region_selection.cc b/gtk2_ardour/region_selection.cc index 3161b01007..c0f3f60e3f 100644 --- a/gtk2_ardour/region_selection.cc +++ b/gtk2_ardour/region_selection.cc @@ -87,6 +87,16 @@ bool RegionSelection::contains (RegionView* rv) const return find (begin(), end(), rv) != end(); } +bool RegionSelection::contains (boost::shared_ptr region) const +{ + for (const_iterator r = begin (); r != end (); ++r) { + if ((*r)->region () == region) { + return true; + } + } + return false; +} + /** Add a region to the selection. * @param rv Region to add. * @return false if we already had the region or if it cannot be added, @@ -95,13 +105,13 @@ bool RegionSelection::contains (RegionView* rv) const bool RegionSelection::add (RegionView* rv) { - if (!rv->region()->playlist()) { - /* not attached to a playlist - selection not allowed. - This happens if the user tries to select a region - during a capture pass. - */ - return false; - } + if (!rv->region()->playlist()) { + /* not attached to a playlist - selection not allowed. + This happens if the user tries to select a region + during a capture pass. + */ + return false; + } if (contains (rv)) { /* we already have it */ @@ -170,9 +180,9 @@ RegionSelection::add_to_layer (RegionView * rv) } struct RegionSortByTime { - bool operator() (const RegionView* a, const RegionView* b) const { - return a->region()->position() < b->region()->position(); - } + bool operator() (const RegionView* a, const RegionView* b) const { + return a->region()->position() < b->region()->position(); + } }; @@ -195,16 +205,16 @@ RegionSelection::by_position (list& foo) const } struct RegionSortByTrack { - bool operator() (const RegionView* a, const RegionView* b) const { + bool operator() (const RegionView* a, const RegionView* b) const { - /* really, track and position */ + /* really, track and position */ - if (a->get_time_axis_view().order() == b->get_time_axis_view().order()) { - return a->region()->position() < b->region()->position(); - } else { - return a->get_time_axis_view().order() < b->get_time_axis_view().order(); - } - } + if (a->get_time_axis_view().order() == b->get_time_axis_view().order()) { + return a->region()->position() < b->region()->position(); + } else { + return a->get_time_axis_view().order() < b->get_time_axis_view().order(); + } + } };