feat: Drag & drop between folders

- MailListView: setDragEnabled, setAcceptDrops, setDropIndicatorShown, setDragDropMode(DragDrop)
- Custom MIME type: application/x-wino-mail-ids with QVector<int> mail IDs
- mousePressEvent + mouseMoveEvent for drag initiation (standard Qt drag distance)
- initDrag() creates QDrag with selected mail IDs
- dragEnterEvent, dragMoveEvent, dropEvent handlers
- dropEvent emits batchMoveRequested(mailIds, targetFolderId)
- Works in both tree view and compact list view
This commit is contained in:
2026-08-26 04:05:56 +02:00
parent 3a3a7b0ff8
commit 6d1feabfc5
10 changed files with 13316 additions and 13205 deletions
@@ -28363,6 +28363,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtCore/QEvent
/usr/include/x86_64-linux-gnu/qt6/QtCore/QHash
/usr/include/x86_64-linux-gnu/qt6/QtCore/QList
/usr/include/x86_64-linux-gnu/qt6/QtCore/QMimeData
/usr/include/x86_64-linux-gnu/qt6/QtCore/QModelIndex
/usr/include/x86_64-linux-gnu/qt6/QtCore/QMutex
/usr/include/x86_64-linux-gnu/qt6/QtCore/QObject
@@ -28452,6 +28453,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmetacontainer.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmetaobject.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmetatype.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmimedata.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qminmax.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmutex.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qnamespace.h
@@ -28525,6 +28527,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtCore/qxptype_traits.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qyieldcpu.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/QColor
/usr/include/x86_64-linux-gnu/qt6/QtGui/QDrag
/usr/include/x86_64-linux-gnu/qt6/QtGui/QFontMetrics
/usr/include/x86_64-linux-gnu/qt6/QtGui/QMouseEvent
/usr/include/x86_64-linux-gnu/qt6/QtGui/QPainter
@@ -28536,6 +28539,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtGui/qbrush.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qcolor.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qcursor.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qdrag.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qevent.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qeventpoint.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qfont.h