[CamelVeeFolder] Implement CamelFolderClass::get_message_cached()
I'm using Evolution for quite some time with two accounts ( EWS, IMAP ) and a couple of search folders. One of them holds all the unread email threads except a couple of folders. All the folders included in there are set to have their emails downloaded for offline use.
Whenever I switch to a search folder and select an email ( which should already be downloaded offline ) it lags for a couple of seconds. In the status bar I see both 'Retrieving message XYZ...' and 'Refreshing folder Search Folders: Unread....'.
Until the folder refresh is done, the message is not displayed, even though it's available offline. Accessing the same messages using the 'physical' folder linked to the accout is very fast. So it looks to me like reading email through search folders is needlessly slow.
As a concrete example, Consider the following scenario:
- Switch to virtual folder
- Message is selected so it is downloaded ( waiting for the folder refresh )
- Switch to the physical folder and access the message ( no delay )
- Switch to the virtual folder again
- Message is selected so it is downloaded (again, still waiting for the folder refresh )
So no matter what am still waiting for the virtual folder to refresh and for the message to be downloaded, even though the message should be there. Whether the download is a no-op since it's already saved for offline I don't know, it just appears in the status bar, apparently queued after the folder refresh.
Given that accessing the same message through a regular folder works without any delays, I think the message is downloaded, just that access through the virtual folder is delayed for some reason.