javier
|
6e6fdf9c21
|
feat: EmailTreeModel grouping modes + MailListView integration
- EmailTreeModel: 4 grouping modes
* NoGrouping - flat list
* GroupByDate - chronological groups (Hoy, Ayer, Esta semana...)
* GroupByThread - conversations with expandable threads (ThreadId from References/In-Reply-To/Message-ID)
* GroupBySender - groups by sender email/name
- EmailTreeModel thread support:
* ThreadItem type with expand/collapse
* ThreadId extraction via ThreadUtils (References > In-Reply-To > Message-ID)
* Double-click thread node toggles expansion
* Threads sorted by newest email first, emails within thread oldest first
- EmailTreeModel sender grouping:
* Groups by sender name/email
* Senders sorted by newest email first
* Emails within group newest first
- MailListView: Added 'Agrupar por remitente' to group-by combo
- MailListView: Double-click thread node toggles expansion (not open mail)
- ThreadUtils: parseReferencesHeader, extractThreadId, generateThreadId
|
2026-08-25 18:53:51 +02:00 |
|
javier
|
4c4fec7a0a
|
feat: responsive compact mail view + folder unread badges
- CompactMailDelegate: card-based view for narrow panels (<420px)
* Avatar with hash-based color, sender + date (relative format)
* Subject line with attachment icon
* Action buttons: flag, delete, category, more (context menu)
* Unread highlight with light blue background + bold sender
- MailListView: automatic switch between tree/table (wide) and list/cards (narrow)
* QStackedWidget with QTreeView + QListView sharing same proxy model
* resizeEvent threshold at 420px
* Signals forwarded to MainMainWindow for actions
- FolderTreeDelegate: custom paint for folder tree
* Unread count badge (blue pill) right-aligned on folder nodes
* Account nodes bold, folder nodes normal weight
* Proper indentation per depth level
- MailItemDao::countUnreadByFolderId() for real-time unread counts
- MainMainWindow handlers for compact actions (flag, delete, category, more menu)
|
2026-08-24 23:25:13 +02:00 |
|