Skip to content

Commit

Permalink
QTreeView: make autoExpand feature usable, it should never auto-collapse
Browse files Browse the repository at this point in the history
The code would toggle between expanded and collapsed every time the
mouse moves over the item (after the autoExpandDelay), which was unusable.
As reporters point out (and I fully agree), collapsing the item under
the mouse is never wanted.

I attempted an auto-collapse when moving out of the current subtree,
but that was not usable either: when moving the mouse down, the auto-collapsing
of a previous sibling means that the item we're targeting has suddenly jumped
up, it's a frustrating experience trying to aim for a moving target.

The only behavior that is usable is the most simple one: auto expand,
never auto collapse.

Fixes: QTBUG-2553
Change-Id: I2c56dd668b2df4ec23bbbe829da6e8cdd049f376
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
(cherry picked from commit 195a35d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
  • Loading branch information
dfaure-kdab authored and Qt Cherry-pick Bot committed Oct 20, 2024
1 parent 456702e commit eb9fd6d
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/widgets/itemviews/qtreeview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ void QTreeView::setHeader(QHeaderView *header)
\since 4.3
This property holds the amount of time in milliseconds that the user must wait over
a node before that node will automatically open or close. If the time is
a node before that node will automatically open. If the time is
set to less then 0 then it will not be activated.
By default, this property has a value of -1, meaning that auto-expansion is disabled.
Expand Down Expand Up @@ -1278,7 +1278,7 @@ void QTreeView::timerEvent(QTimerEvent *event)
if (state() == QAbstractItemView::DraggingState
&& d->viewport->rect().contains(pos)) {
QModelIndex index = indexAt(pos);
setExpanded(index, !isExpanded(index));
expand(index);
}
d->openTimer.stop();
}
Expand Down

0 comments on commit eb9fd6d

Please sign in to comment.