- EmailListModel: QAbstractListModel with canFetchMore/fetchMore
* Batch loading (default 50 emails per fetch)
* Total count query for scrollbar
* TotalCountChanged signal
* Paginated DB queries: findAllPaginated, findByFolderIdPaginated
* Count queries: countAll, countByFolderId
- MailItemDao: new paginated methods
* findAllPaginated(offset, limit, filters...)
* findByFolderIdPaginated(folderId, offset, limit, filters...)
* countAll(filters...), countByFolderId(folderId, filters...)
- MailListView: scroll-triggered fetchMore
* Connects verticalScrollBar valueChanged on both TreeView and ListView
* Triggers fetchMore at 90% scroll threshold
* onRowsInserted updates EmailTreeModel when new emails arrive
* Works in both normal (tree) and compact (list) views