AbstractItemModel Zeile löschen
Verfasst: 19. Juli 2007 09:46
Hi!
Ich habe ein XmlModel geschrieben, und möchte auch eine Zeile daraus löschen. Eigentlich ne simple Sache.
Der Stand ist der:
wobei
QHash::remove(pos) gibt mir auch 1 zurück, als Indiz, dass ein Item gelöscht wrid. Wenn ich rootItem = item; schreibe anstelle von rootItem = item->parent(); wird im Viewer nur noch die Einträge/Kinder von Viewer angezeigt (also so, wie es auch sein sollte, wenn man denn es so haben wolle
), aber mit item->parent() gehts nicht - alle Daten bleiben unverändert. Sieht irgendwer etwas auf anhieb, was ich hier nicht sehe - woran es liegen könnte?
Hab den Rest des Codes noch drangehangen, vor allem die .h files sind ja sicher nötig.
Wäre top, wenn jemand Zeit und Motivation hat, mir dabei zu helfen :-7
Ich habe ein XmlModel geschrieben, und möchte auch eine Zeile daraus löschen. Eigentlich ne simple Sache.
Der Stand ist der:
Code: Alles auswählen
bool XmlModel::removeRow(int row, const QModelIndex &parent)
{
if (row < rowCount(QModelIndex())) {
beginRemoveRows(parent, row, row);
QModelIndex corIndex = index(row, 0, QModelIndex());
DomItem *item = static_cast<DomItem*>(corIndex.internalPointer()); // get pointer
item->parent()->removeChild(row);
rootItem = item->parent();
delete item;
endRemoveRows();
return true;
} // if
return false;
}
Code: Alles auswählen
void DomItem::removeChild(int pos)
{
childItems.remove(pos);
}
Hab den Rest des Codes noch drangehangen, vor allem die .h files sind ja sicher nötig.
Wäre top, wenn jemand Zeit und Motivation hat, mir dabei zu helfen :-7