bool GeometryModel
::removeRows(int row,
int count,
const QModelIndex &parent
) {
bool done = false;
GeometryItem *parentItem;
if (parent.isValid()) {
parentItem = static_cast<GeometryItem*>(parent.internalPointer());
if (parentItem) {
parentItem = parentItem->parent();
if (parentItem) {
int nc = parentItem->childCount();
if (row < 0) row = 0;
if ((row < nc) && (count > 0)) {
int erow = row + count - 1;
if (erow >= nc) erow = nc - 1;
beginRemoveRows(parentIndex, row, erow);
done = true;
while (done && (row <= erow)) {
selectedItem = parentItem;
selectedRow = erow;
done = parentItem->removeChild(erow);
erow--;
}
endRemoveRows();
}
}
}
}
return done;
}