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)
This commit is contained in:
2026-08-24 23:25:13 +02:00
parent 705fe32e66
commit 4c4fec7a0a
846 changed files with 498002 additions and 52534 deletions
@@ -1,8 +1,8 @@
/mnt/c/Users/javie/wino-mail-dtkqt/build/wino-mail-qt_autogen/J6PSKMGISE/moc_EmailListModel.cpp: /mnt/c/Users/javie/wino-mail-dtkqt/src/ui/models/EmailListModel.h \
/mnt/c/Users/javie/wino-mail-dtkqt/build/wino-mail-qt_autogen/moc_predefs.h \
/mnt/c/Users/javie/wino-mail-dtkqt/src/core/mailitem.h \
/mnt/c/Users/javie/wino-mail-dtkqt/src/db/dao/mailitemdao.h \
/mnt/c/Users/javie/wino-mail-dtkqt/src/db/databasemanager.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/wino-mail-qt_autogen/J6PSKMGISE/moc_EmailListModel.cpp: /mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/ui/models/EmailListModel.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/build/wino-mail-qt_autogen/moc_predefs.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/db/dao/mailitemdao.h \
/mnt/c/Users/javie/Documents/Codex/2026-08-11/revisar-2/wino-mail-dtkqt/src/db/databasemanager.h \
/usr/include/alloca.h \
/usr/include/asm-generic/bitsperlong.h \
/usr/include/asm-generic/errno-base.h \
@@ -23,12 +23,19 @@
/usr/include/c++/15/bits/allocated_ptr.h \
/usr/include/c++/15/bits/allocator.h \
/usr/include/c++/15/bits/atomic_base.h \
/usr/include/c++/15/bits/atomic_futex.h \
/usr/include/c++/15/bits/atomic_lockfree_defines.h \
/usr/include/c++/15/bits/atomic_timed_wait.h \
/usr/include/c++/15/bits/atomic_wait.h \
/usr/include/c++/15/bits/basic_ios.h \
/usr/include/c++/15/bits/basic_ios.tcc \
/usr/include/c++/15/bits/basic_string.h \
/usr/include/c++/15/bits/basic_string.tcc \
/usr/include/c++/15/bits/char_traits.h \
/usr/include/c++/15/bits/charconv.h \
/usr/include/c++/15/bits/chrono.h \
/usr/include/c++/15/bits/chrono_io.h \
/usr/include/c++/15/bits/codecvt.h \
/usr/include/c++/15/bits/concept_check.h \
/usr/include/c++/15/bits/cpp_type_traits.h \
/usr/include/c++/15/bits/cxxabi_forced.h \
@@ -45,30 +52,51 @@
/usr/include/c++/15/bits/hashtable_policy.h \
/usr/include/c++/15/bits/invoke.h \
/usr/include/c++/15/bits/ios_base.h \
/usr/include/c++/15/bits/istream.tcc \
/usr/include/c++/15/bits/iterator_concepts.h \
/usr/include/c++/15/bits/list.tcc \
/usr/include/c++/15/bits/locale_classes.h \
/usr/include/c++/15/bits/locale_classes.tcc \
/usr/include/c++/15/bits/locale_conv.h \
/usr/include/c++/15/bits/locale_facets.h \
/usr/include/c++/15/bits/locale_facets.tcc \
/usr/include/c++/15/bits/locale_facets_nonio.h \
/usr/include/c++/15/bits/locale_facets_nonio.tcc \
/usr/include/c++/15/bits/localefwd.h \
/usr/include/c++/15/bits/max_size_type.h \
/usr/include/c++/15/bits/memory_resource.h \
/usr/include/c++/15/bits/memoryfwd.h \
/usr/include/c++/15/bits/move.h \
/usr/include/c++/15/bits/nested_exception.h \
/usr/include/c++/15/bits/new_allocator.h \
/usr/include/c++/15/bits/node_handle.h \
/usr/include/c++/15/bits/ostream.h \
/usr/include/c++/15/bits/ostream.tcc \
/usr/include/c++/15/bits/ostream_insert.h \
/usr/include/c++/15/bits/parse_numbers.h \
/usr/include/c++/15/bits/postypes.h \
/usr/include/c++/15/bits/predefined_ops.h \
/usr/include/c++/15/bits/ptr_traits.h \
/usr/include/c++/15/bits/quoted_string.h \
/usr/include/c++/15/bits/range_access.h \
/usr/include/c++/15/bits/ranges_algo.h \
/usr/include/c++/15/bits/ranges_algobase.h \
/usr/include/c++/15/bits/ranges_base.h \
/usr/include/c++/15/bits/ranges_cmp.h \
/usr/include/c++/15/bits/ranges_uninitialized.h \
/usr/include/c++/15/bits/ranges_util.h \
/usr/include/c++/15/bits/refwrap.h \
/usr/include/c++/15/bits/requires_hosted.h \
/usr/include/c++/15/bits/semaphore_base.h \
/usr/include/c++/15/bits/shared_ptr.h \
/usr/include/c++/15/bits/shared_ptr_atomic.h \
/usr/include/c++/15/bits/shared_ptr_base.h \
/usr/include/c++/15/bits/specfun.h \
/usr/include/c++/15/bits/sstream.tcc \
/usr/include/c++/15/bits/std_abs.h \
/usr/include/c++/15/bits/std_function.h \
/usr/include/c++/15/bits/std_mutex.h \
/usr/include/c++/15/bits/std_thread.h \
/usr/include/c++/15/bits/stl_algo.h \
/usr/include/c++/15/bits/stl_algobase.h \
/usr/include/c++/15/bits/stl_bvector.h \
@@ -96,7 +124,9 @@
/usr/include/c++/15/bits/streambuf_iterator.h \
/usr/include/c++/15/bits/string_view.tcc \
/usr/include/c++/15/bits/stringfwd.h \
/usr/include/c++/15/bits/this_thread_sleep.h \
/usr/include/c++/15/bits/uniform_int_dist.h \
/usr/include/c++/15/bits/unique_lock.h \
/usr/include/c++/15/bits/unique_ptr.h \
/usr/include/c++/15/bits/unordered_map.h \
/usr/include/c++/15/bits/unordered_set.h \
@@ -107,12 +137,14 @@
/usr/include/c++/15/bits/version.h \
/usr/include/c++/15/cctype \
/usr/include/c++/15/cerrno \
/usr/include/c++/15/charconv \
/usr/include/c++/15/chrono \
/usr/include/c++/15/climits \
/usr/include/c++/15/clocale \
/usr/include/c++/15/cmath \
/usr/include/c++/15/compare \
/usr/include/c++/15/concepts \
/usr/include/c++/15/condition_variable \
/usr/include/c++/15/cstddef \
/usr/include/c++/15/cstdint \
/usr/include/c++/15/cstdio \
@@ -120,6 +152,7 @@
/usr/include/c++/15/cstring \
/usr/include/c++/15/ctime \
/usr/include/c++/15/cwchar \
/usr/include/c++/15/cwctype \
/usr/include/c++/15/debug/assertions.h \
/usr/include/c++/15/debug/debug.h \
/usr/include/c++/15/exception \
@@ -130,23 +163,34 @@
/usr/include/c++/15/ext/numeric_traits.h \
/usr/include/c++/15/ext/string_conversions.h \
/usr/include/c++/15/ext/type_traits.h \
/usr/include/c++/15/format \
/usr/include/c++/15/functional \
/usr/include/c++/15/future \
/usr/include/c++/15/initializer_list \
/usr/include/c++/15/iomanip \
/usr/include/c++/15/ios \
/usr/include/c++/15/iosfwd \
/usr/include/c++/15/istream \
/usr/include/c++/15/iterator \
/usr/include/c++/15/limits \
/usr/include/c++/15/list \
/usr/include/c++/15/locale \
/usr/include/c++/15/map \
/usr/include/c++/15/memory \
/usr/include/c++/15/mutex \
/usr/include/c++/15/new \
/usr/include/c++/15/numeric \
/usr/include/c++/15/optional \
/usr/include/c++/15/ostream \
/usr/include/c++/15/pstl/execution_defs.h \
/usr/include/c++/15/pstl/glue_numeric_defs.h \
/usr/include/c++/15/pstl/pstl_config.h \
/usr/include/c++/15/ratio \
/usr/include/c++/15/semaphore \
/usr/include/c++/15/set \
/usr/include/c++/15/sstream \
/usr/include/c++/15/stdexcept \
/usr/include/c++/15/stop_token \
/usr/include/c++/15/streambuf \
/usr/include/c++/15/string \
/usr/include/c++/15/string_view \
@@ -177,7 +221,9 @@
/usr/include/errno.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/libintl.h \
/usr/include/limits.h \
/usr/include/linux/close_range.h \
/usr/include/linux/errno.h \
/usr/include/linux/limits.h \
/usr/include/linux/posix_types.h \
@@ -187,38 +233,50 @@
/usr/include/locale.h \
/usr/include/pthread.h \
/usr/include/sched.h \
/usr/include/semaphore.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/syscall.h \
/usr/include/time.h \
/usr/include/unistd.h \
/usr/include/wchar.h \
/usr/include/wctype.h \
/usr/include/x86_64-linux-gnu/asm/bitsperlong.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/x86_64-linux-gnu/asm/posix_types.h \
/usr/include/x86_64-linux-gnu/asm/posix_types_64.h \
/usr/include/x86_64-linux-gnu/asm/types.h \
/usr/include/x86_64-linux-gnu/asm/unistd.h \
/usr/include/x86_64-linux-gnu/asm/unistd_64.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/confname.h \
/usr/include/x86_64-linux-gnu/bits/cpu-set.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/errno.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/getopt_core.h \
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/x86_64-linux-gnu/bits/locale.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/sched.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/semaphore.h \
/usr/include/x86_64-linux-gnu/bits/setjmp.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-least.h \
@@ -227,6 +285,7 @@
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
/usr/include/x86_64-linux-gnu/bits/syscall.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
@@ -260,9 +319,11 @@
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/bits/uio_lim.h \
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/atomic_word.h \
@@ -270,18 +331,23 @@
/usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/c++locale.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/cpu_defines.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/ctype_base.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/ctype_inline.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/error_constants.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/gthr-default.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/gthr.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/messages_members.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h \
/usr/include/x86_64-linux-gnu/c++/15/bits/time_members.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QAbstractListModel \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QAbstractTableModel \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QByteArray \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QDateTime \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QHash \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QMutex \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QString \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QThread \
/usr/include/x86_64-linux-gnu/qt6/QtCore/QVector \
/usr/include/x86_64-linux-gnu/qt6/QtCore/q17memory.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/q20functional.h \
@@ -392,6 +458,7 @@
/usr/include/x86_64-linux-gnu/qt6/QtCore/qtenvironmentvariables.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qtextstream.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qtformat_impl.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qthread.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qtmetamacros.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qtnoop.h \
/usr/include/x86_64-linux-gnu/qt6/QtCore/qtpreprocessorsupport.h \
@@ -418,6 +485,8 @@
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/sys/single_threaded.h \
/usr/include/x86_64-linux-gnu/sys/syscall.h \
/usr/include/x86_64-linux-gnu/sys/time.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdarg.h \
/usr/lib/gcc/x86_64-linux-gnu/15/include/stdbool.h \