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
Pick-to: 6.8
Change-Id: I2c56dd668b2df4ec23bbbe829da6e8cdd049f376
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
  • Loading branch information
dfaure-kdab committed Oct 20, 2024
1 parent c612a82 commit 195a35d
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 @@ -310,7 +310,7 @@ void QTreeView::setHeader(QHeaderView *header)
\brief The delay time before items in a tree are opened during a drag and drop operation.
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 @@ -1266,7 +1266,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 195a35d

Please sign in to comment.