If the Folder is closing and there's network issues, old code would
reschedule operations to allow for a retry when the connection was
reestablished. In the close case, there will be no reconnection
and the operation would loop forever, blocking close/terminate
operations which indicate the queue was flushed. This change only
reschedules an operation if the queue is open for business.
A mild optimization, but since it's possible for an operation ahead
of the current list operation to pull down an email into the database,
it's worth checking the store once more before going to the network
for data.
If the server supports sending and receiving messages from additional
email addresses, those addresses can now be added to Geary. It will
allow the user to send new messages and replies from those additional
addresses and recognizes them as "Me" in the conversation list.
SearchFolder is now an abstract base class and all the IMAP-specific
search folder code is moved to imap-db/search (much like the Outbox
is in imap-db/outbox).
Conflicts:
src/engine/api/geary-search-folder.vala
Assumed that getting a TreeModel iterator would always work isn't true
at shudown when the model is being depopulated. This removes
assertion and only proceeds when valid every time.
The logic in our image replacement code needed to take account if the
MIME part was inside a multipart/mixed container or otherwise. This
patch does that as well as clean up the code path and better document
the API as well as what's going on inside ConversationViewer when the
message is assembled.
Removing internal and private symbols from geary-static.vapi results
in removing 1,000 lines from the file. Although testing doesn't show
an appreciable increase in compile time (w/ make -j8 on my 8-core
machine), by reducing symbol leakage partial builds should improve.
This patch also fixes a couple of symbols marked internal but being
used publicly (and necessarily so) and a couple of errordomains in
the Engine not placed in the Geary namespace.
For now, the undo stack is 1-deep with no redo facility, which mimics
Gmail's facility. We can consider later offering a more involved
undo stack, but would like to try this out for now and work out the
kinks before becoming more aggressive.