Provide a visual indication of search progress
Searching through emails with Evolution can be slow (as we've seen in #821 (closed), or simply from trying to search for a term in message body in GMail's "Sent" messages folder via IMAP).
While "making fully body search super fast" is not trivial, showing progress to the user is, and it would help a lot with the "perceived" slowness of the application (or at least encourage the user's patience).
The search progress could be a very primitive algorithm: a percentage calculated from the number of messages searched divided by the number of messages to search (in the current folder, current account, or "all accounts").
Then you can show this percentage in two places:
- The statusbar's "Generating message list" status message could have a percentage shown, so it would be "Generating messages list (45%)..."
- I could argue that "Searching messages (45%)..." would be much clearer, but maybe there is a specific reason why "Generated messages list" was used as terminology?
- The GtkEntry of the searchbar could have a simple progressbar in it, with gtk_entry_set_progress_fraction().
- The only tricky part is that the blue progressbar (at least from my observations on Evolution 3.34.4) only which shows up when the searchbar is focused, because when a search is active/filtered Evolution fills that GtkEntry's background with a blue color.
- To work around this issue, I would suggest that this blue background should be set only when search completion attains 100% (and it would be more obvious that the search is complete that way, anyway; the entry would show the blue progressbar and when it reaches 100% the whole entry would be blue, which kinda feels like there's visual continuity). Alternatively, maybe you would prefer to just set and keep the progressbar to 100%, but then the look will be theme-dependent.
This is what it would look like on the Adwaita theme (simulated using the Gtk Inspector on 3.34) while the search is being performed: