A couple of queries (at least the search blacklist query and the folders
for each email query) weren't respecting the flag in
MessageLocationTable that means we should treat the row as if it didn't
exist. This was causing problems where a draft that was also a search
result would keep being duplicated in the search results as you typed
more in the draft. The cause was that the removed signal was fired
after the message had been marked as removed, but before it was actually
deleted, so it was still being found in the search even though
folderless emails are blacklisted.
Old message wasn't clear if the number of additional new messages
was in addition to the one being reported or total new messages.
Additional new messages is a more interesting value, so this changes
the value to additional and the message to clarify that.
* Increase the size of the spinner; fix#7184
* In the event of an error sending a message, display text in the status
bar indicating as such (and display a notification too); fix#7481
* Display a status bar message and spin the spinner when sending;
fix#4629
* Re-add the sound played when a message is sent; fix#5429
This takes advantage of Outlook.com's new IMAP support, meaning
Geary works with Outlook.com, Hotmail, and Live.com users.
Because Outlook.com doesn't support UIDPLUS, some features
(in particular, draft auto-save) is unavailable, as is the
ability to use its Archive folder directly.
This patch fixes a couple of bugs that occur when a server doesn't
support UIDPLUS. Also fixes a use case with UID increment/decrement
that caused a flag watcher bug due to ImapDB.Folder always
returning the same email if only one was present in the folder.
ImapEngine.GenericFolder.internal_close_async() was hanging due to
the ReplayQueue never closing. This could occur if there was a
hard error (i.e. network) while opening the Folder. In essence,
this hung Folder.open_async(), which put the client into a bad state.
Now the ReplayQueue doesn't hang and is flushed if a "clean" close,
while outstanding operations are dropped if closing due to an error.
This also includes some small fixes in ClientSessionManager to
prevent a hang due to mutex reentrancy, and a State problem in
ClientSession that is unrelated but bad enough that it should be
included here.
Definition of "new messages" is misleading, now always describing
message details unless more than one arrives at the same time:
Closes#7376
When multiple messages arrive, note which account they arrived
for: Closes#7386
Show more information about new messages in notifications
(specifically, if additional new messages have arrived for account,
include summary of number): Closes#6952
Engine validation now takes options flags indicating if the
validation is for adding or editing an account, and if the
network connections need to be checked.
Replaced images are converted into data: URIs, so this change
involves saving in-memory buffers rather than copying attachments
out of the attachments directory.
It was a good idea in theory to trigger an append when search results
are first added, but this hits the conversation monitor too hard, which
can't easily handle large appends (ticketed at #7464).
This also updates the conversation monitor to listen to the new inserted
signal instead of looking at count-changed.
This handles the case when an image is specified in the message
with no Content-Disposition; in that case, use the "natural"
disposition for the client (i.e. images are inline, other types
are attachments).
If the database's current schema version does not have a corresponding
schema file in the schema directory, throw an Error and report it to
the user. Most likely this means the user is trying to run an older
version of Geary against a newer database.
While working on #7345, I grew dissatisfied with how Geary.Attachment
was implemented. It knew too much about imap-db's internal workings,
so I've broken it up a little bit. It's now an abstract base class
completed by ImapDB.Attachment, a private implementation class.
This corresponds with the coding patterns used throughout the
Geary API.
The database is now tested for corruption at startup. If a problem
is detected, one of three error messages are displayed in a dialog box
(corruption, permission problems, and "general error").
With this, you can search for something like
chaz@yorba.org
and due to the tokenizer, it'll end up like
"chaz yorba org"
which at least means the tokens have to appear sequentially.
Previously, it would appear like
chaz yorba org
which lets them appear anywhere in the message; clearly not what you
wanted.
Folder now offers an "email-inserted" and "email-locally-inserted"
signal to indicate when email has been added (or discovered) but
is not added to the top of the message vector. SearchFolder and
ConversationMonitor may be able to use this better in the future.
Just experienced a crash in the SmtpOutboxEmailIdentifier
constructor trying to get its own type name. Past experience
has shown that calling into GObject (or GType) in the constructor
before calling base() is dangerous, so changing this to a flat
string.