From 7f22197b5318ccbe7f0b6b644127a71c025ca917 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Fri, 27 Jul 2007 16:57:59 +0000 Subject: [PATCH] next try *lol* --- src/client/treemodel.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 1505a25e..d84f0e01 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -162,6 +162,9 @@ QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int rol } bool TreeModel::removeRow(int row, const QModelIndex &parent) { + if(row > rowCount(parent)) + return false; + beginRemoveRows(parent, row, row); TreeItem *item = static_cast(parent.internalPointer()); item->removeChild(row); @@ -170,9 +173,17 @@ bool TreeModel::removeRow(int row, const QModelIndex &parent) { } bool TreeModel::removeRows(int row, int count, const QModelIndex &parent) { + // check if there is work to be done + if(count == 0) + return true; + + // out of range check + if(row + count - 1 > rowCount(parent) || row < 0 || count < 0) + return false; + beginRemoveRows(parent, row, row + count - 1); TreeItem *item = static_cast(parent.internalPointer()); - for(int i = row; i < row + count; i++) { + for(int i = row + count - 1; i >= 0; i--) { item->removeChild(i); } endRemoveRows(); -- 2.20.1