summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-01-04 22:46:51 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2013-01-04 22:46:51 +0000
commit72393f101ba2cae980838dd0d857719719ecc3d7 (patch)
treea54069a53df9879b75bfd6ae3455fd60cc1a1d30 /gtk2_ardour
parent1f6684237c1711858c4853016131a70a6ef0edf9 (diff)
allow region list selection of whole file regions to select every instance of a region that has any source relationship with that whole file region (from a logic feature that came up while writing the manual)
git-svn-id: svn://localhost/ardour2/branches/3.0@13779 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/audio_clock.cc2
-rw-r--r--gtk2_ardour/editor.cc8
-rw-r--r--gtk2_ardour/editor.h2
-rw-r--r--gtk2_ardour/editor_regions.cc17
-rw-r--r--gtk2_ardour/editor_selection.cc2
5 files changed, 15 insertions, 16 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 6c85493939..2eaa4be609 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -890,7 +890,7 @@ AudioClock::end_edit_relative (bool add)
}
void
-AudioClock::session_property_changed (const PropertyChange& p)
+AudioClock::session_property_changed (const PropertyChange&)
{
set (last_when, true);
}
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index a74b4d4e2d..acbb792db5 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -4648,7 +4648,7 @@ Editor::get_regions_from_selection_and_entered ()
}
void
-Editor::get_regions_corresponding_to (boost::shared_ptr<Region> region, vector<RegionView*>& regions)
+Editor::get_regions_corresponding_to (boost::shared_ptr<Region> region, vector<RegionView*>& regions, bool src_comparison)
{
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
@@ -4667,7 +4667,11 @@ Editor::get_regions_corresponding_to (boost::shared_ptr<Region> region, vector<R
}
if ((pl = (tr->playlist())) != 0) {
- pl->get_region_list_equivalent_regions (region, results);
+ if (src_comparison) {
+ pl->get_source_equivalent_regions (region, results);
+ } else {
+ pl->get_region_list_equivalent_regions (region, results);
+ }
}
for (vector<boost::shared_ptr<Region> >::iterator ir = results.begin(); ir != results.end(); ++ir) {
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 17891c3765..a55fef1913 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -435,7 +435,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void do_import (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, framepos_t&);
void do_embed (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, framepos_t&);
- void get_regions_corresponding_to (boost::shared_ptr<ARDOUR::Region> region, std::vector<RegionView*>& regions);
+ void get_regions_corresponding_to (boost::shared_ptr<ARDOUR::Region> region, std::vector<RegionView*>& regions, bool src_comparison);
void center_screen (framepos_t);
diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc
index 8561fbbfb5..16c401b90e 100644
--- a/gtk2_ardour/editor_regions.cc
+++ b/gtk2_ardour/editor_regions.cc
@@ -551,6 +551,7 @@ EditorRegions::selection_changed ()
for (TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); i != rows.end(); ++i) {
if ((iter = _model->get_iter (*i))) {
+
boost::shared_ptr<Region> region = (*iter)[_columns.region];
// they could have clicked on a row that is just a placeholder, like "Hidden"
@@ -559,18 +560,12 @@ EditorRegions::selection_changed ()
if (region) {
- if (region->automatic()) {
-
- _display.get_selection()->unselect(*i);
-
- } else {
- _change_connection.block (true);
- _editor->set_selected_regionview_from_region_list (region, Selection::Add);
-
- _change_connection.block (false);
- }
+ _change_connection.block (true);
+ _editor->set_selected_regionview_from_region_list (region, Selection::Add);
+ _change_connection.block (false);
}
}
+
}
} else {
_editor->get_selection().clear_regions ();
@@ -1300,7 +1295,7 @@ EditorRegions::name_edit (const std::string& path, const std::string& new_text)
if (region) {
vector<RegionView*> equivalents;
- _editor->get_regions_corresponding_to (region, equivalents);
+ _editor->get_regions_corresponding_to (region, equivalents, false);
for (vector<RegionView*>::iterator i = equivalents.begin(); i != equivalents.end(); ++i) {
if (new_text != (*i)->region()->name()) {
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 41652196f1..1089381a15 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -880,7 +880,7 @@ Editor::set_selected_regionview_from_region_list (boost::shared_ptr<Region> regi
{
vector<RegionView*> all_equivalent_regions;
- get_regions_corresponding_to (region, all_equivalent_regions);
+ get_regions_corresponding_to (region, all_equivalent_regions, region->whole_file());
if (all_equivalent_regions.empty()) {
return;