diff options
| author | Mikaël Capelle <capelle.mikael@gmail.com> | 2020-12-29 12:23:47 +0100 |
|---|---|---|
| committer | Mikaël Capelle <capelle.mikael@gmail.com> | 2021-01-02 15:38:16 +0100 |
| commit | 9b13b467cf74ef7cbdedb6f26e4e611969be4f6d (patch) | |
| tree | 75006108527bb474ad81cbac40314adc217b9040 /src/modlistview.cpp | |
| parent | e5744941aed23a160c7329be0f2cb79af7d3a928 (diff) | |
Revert "Revert to Qt default behavior for auto-collapse on hovering."
This reverts commit b74f08a57ba659e2da232e253844aff8a169f9e0.
Diffstat (limited to 'src/modlistview.cpp')
| -rw-r--r-- | src/modlistview.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
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);
+ }
+}
|
