summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews/qtreeview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/itemviews/qtreeview.cpp')
-rw-r--r--src/widgets/itemviews/qtreeview.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp
index 4639b9e444..da0e1188f2 100644
--- a/src/widgets/itemviews/qtreeview.cpp
+++ b/src/widgets/itemviews/qtreeview.cpp
@@ -1396,6 +1396,24 @@ void QTreeViewPrivate::_q_modelDestroyed()
QAbstractItemViewPrivate::_q_modelDestroyed();
}
+QRect QTreeViewPrivate::intersectedRect(const QRect rect, const QModelIndex &topLeft, const QModelIndex &bottomRight) const
+{
+ Q_Q(const QTreeView);
+
+ const auto parentIdx = topLeft.parent();
+ executePostedLayout();
+ QRect updateRect;
+ for (int r = topLeft.row(); r <= bottomRight.row(); ++r) {
+ if (isRowHidden(model->index(r, 0, parentIdx)))
+ continue;
+ for (int c = topLeft.column(); c <= bottomRight.column(); ++c) {
+ const QModelIndex idx(model->index(r, c, parentIdx));
+ updateRect |= q->visualRect(idx);
+ }
+ }
+ return rect.intersected(updateRect);
+}
+
/*!
\reimp