diff --git a/src/core/Group.cpp b/src/core/Group.cpp index 2f6ace769..c82209039 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -1155,13 +1155,18 @@ void Group::applyGroupIconToChildEntries() void Group::sortChildrenRecursively(bool reverse) { - std::sort( - m_children.begin(), m_children.end(), [reverse](const Group* childGroup1, const Group* childGroup2) -> bool { - QString name1 = childGroup1->name(); - QString name2 = childGroup2->name(); - return reverse ? name1.compare(name2, Qt::CaseInsensitive) > 0 - : name1.compare(name2, Qt::CaseInsensitive) < 0; - }); + Group* recycleBin = nullptr; + if (database()) { + recycleBin = database()->metadata()->recycleBin(); + } + std::sort(m_children.begin(), m_children.end(), [=](const Group* childGroup1, const Group* childGroup2) -> bool { + if (childGroup1 == recycleBin) { + return false; + } + QString name1 = childGroup1->name(); + QString name2 = childGroup2->name(); + return reverse ? name1.compare(name2, Qt::CaseInsensitive) > 0 : name1.compare(name2, Qt::CaseInsensitive) < 0; + }); for (auto child : m_children) { child->sortChildrenRecursively(reverse);