AbstractItemModel Zeile löschen

Alles rund um die Programmierung mit Qt
Antworten
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

AbstractItemModel Zeile löschen

Beitrag 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
Dateianhänge
xmlModel.h
(2.92 KiB) 112-mal heruntergeladen
xmlModel.cpp
(16.97 KiB) 113-mal heruntergeladen
Antworten