X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic_kdm.cc;h=0ee8a07862a7f49ca57582a9912ddf569102d2f9;hp=95ed07769e94b07d90d0340df3587ab4c19fe40b;hb=e6874d3e34a919917fa19025cafdb0c64cb855a9;hpb=ba049fdab4a47023d6d5ee8b5ff9bbb710afbabb diff --git a/src/tools/dcpomatic_kdm.cc b/src/tools/dcpomatic_kdm.cc index 95ed07769..0ee8a0786 100644 --- a/src/tools/dcpomatic_kdm.cc +++ b/src/tools/dcpomatic_kdm.cc @@ -395,7 +395,7 @@ private: _dkdm->Delete (from->first); _dkdm_id.erase (from->first); - add_dkdm_view (from->second); + add_dkdm_view (from->second, dynamic_pointer_cast(to->second) ? to->first : optional()); } void add_dkdm_clicked () @@ -446,14 +446,20 @@ private: /** @param dkdm Thing to add. * @param parent Parent group, or 0. */ - void add_dkdm_view (shared_ptr base) + void add_dkdm_view (shared_ptr base, optional previous = optional()) { if (!base->parent()) { /* This is the root group */ _dkdm_id[_dkdm->AddRoot("root")] = base; } else { /* Add base to the view */ - _dkdm_id[_dkdm->AppendItem(dkdm_to_id(base->parent()), std_to_wx(base->name()))] = base; + wxTreeItemId added; + if (previous) { + added = _dkdm->InsertItem(dkdm_to_id(base->parent()), *previous, std_to_wx(base->name())); + } else { + added = _dkdm->AppendItem(dkdm_to_id(base->parent()), std_to_wx(base->name())); + } + _dkdm_id[added] = base; } /* Add children */