diff options
Diffstat (limited to 'src/widgets/itemviews/qtreewidget.cpp')
-rw-r--r-- | src/widgets/itemviews/qtreewidget.cpp | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp index b795b79c28..713cb8e0d2 100644 --- a/src/widgets/itemviews/qtreewidget.cpp +++ b/src/widgets/itemviews/qtreewidget.cpp @@ -508,22 +508,18 @@ bool QTreeModel::insertColumns(int column, int count, const QModelIndex &parent) bool QTreeModel::removeRows(int row, int count, const QModelIndex &parent) { if (count < 1 || row < 0 || (row + count) > rowCount(parent)) return false; - - beginRemoveRows(parent, row, row + count - 1); - - QSignalBlocker blocker(this); - - QTreeWidgetItem *itm = item(parent); + QTreeWidgetItem *parentItem = item(parent); + // if parentItem is valid, begin/end RemoveRows is handled by takeChild below + if (!parentItem) + beginRemoveRows(parent, row, row + count - 1); for (int i = row + count - 1; i >= row; --i) { - QTreeWidgetItem *child = itm ? itm->takeChild(i) : rootItem->children.takeAt(i); + QTreeWidgetItem *child = parentItem ? parentItem->takeChild(i) : rootItem->children.takeAt(i); Q_ASSERT(child); child->view = nullptr; delete child; - child = nullptr; } - blocker.unblock(); - - endRemoveRows(); + if (!parentItem) + endRemoveRows(); return true; } @@ -2601,9 +2597,6 @@ void QTreeWidgetPrivate::_q_dataChanged(const QModelIndex &topLeft, This signal is emitted when the specified \a item is expanded so that all of its children are displayed. - \note This signal will not be emitted if an item changes its state when - expandAll() is invoked. - \sa QTreeWidgetItem::isExpanded(), itemCollapsed(), expandItem() */ @@ -2702,7 +2695,7 @@ QTreeWidget::~QTreeWidget() } /* - Retuns the number of header columns in the view. + Returns the number of header columns in the view. \sa sortColumn(), currentColumn(), topLevelItemCount() */ |