X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdkdm_wrapper.cc;h=76f9217aac4a64d3b6f589aa20290511a66ddad4;hb=45b0314b61c3c3b588648fb410f82546a4e5b40c;hp=809739e06fd471d14a564fbc1de468d6a1f93f59;hpb=ba049fdab4a47023d6d5ee8b5ff9bbb710afbabb;p=dcpomatic.git diff --git a/src/lib/dkdm_wrapper.cc b/src/lib/dkdm_wrapper.cc index 809739e06..76f9217aa 100644 --- a/src/lib/dkdm_wrapper.cc +++ b/src/lib/dkdm_wrapper.cc @@ -71,10 +71,18 @@ DKDMGroup::as_xml (xmlpp::Element* node) const } void -DKDMGroup::add (shared_ptr child) +DKDMGroup::add (shared_ptr child, shared_ptr previous) { DCPOMATIC_ASSERT (child); - _children.push_back (child); + if (previous) { + list >::iterator i = find (_children.begin(), _children.end(), previous); + if (i != _children.end ()) { + ++i; + } + _children.insert (i, child); + } else { + _children.push_back (child); + } child->set_parent (dynamic_pointer_cast (shared_from_this ())); }