projects
/
dcpomatic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ba049fd
)
Try to respect ordering when dragging and dropping.
author
Carl Hetherington
<cth@carlh.net>
Wed, 24 May 2017 11:09:45 +0000
(12:09 +0100)
committer
Carl Hetherington
<cth@carlh.net>
Wed, 24 May 2017 11:23:59 +0000
(12:23 +0100)
src/tools/dcpomatic_kdm.cc
patch
|
blob
|
history
diff --git
a/src/tools/dcpomatic_kdm.cc
b/src/tools/dcpomatic_kdm.cc
index 95ed07769e94b07d90d0340df3587ab4c19fe40b..0ee8a07862a7f49ca57582a9912ddf569102d2f9 100644
(file)
--- 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);
_dkdm->Delete (from->first);
_dkdm_id.erase (from->first);
- add_dkdm_view (from->second);
+ add_dkdm_view (from->second
, dynamic_pointer_cast<DKDM>(to->second) ? to->first : optional<wxTreeItemId>()
);
}
void add_dkdm_clicked ()
}
void add_dkdm_clicked ()
@@
-446,14
+446,20
@@
private:
/** @param dkdm Thing to add.
* @param parent Parent group, or 0.
*/
/** @param dkdm Thing to add.
* @param parent Parent group, or 0.
*/
- void add_dkdm_view (shared_ptr<DKDMBase> base)
+ void add_dkdm_view (shared_ptr<DKDMBase> base
, optional<wxTreeItemId> previous = optional<wxTreeItemId>()
)
{
if (!base->parent()) {
/* This is the root group */
_dkdm_id[_dkdm->AddRoot("root")] = base;
} else {
/* Add base to the view */
{
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 */
}
/* Add children */