Seite 1 von 1

AbstractItemModel Zeile löschen

Verfasst: 19. Juli 2007 09:46
von C_R
Hi!

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;
}
wobei

Code: Alles auswählen


void DomItem::removeChild(int pos)
{
	childItems.remove(pos);
}
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