From 9b13b467cf74ef7cbdedb6f26e4e611969be4f6d Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Tue, 29 Dec 2020 12:23:47 +0100 Subject: Revert "Revert to Qt default behavior for auto-collapse on hovering." This reverts commit b74f08a57ba659e2da232e253844aff8a169f9e0. --- src/modlistview.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/modlistview.cpp') diff --git a/src/modlistview.cpp b/src/modlistview.cpp index b1cce82e..70770dc2 100644 --- a/src/modlistview.cpp +++ b/src/modlistview.cpp @@ -31,8 +31,13 @@ void ModListView::dragEnterEvent(QDragEnterEvent* event) void ModListView::dragMoveEvent(QDragMoveEvent* event) { + if (autoExpandDelay() >= 0) { + m_openTimer.start(autoExpandDelay(), this); + } + + // bypass QTreeView m_inDragMoveEvent = true; - QTreeView::dragMoveEvent(event); + QAbstractItemView::dragMoveEvent(event); m_inDragMoveEvent = false; } @@ -45,3 +50,18 @@ void ModListView::dropEvent(QDropEvent* event) m_inDragMoveEvent = false; } +void ModListView::timerEvent(QTimerEvent* event) +{ + if (event->timerId() == m_openTimer.timerId()) { + QPoint pos = viewport()->mapFromGlobal(QCursor::pos()); + if (state() == QAbstractItemView::DraggingState + && viewport()->rect().contains(pos)) { + QModelIndex index = indexAt(pos); + setExpanded(index, true); + } + m_openTimer.stop(); + } + else { + QTreeView::timerEvent(event); + } +} -- cgit v1.3.1