QTreeView: Fix expanding of spanning items
When using HeaderView::ResizeToContents and QTreeWidgetItem::setFirstColumnSpanned(), it happens that the position of the branch icon is no longer in the first column and thus trying to expand the item results in a selection change. Check for spanning when determining the position. Task-number: QTBUG-41793 Change-Id: I14353127436fb0ebaafb0d50a31b920b8da67333 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
parent
2105f80169
commit
35ebdeb83e
@ -3724,9 +3724,14 @@ void QTreeViewPrivate::updateScrollBars()
|
|||||||
|
|
||||||
int QTreeViewPrivate::itemDecorationAt(const QPoint &pos) const
|
int QTreeViewPrivate::itemDecorationAt(const QPoint &pos) const
|
||||||
{
|
{
|
||||||
|
Q_Q(const QTreeView);
|
||||||
executePostedLayout();
|
executePostedLayout();
|
||||||
int x = pos.x();
|
bool spanned = false;
|
||||||
int column = header->logicalIndexAt(x);
|
if (!spanningIndexes.isEmpty()) {
|
||||||
|
const QModelIndex index = q->indexAt(pos);
|
||||||
|
spanned = q->isFirstColumnSpanned(index.row(), index.parent());
|
||||||
|
}
|
||||||
|
const int column = spanned ? 0 : header->logicalIndexAt(pos.x());
|
||||||
if (!isTreePosition(column))
|
if (!isTreePosition(column))
|
||||||
return -1; // no logical index at x
|
return -1; // no logical index at x
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user