feat: email grouping by date + stability fixes

- EmailTreeModel: hierarchical model for grouped email view (QTreeView)
- DateGroupProxyModel: proxy model for date-based grouping logic
- MailListView: migrated from QTableView to QTreeView with grouping support
- ReaderView: subject frame with shadow, avatar moved to header, body inside header
- MainWindow: frameless with rounded corners, 1px border, edge resize, no status bar

- Stability fixes for grouping mode switch:
  * Proper tree cleanup (no double-delete of root)
  * Bounds checking on all array accesses
  * Null pointer checks in index/parent/data methods
  * Date validity checks before grouping
  * Index validation before accessing m_emails
This commit is contained in:
2026-08-24 01:04:00 +02:00
parent e28ab35fa9
commit 2281b01f49
19 changed files with 1998 additions and 219 deletions
+1 -1
View File
@@ -385,7 +385,7 @@ void MainMainWindow::onFolderSelected(const QModelIndex &index)
m_emailModel->refresh();
// Clear selection and show placeholder
m_currentMailId = -1;
m_mailListView->tableView()->clearSelection();
m_mailListView->treeView()->clearSelection();
m_viewerStack->setCurrentIndex(0); // placeholder
}
}