Hi, Trojita upstream here. Trojita does not download the whole mailbox at all; that's a pretty important point and also the reason why it is so fast. What is very likely going on here is that you are using pretty basic item delegates in the list view. Unlike the optimized QtWidgets comopnents, the QML ListView by default instantiates delegates for all items in the model (and in this case, this means that the code will request data for each and every mail in a mailbox).
This can be prevented, of course, and the Harmattan version of Trojita has been always doing just that. With the MeeGo QML components, it was enough to set the width and height of the delegate manually; that way, the QML code would not ask for the actual data, and Trojita' IMAP implementation has no reason to request them.
The second optimization has a lot to do with scrolling. Harmattan's default implementation again instantiated all delegates even though these items were not really "visible", just "scrolled over". See Trojita's own src/Harmattan/qml/trojita/MessageListPage.qml, especially the logic which flips between the scrollingMessageDelegate and messageItemDelegate.
There is no reason to artificially limit the view to just 20 items. The old code was pretty smooth on the original N9.
Hi, Trojita upstream here. Trojita does not download the whole mailbox at all; that's a pretty important point and also the reason why it is so fast. What is very likely going on here is that you are using pretty basic item delegates in the list view. Unlike the optimized QtWidgets comopnents, the QML ListView by default instantiates delegates for all items in the model (and in this case, this means that the code will request data for each and every mail in a mailbox). This can be prevented, of course, and the Harmattan version of Trojita has been always doing just that. With the MeeGo QML components, it was enough to set the width and height of the delegate manually; that way, the QML code would not ask for the actual data, and Trojita' IMAP implementation has no reason to request them. The second optimization has a lot to do with scrolling. Harmattan's default implementation again instantiated all delegates even though these items were not really "visible", just "scrolled over". See Trojita's own src/Harmattan/qml/trojita/MessageListPage.qml, especially the logic which flips between the scrollingMessageDelegate and messageItemDelegate. There is no reason to artificially limit the view to just 20 items. The old code was pretty smooth on the original N9.