davidedmundson added a comment.
Looks good. 1 tiny change needed I think. Also some code comments on the QVector would be useful for future people. INLINE COMMENTS > taskgroupingproxymodel.cpp:41 > > - QVector<QVector<int>> rowMap; > + QVector<QVector<int> *> rowMap; > Cleanup on destruction. (which sounds like the name of a new Megadeth single) > taskgroupingproxymodel.cpp:465 > > - rowMap[row].resize(1); > - > - // index() encodes parent row numbers in indices returned for group > - // members. endRemoveRows() is not aware of this scheme, and so won't > - // invalidate persistent indices for the members of the group we're > - // dissolving. We're now going to do it ourselves. > - foreach (const QModelIndex &idx, q->persistentIndexList()) { > - if (idx.internalId() == ((uint)row + 1)) { > - q->changePersistentIndex(idx, QModelIndex()); > - } > - } > + rowMap[row]->resize(1); > (I know this existing code) why 1? shouldn't this should be currentSize + extraChildren.count() > taskgroupingproxymodel.cpp:521 > + return index(parentRow, 0); > + } > + } I think we should assert after this if. REPOSITORY R120 Plasma Workspace REVISION DETAIL https://phabricator.kde.org/D7139 To: hein, #plasma, davidedmundson Cc: plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart, lukas