QTreeView: make autoExpand feature usable, it should never auto-collapse
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 195a35dbfb2453ae37d9541c82745c5795fe8b9c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
456702e7e0
commit
eb9fd6dbd4
@ -309,7 +309,7 @@ void QTreeView::setHeader(QHeaderView *header)
|
|||||||
\since 4.3
|
\since 4.3
|
||||||
|
|
||||||
This property holds the amount of time in milliseconds that the user must wait over
|
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.
|
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.
|
By default, this property has a value of -1, meaning that auto-expansion is disabled.
|
||||||
@ -1278,7 +1278,7 @@ void QTreeView::timerEvent(QTimerEvent *event)
|
|||||||
if (state() == QAbstractItemView::DraggingState
|
if (state() == QAbstractItemView::DraggingState
|
||||||
&& d->viewport->rect().contains(pos)) {
|
&& d->viewport->rect().contains(pos)) {
|
||||||
QModelIndex index = indexAt(pos);
|
QModelIndex index = indexAt(pos);
|
||||||
setExpanded(index, !isExpanded(index));
|
expand(index);
|
||||||
}
|
}
|
||||||
d->openTimer.stop();
|
d->openTimer.stop();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user