summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selection.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2007-10-07 15:51:14 +0000
committerCarl Hetherington <carl@carlh.net>2007-10-07 15:51:14 +0000
commit3f38e6b7f56ad85891d3669e0f1c58e6124b07f6 (patch)
tree49040369362473ad830907cbd524667d39d1703c /gtk2_ardour/selection.cc
parent49763a55c9bcbff2cb7844f36df777bbfadab172 (diff)
Re-work edit group selection in line with suggestions from Paul.
git-svn-id: svn://localhost/ardour2/trunk@2529 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/selection.cc')
-rw-r--r--gtk2_ardour/selection.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc
index b9c44bea13..f0037588a0 100644
--- a/gtk2_ardour/selection.cc
+++ b/gtk2_ardour/selection.cc
@@ -29,6 +29,7 @@
#include "selection_templates.h"
#include "time_axis_view.h"
#include "automation_time_axis.h"
+#include "public_editor.h"
#include "i18n.h"
@@ -290,6 +291,7 @@ Selection::add (RegionView* r)
{
if (find (regions.begin(), regions.end(), r) == regions.end()) {
regions.add (r);
+ select_edit_group_regions ();
add (&r->get_trackview());
RegionsChanged ();
}
@@ -310,6 +312,7 @@ Selection::add (vector<RegionView*>& v)
}
if (changed) {
+ select_edit_group_regions ();
RegionsChanged ();
}
}
@@ -679,3 +682,21 @@ Selection::add (vector<AutomationSelectable*>& autos)
PointsChanged ();
}
+
+void
+Selection::select_edit_group_regions ()
+{
+ std::set<RegionView*> regions_to_add;
+
+ for (RegionSelection::iterator i = regions.begin(); i != regions.end(); ++i) {
+ vector<RegionView*> e;
+ editor->get_equivalent_regions (*i, e);
+ for (vector<RegionView*>::iterator j = e.begin(); j != e.end(); ++j) {
+ regions_to_add.insert(*j);
+ }
+ }
+
+ for (std::set<RegionView*>::iterator i = regions_to_add.begin(); i != regions_to_add.end(); ++i) {
+ add (*i);
+ }
+}