change the way source list adds new regions to match the way the region list does it
This avoids duplicates, updates rows etc
This commit is contained in:
parent
d5223c0c2c
commit
07324bd1e2
|
@ -508,8 +508,10 @@ EditorSources::add_source (boost::shared_ptr<ARDOUR::Region> region)
|
||||||
|
|
||||||
region->DropReferences.connect (remove_region_connections, MISSING_INVALIDATOR, boost::bind (&EditorSources::remove_weak_region, this, boost::weak_ptr<Region> (region)), gui_context());
|
region->DropReferences.connect (remove_region_connections, MISSING_INVALIDATOR, boost::bind (&EditorSources::remove_weak_region, this, boost::weak_ptr<Region> (region)), gui_context());
|
||||||
|
|
||||||
TreeModel::Row row = *(_model->append());
|
PropertyChange pc;
|
||||||
populate_row (row, region);
|
boost::shared_ptr<RegionList> rl (new RegionList);
|
||||||
|
rl->push_back (region);
|
||||||
|
regions_changed (rl, pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -519,6 +521,7 @@ EditorSources::regions_changed (boost::shared_ptr<ARDOUR::RegionList> rl, PBD::P
|
||||||
if (freeze) {
|
if (freeze) {
|
||||||
freeze_tree_model ();
|
freeze_tree_model ();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RegionList::const_iterator r = rl->begin (); r != rl->end(); ++r) {
|
for (RegionList::const_iterator r = rl->begin (); r != rl->end(); ++r) {
|
||||||
boost::shared_ptr<Region> region = *r;
|
boost::shared_ptr<Region> region = *r;
|
||||||
|
|
||||||
|
@ -537,7 +540,13 @@ EditorSources::regions_changed (boost::shared_ptr<ARDOUR::RegionList> rl, PBD::P
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == rows.end()) {
|
||||||
|
TreeModel::Row row = *(_model->append());
|
||||||
|
populate_row (row, region);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (freeze) {
|
if (freeze) {
|
||||||
thaw_tree_model ();
|
thaw_tree_model ();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user