X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_selection.cc;h=ac8a783a419ba8b061f5d8a1cf9c7179ab4cf42a;hb=f19c01bbb42f4e80769adb8e3e1015724fe9d6c6;hp=8074383141fff7d7ca4e17042c80a84c314d37b2;hpb=3b885c312674feef410243bafeef1598238ebb18;p=ardour.git diff --git a/gtk2_ardour/region_selection.cc b/gtk2_ardour/region_selection.cc index 8074383141..ac8a783a41 100644 --- a/gtk2_ardour/region_selection.cc +++ b/gtk2_ardour/region_selection.cc @@ -18,7 +18,7 @@ #include -#include +#include "ardour/region.h" #include "region_view.h" #include "region_selection.h" @@ -28,7 +28,8 @@ using namespace ARDOUR; using namespace PBD; using namespace sigc; - +/** Construct an empty RegionSelection. + */ RegionSelection::RegionSelection () { RegionView::RegionViewGoingAway.connect (mem_fun(*this, &RegionSelection::remove_it)); @@ -37,7 +38,12 @@ RegionSelection::RegionSelection () _current_end = 0; } +/** Copy constructor. + * @param other RegionSelection to copy. + */ RegionSelection::RegionSelection (const RegionSelection& other) + : std::list() + , sigc::trackable(other) { RegionView::RegionViewGoingAway.connect (mem_fun(*this, &RegionSelection::remove_it)); @@ -48,6 +54,9 @@ RegionSelection::RegionSelection (const RegionSelection& other) _current_end = other._current_end; } +/** operator= to set a RegionSelection to be the same as another. + * @param other Other RegionSelection. + */ RegionSelection& RegionSelection::operator= (const RegionSelection& other) { @@ -66,6 +75,8 @@ RegionSelection::operator= (const RegionSelection& other) return *this; } +/** Empty this RegionSelection. + */ void RegionSelection::clear_all() { @@ -75,11 +86,19 @@ RegionSelection::clear_all() _current_end = 0; } +/** + * @param rv RegionView. + * @return true if this selection contains rv. + */ bool RegionSelection::contains (RegionView* rv) const { return find (begin(), end(), rv) != end(); } +/** Add a region to the selection. + * @param rv Region to add. + * @return false if we already had the region, otherwise true. + */ bool RegionSelection::add (RegionView* rv) { @@ -98,19 +117,26 @@ RegionSelection::add (RegionView* rv) push_back (rv); - // add to layer sorted list + /* add to layer sorted list */ add_to_layer (rv); return true; } +/** Remove a region from the selection. + * @param rv Region to remove. + */ void RegionSelection::remove_it (RegionView *rv) { remove (rv); } +/** Remove a region from the selection. + * @param rv Region to remove. + * @return true if the region was in the selection, false if not. + */ bool RegionSelection::remove (RegionView* rv) { @@ -174,6 +200,9 @@ RegionSelection::remove (RegionView* rv) return false; } +/** Add a region to the list sorted by layer. + * @param rv Region to add. + */ void RegionSelection::add_to_layer (RegionView * rv) { @@ -200,6 +229,10 @@ struct RegionSortByTime { }; +/** + * @param foo List which will be filled with the selection's regions + * sorted by position. + */ void RegionSelection::by_position (list& foo) const { @@ -219,14 +252,19 @@ struct RegionSortByTrack { /* really, track and position */ - if (a->get_trackview().order == b->get_trackview().order) { + if (a->get_trackview().order() == b->get_trackview().order()) { return a->region()->position() < b->region()->position(); } else { - return a->get_trackview().order < b->get_trackview().order; + return a->get_trackview().order() < b->get_trackview().order(); } } }; - + + +/** + * @param List which will be filled with the selection's regions + * sorted by track and position. + */ void RegionSelection::by_track (list& foo) const { @@ -241,6 +279,9 @@ RegionSelection::by_track (list& foo) const return; } +/** + * @param Sort the selection by position and track. + */ void RegionSelection::sort_by_position_and_track () { @@ -248,6 +289,10 @@ RegionSelection::sort_by_position_and_track () sort (sorter); } +/** + * @param tv Track. + * @return true if any of the selection's regions are on tv. + */ bool RegionSelection::involves (const TimeAxisView& tv) const { @@ -258,4 +303,4 @@ RegionSelection::involves (const TimeAxisView& tv) const } return false; } - +