feat: Multi-selection + action bar in MailListView

- MailListView: ExtendedSelection mode for both tree and list views
- Action bar (blue bar) appears when items selected
- Select all checkbox + counter label
- Batch actions: Flag, Mark unread, Move (TODO), Delete, Exit selection
- Signals: selectionChanged, batchFlagRequested, batchDeleteRequested, batchMarkUnreadRequested, batchMoveRequested
- enterMultiSelectMode()/exitMultiSelectMode() state management
- Works in both normal and compact views
This commit is contained in:
2026-08-26 02:38:33 +02:00
parent 3846bd4e9d
commit 43b828fe87
11 changed files with 11023 additions and 10653 deletions
@@ -27264,6 +27264,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o
/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
/usr/include/x86_64-linux-gnu/qt6/QtGui/QPainterPath
/usr/include/x86_64-linux-gnu/qt6/QtGui/QPixmap
/usr/include/x86_64-linux-gnu/qt6/QtGui/QTransform
/usr/include/x86_64-linux-gnu/qt6/QtGui/qaction.h
@@ -27286,6 +27287,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtGui/qkeysequence.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpaintdevice.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpainter.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpainterpath.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpalette.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpen.h
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpixelformat.h
@@ -28586,12 +28588,14 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QLabel
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QLineEdit
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QListView
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QMenu
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QPushButton
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QScrollBar
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStackedWidget
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStyle
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStyleOptionViewItem
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStyledItemDelegate
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QToolButton
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QTreeView
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QVBoxLayout
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QWidget
@@ -28613,6 +28617,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlayoutitem.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlineedit.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlistview.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qmenu.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qpushbutton.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qrubberband.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qscrollbar.h
@@ -28624,6 +28629,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qstyleoption.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtabbar.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtabwidget.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtoolbutton.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtreeview.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtwidgets-config.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtwidgetsexports.h
@@ -27216,6 +27216,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o: /mnt/c/U
/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 \
/usr/include/x86_64-linux-gnu/qt6/QtGui/QPainterPath \
/usr/include/x86_64-linux-gnu/qt6/QtGui/QPixmap \
/usr/include/x86_64-linux-gnu/qt6/QtGui/QTransform \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qaction.h \
@@ -27238,6 +27239,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o: /mnt/c/U
/usr/include/x86_64-linux-gnu/qt6/QtGui/qkeysequence.h \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpaintdevice.h \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpainter.h \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpainterpath.h \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpalette.h \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpen.h \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpixelformat.h \
@@ -28536,12 +28538,14 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o: /mnt/c/Users/javie/Docume
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QLabel \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QLineEdit \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QListView \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QMenu \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QPushButton \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QScrollBar \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStackedWidget \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStyle \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStyleOptionViewItem \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStyledItemDelegate \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QToolButton \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QTreeView \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QVBoxLayout \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QWidget \
@@ -28563,6 +28567,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o: /mnt/c/Users/javie/Docume
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlayoutitem.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlineedit.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlistview.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qmenu.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qpushbutton.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qrubberband.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qscrollbar.h \
@@ -28574,6 +28579,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o: /mnt/c/Users/javie/Docume
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qstyleoption.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtabbar.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtabwidget.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtoolbutton.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtreeview.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtwidgets-config.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtwidgetsexports.h \
@@ -42679,8 +42685,6 @@ CMakeFiles/wino-mail-qt.dir/src/core/oauthcallbackserver.cpp.o:
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QStyleOptionFrame:
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpainterpath.h:
/usr/include/x86_64-linux-gnu/qt6/QtGui/QKeyEvent:
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/thirdparty/tags/src/util.hpp:
@@ -42731,6 +42735,8 @@ wino-mail-qt_autogen/GQ6NBGVJMG/moc_accountservice.cpp:
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QScrollBar:
/usr/include/x86_64-linux-gnu/qt6/QtGui/qpainterpath.h:
/usr/include/x86_64-linux-gnu/qt6/QtGui/QCursor:
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qfiledialog.h:
@@ -598,4 +598,8 @@ CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o: \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qcolor.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QRect \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QScrollBar \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qscrollbar.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qscrollbar.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QToolButton \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qtoolbutton.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QMenu \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qmenu.h