feat: Wino-style compact mail view with display modes + hover actions

- CompactMailDelegate: 3 display modes (Compact/Medium/Spacious) like WinUI original
  * Compact: 64px, minimal, no preview
  * Medium: 96px, with preview, detailed categories
  * Spacious: 120px, full padding, preview visible
- Hover actions: Reply (↩), Forward (↪), Mark unread (✎) on right side
- Unread dot indicator (top-right, blue) like WinUI
- User-configurable display mode via combo box in filter bar
- MainMainWindow handlers for reply/forward/mark-unread from compact view
- Signals: replyRequested, forwardRequested, markUnreadRequested
This commit is contained in:
2026-08-25 13:41:43 +02:00
parent 4c4fec7a0a
commit fa699b5399
92 changed files with 26111 additions and 13449 deletions
@@ -87,12 +87,9 @@ wino-mail-qt_autogen/timestamp: CMakeFiles/wino-mail-qt.dir/compiler_depend.ts
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/icons.qrc
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: CMakeFiles/wino-mail-qt_autogen.dir/AutoRcc_icons_EWIEGA46WW_Info.json
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Design,\ Tools/Filters.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Arrows\ Action/Square\ Top\ Down.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Arrows\ Action/Maximize\ Square\ Minimalistic.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Arrows\ Action/Square\ Top\ Up.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Time/Stopwatch\ Play.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Bold\ Duotone/Messages,\ Conversation/Plain.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Arrows\ Action/Square\ Top\ Down.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Arrows\ Action/Reply.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Design,\ Tools/Palette.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Arrows\ Action/Export.svg
@@ -101,8 +98,6 @@ wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Code
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Outline/Text\ Formatting/Text\ Italic.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Outline/Text\ Formatting/Text\ Underline.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Essentional,\ UI/Close\ Square.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Arrows\ Action/Square\ Top\ Down.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Time/Calendar\ Add.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Time/Calendar\ Add.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Essentional,\ UI/Menu\ Dots.svg
wino-mail-qt_autogen/EWIEGA46WW/qrc_icons.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/resources/icons/SVG/Linear/Users/User.svg
@@ -27172,7 +27172,6 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtCore/qhashfunctions.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiodevice.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiodevicebase.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qitemselectionmodel.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiterable.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiterator.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qlatin1stringview.h
@@ -27259,6 +27258,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.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/QCursor
/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
@@ -27310,18 +27310,14 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o
/usr/include/x86_64-linux-gnu/qt6/QtSql/qtsqlexports.h
/usr/include/x86_64-linux-gnu/qt6/QtSql/qtsqlglobal.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QApplication
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QListView
/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/qabstractitemdelegate.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractitemview.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractscrollarea.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractslider.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractspinbox.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qapplication.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qframe.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlistview.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qrubberband.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qsizepolicy.h
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qslider.h
@@ -30993,9 +30989,11 @@ CMakeFiles/wino-mail-qt.dir/src/ui/models/FolderListModel.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/ui/models/FolderListModel.cpp
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/authenticator.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/models/account.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/mailitem.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/models/folder.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/db/databasemanager.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/db/dao/folderdao.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/db/dao/mailitemdao.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/services/accountservice.h
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/ui/models/FolderListModel.h
/usr/include/alloca.h
@@ -41987,6 +41985,8 @@ wino-mail-qt
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/composeview.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/connectionwizard.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/contactsview.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/delegates/FolderTreeDelegate.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/mainmainwindow.cpp.o
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/CMakeFiles/wino-mail-qt.dir/src/ui/models/DateGroupProxyModel.cpp.o
@@ -27124,7 +27124,6 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o: /mnt/c/U
/usr/include/x86_64-linux-gnu/qt6/QtCore/qhashfunctions.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiodevice.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiodevicebase.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qitemselectionmodel.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiterable.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qiterator.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qlatin1stringview.h \
@@ -27211,6 +27210,7 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o: /mnt/c/U
/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/QCursor \
/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 \
@@ -27262,18 +27262,14 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o: /mnt/c/U
/usr/include/x86_64-linux-gnu/qt6/QtSql/qtsqlexports.h \
/usr/include/x86_64-linux-gnu/qt6/QtSql/qtsqlglobal.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QApplication \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QListView \
/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/qabstractitemdelegate.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractitemview.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractscrollarea.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractslider.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qabstractspinbox.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qapplication.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qframe.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qlistview.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qrubberband.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qsizepolicy.h \
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qslider.h \
@@ -30938,9 +30934,11 @@ CMakeFiles/wino-mail-qt.dir/src/ui/models/EmailTreeModel.cpp.o: /mnt/c/Users/jav
CMakeFiles/wino-mail-qt.dir/src/ui/models/FolderListModel.cpp.o: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/ui/models/FolderListModel.cpp \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/authenticator.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/models/account.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/mailitem.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/core/models/folder.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/db/databasemanager.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/db/dao/folderdao.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/db/dao/mailitemdao.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/services/accountservice.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/ui/models/FolderListModel.h \
/usr/include/alloca.h \
@@ -41914,6 +41912,8 @@ wino-mail-qt: /lib/x86_64-linux-gnu/libproxy.so.1 \
CMakeFiles/wino-mail-qt.dir/src/ui/composeview.cpp.o \
CMakeFiles/wino-mail-qt.dir/src/ui/connectionwizard.cpp.o \
CMakeFiles/wino-mail-qt.dir/src/ui/contactsview.cpp.o \
CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o \
CMakeFiles/wino-mail-qt.dir/src/ui/delegates/FolderTreeDelegate.cpp.o \
CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o \
CMakeFiles/wino-mail-qt.dir/src/ui/mainmainwindow.cpp.o \
CMakeFiles/wino-mail-qt.dir/src/ui/models/DateGroupProxyModel.cpp.o \
@@ -41961,12 +41961,16 @@ CMakeFiles/wino-mail-qt.dir/src/ui/mainmainwindow.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/maillistview.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/delegates/FolderTreeDelegate.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/contactsview.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/connectionwizard.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/categorytreewidget.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/calendarview.cpp.o:
CMakeFiles/wino-mail-qt.dir/src/ui/accountsetupdialog.cpp.o:
@@ -42229,6 +42233,8 @@ wino-mail-qt_autogen/GQ6NBGVJMG/moc_accountservice.cpp:
/usr/include/x86_64-linux-gnu/qt6/QtGui/QCloseEvent:
/usr/include/x86_64-linux-gnu/qt6/QtGui/QCursor:
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/qfiledialog.h:
/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QFileIconProvider:
@@ -553,4 +553,6 @@ CMakeFiles/wino-mail-qt.dir/src/ui/delegates/CompactMailDelegate.cpp.o: \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qdatetime.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qcalendar.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QDebug \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qdebug.h
/usr/include/x86_64-linux-gnu/qt6/QtCore/qdebug.h \
/usr/include/x86_64-linux-gnu/qt6/QtGui/QCursor \
/usr/include/x86_64-linux-gnu/qt6/QtGui/qcursor.h