I have a QStandardItemModel
with a single column (represents a list). Each item in the list has a unique integer ID stored as the QStandardItem
's data (via QStandardItem::setData
which I guess is into Qt::UserRole+1
by default).
Given one of these IDs, I'd like to find and remove the corresponding row from the model. Right now I'm doing this:
void NetworkManager::removeSessionFromModel (QStandardItemModel *model, int sessionId) {
foreach (const QStandardItem *item, model->findItems("*", Qt::MatchWildcard)) {
if (item->data() == sessionId) {
model->removeRow(item->index().row());
break;
}
}
}
It works fine, but every single line of that function makes me cringe. Is there a cleaner way to do any of this?
Qt::EditRole
by default. – Burnsides