void EntryModel::setEntryList(const QList<Entry*>& entries) { beginResetModel(); severConnections(); m_group = Q_NULLPTR; m_allGroups.clear(); m_entries = entries; m_orgEntries = entries; QSet<Database*> databases; Q_FOREACH (Entry* entry, m_entries) { databases.insert(entry->group()->database()); }
void EntryModel::setGroup(Group* group) { if (!group || group == m_group) { return; } beginResetModel(); severConnections(); m_group = group; m_allGroups.clear(); m_entries = group->entries(); m_orgEntries.clear(); makeConnections(group); endResetModel(); Q_EMIT switchedToGroupMode(); }
void EntryModel::setEntryList(const QList<Entry*>& entries) { beginResetModel(); severConnections(); m_group = nullptr; m_allGroups.clear(); m_entries = entries; m_orgEntries = entries; QSet<Database*> databases; for (Entry* entry : asConst(m_entries)) { databases.insert(entry->group()->database()); } for (Database* db : asConst(databases)) { Q_ASSERT(db); const QList<Group*> groupList = db->rootGroup()->groupsRecursive(true); for (const Group* group : groupList) { m_allGroups.append(group); } if (db->metadata()->recycleBin()) { m_allGroups.removeOne(db->metadata()->recycleBin()); } } for (const Group* group : asConst(m_allGroups)) { makeConnections(group); } endResetModel(); Q_EMIT switchedToEntryListMode(); }