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
+1 -27
View File
@@ -1,17 +1,12 @@
<RCC>
<qresource prefix="/icons">
<!-- App icons -->
<file alias="app.svg">resources/icons/app.svg</file>
<file alias="sync.svg">resources/icons/sync.svg</file>
<file alias="settings.svg">resources/icons/settings.svg</file>
<!-- Window controls -->
<file alias="minimize.svg">resources/icons/SVG/Linear/Arrows Action/Minimize Square Minimalistic.svg</file>
<file alias="maximize.svg">resources/icons/SVG/Linear/Arrows Action/Maximize Square Minimalistic.svg</file>
<file alias="restore.svg">resources/icons/SVG/Linear/Arrows Action/Maximize Square 2.svg</file>
<file alias="close.svg">resources/icons/SVG/Linear/Essentional, UI/Close Square.svg</file>
<!-- Mail actions -->
<file alias="attachment.svg">resources/icons/SVG/Outline/Messages, Conversation/Paperclip.svg</file>
<file alias="send.svg">resources/icons/SVG/Bold Duotone/Messages, Conversation/Plain.svg</file>
<file alias="reply.svg">resources/icons/SVG/Linear/Arrows Action/Reply.svg</file>
@@ -20,36 +15,15 @@
<file alias="filter.svg">resources/icons/SVG/Linear/Design, Tools/Filters.svg</file>
<file alias="play.svg">resources/icons/SVG/Linear/Time/Stopwatch Play.svg</file>
<file alias="file-text.svg">resources/icons/SVG/Linear/Files/File Text.svg</file>
<!-- UI elements -->
<file alias="dropdown.png">resources/icons/SVG/Linear/Arrows Action/Square Top Down.svg</file>
<file alias="detach.svg">resources/icons/SVG/Linear/Arrows Action/Square Top Down.svg</file>
<file alias="import.svg">resources/icons/SVG/Linear/Arrows Action/Import.svg</file>
<file alias="export.svg">resources/icons/SVG/Linear/Arrows Action/Export.svg</file>
<!-- Bold text formatting -->
<file alias="bold.svg">resources/icons/SVG/Bold/Text Formatting/Text Bold.svg</file>
<file alias="italic.svg">resources/icons/SVG/Outline/Text Formatting/Text Italic.svg</file>
<file alias="underline.svg">resources/icons/SVG/Outline/Text Formatting/Text Underline.svg</file>
<!-- User/Contact -->
<file alias="user.svg">resources/icons/SVG/Linear/Users/User.svg</file>
<!-- Calendar -->
<file alias="calendar.svg">resources/icons/SVG/Linear/Time/Calendar.svg</file>
<file alias="calendar-add.svg">resources/icons/SVG/Linear/Time/Calendar Add.svg</file>
<!-- Sync/Refresh - using existing icons -->
<file alias="refresh.svg">resources/icons/SVG/Linear/Arrows Action/Square Top Down.svg</file>
<file alias="sync_all.svg">resources/icons/SVG/Linear/Arrows Action/Square Top Up.svg</file>
<!-- Menu dots -->
<file alias="dots.svg">resources/icons/SVG/Linear/Essentional, UI/Menu Dots.svg</file>
<!-- Design tools -->
<file alias="palette.svg">resources/icons/SVG/Linear/Design, Tools/Palette.svg</file>
<!-- Calendar -->
<file alias="calendar-add.svg">resources/icons/SVG/Linear/Time/Calendar Add.svg</file>
</qresource>
</RCC>
</RCC>