check both whole-file and part-file regions when adding to the visible region list...
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 25 Jun 2008 15:06:07 +0000 (15:06 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 25 Jun 2008 15:06:07 +0000 (15:06 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3491 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_region_list.cc

index fd874fe51b9be78bce0153e40ff62ab1aee0dffe..fb22f6ed676ea8760a2e4a099bfc4bdc8e24ca53 100644 (file)
@@ -128,6 +128,18 @@ Editor::add_audio_region_to_region_display (boost::shared_ptr<AudioRegion> regio
 
        } else if (region->whole_file()) {
 
+               TreeModel::iterator i;
+               TreeModel::Children rows = region_list_model->children();
+
+               for (i = rows.begin(); i != rows.end(); ++i) {
+                       
+                       boost::shared_ptr<Region> rr = (*i)[region_list_columns.region];
+
+                       if (region->region_list_equivalent (rr)) {
+                               return;
+                       }
+               }
+
                row = *(region_list_model->append());
                if (missing_source) {
                        c.set_rgb(65535,0,0);     // FIXME: error color from style
@@ -187,6 +199,18 @@ Editor::add_audio_region_to_region_display (boost::shared_ptr<AudioRegion> regio
                                        break;
                                }
                        }
+
+                       TreeModel::iterator ii;
+                       TreeModel::Children subrows = (*i).children();
+
+                       for (ii = subrows.begin(); ii != subrows.end(); ++ii) {
+                               
+                               boost::shared_ptr<Region> rrr = (*ii)[region_list_columns.region];
+
+                               if (region->region_list_equivalent (rrr)) {
+                                       return;
+                               }
+                       }
                }
 
                if (!found_parent) {