From 33650c4a040550ff4a3d60f9c26bdb4d69203223 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sun, 11 Jan 2015 16:20:24 +0100 Subject: [PATCH] Add non-const version of Group::groupsRecursive(). --- src/core/Group.cpp | 14 ++++++++++++++ src/core/Group.h | 1 + src/gui/EditWidgetIcons.cpp | 2 +- src/gui/entry/EntryModel.cpp | 5 ++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/core/Group.cpp b/src/core/Group.cpp index e96b857b..57e0bae9 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -434,6 +434,20 @@ QList Group::groupsRecursive(bool includeSelf) const groupList.append(this); } + Q_FOREACH (const Group* group, m_children) { + groupList.append(group->groupsRecursive(true)); + } + + return groupList; +} + +QList Group::groupsRecursive(bool includeSelf) +{ + QList groupList; + if (includeSelf) { + groupList.append(this); + } + Q_FOREACH (Group* group, m_children) { groupList.append(group->groupsRecursive(true)); } diff --git a/src/core/Group.h b/src/core/Group.h index 7391f886..3d361804 100644 --- a/src/core/Group.h +++ b/src/core/Group.h @@ -101,6 +101,7 @@ public: const QList& entries() const; QList entriesRecursive(bool includeHistoryItems = false) const; QList groupsRecursive(bool includeSelf) const; + QList groupsRecursive(bool includeSelf); QSet customIconsRecursive() const; /** * Creates a duplicate of this group including all child entries and groups. diff --git a/src/gui/EditWidgetIcons.cpp b/src/gui/EditWidgetIcons.cpp index 9e857453..8c676af2 100644 --- a/src/gui/EditWidgetIcons.cpp +++ b/src/gui/EditWidgetIcons.cpp @@ -168,7 +168,7 @@ void EditWidgetIcons::removeCustomIcon() } } - QList allGroups = m_database->rootGroup()->groupsRecursive(true); + QList allGroups = m_database->rootGroup()->groupsRecursive(true); Q_FOREACH (const Group* group, allGroups) { if (iconUuid == group->iconUuid() && m_currentUuid != group->uuid()) { iconUsedCount++; diff --git a/src/gui/entry/EntryModel.cpp b/src/gui/entry/EntryModel.cpp index 369a4abb..7ee1df8f 100644 --- a/src/gui/entry/EntryModel.cpp +++ b/src/gui/entry/EntryModel.cpp @@ -85,7 +85,10 @@ void EntryModel::setEntryList(const QList& entries) Q_FOREACH (Database* db, databases) { Q_ASSERT(db); - m_allGroups.append(db->rootGroup()->groupsRecursive(true)); + Q_FOREACH (const Group* group, db->rootGroup()->groupsRecursive(true)) { + m_allGroups.append(group); + } + if (db->metadata()->recycleBin()) { m_allGroups.removeOne(db->metadata()->recycleBin()); }