This looks for some translatable common names for special folders like
Sent Mail, Drafts, Spam and Trash, instead of only relying on the
server's special-use or xlist extensions. If the server doesn't report
special-use/xlist, we look for common folder names, creating them on the
server if necessary, so we always have folders necessary for tasks like
saving drafts or sent mail.
Closes: bgo #713492
The character following the token is found through a look-ahead, to
avoid consuming the opening of the next token. (There should be
newlines separating tokens, but in some poorly understood circumstances,
this doesn't happen.) We don't use a look-behind at the beginning, so
that the second consecutive token doesn't insert a second newline
between the two. (The first of the pair already gave us one.)
Closes: bgo #723742
The "enabled" property is no longer used, so removing.
If the flag watcher is cancelled (because the folder has been closed),
the watcher was still rescheduling another polling loop. This patch
prevents that.
If compiled with the GDK binding fix in Vala 0.23.2 (bgo#713240), this
patch fixes the accelerator problem.
Tip o' the hat to Charles, who pointed out the accelerators.ui file.
In particular, bug #713493 reports this, although this patch doesn't
appear to solve the problem entirely. However, I have spotted
situations in the past where the Append replay operation caused local
operations to hang. This is because Append was being treated as a
local operation when, in fact, it's first call is back to the server
to fetch UIDs of the new messages. Hence, it should be treated as
a remote operation so local operations can run without delay.
Previously, synchronizing folders caused a jump in CPU, so work was
done to minimize activity. Optimizations to folder normalization
has reduced the CPU load, so it's okay now to allow flag watching
while the background folder is open.
This is not a substitute for an architected solution: periodic
flag synchronization with folders, not merely when changes in contents
(additions/removals) are detected, but this helps some, especially
with high-traffic folders.
More testing of previous changes located two other problems that
this patch fixes.
First, if a connection reestablishment was attempted but the reconnect
failed initially (common if the server is simply unavailable, i.e.
recent Gmail outage) the reestablishment logic halts. This patch
forces another attempt.
Second, the back-off delay that used to be present in the
conversation monitor (when it handled reestablishment) was missing
in the new code. This adds it back.
One bug in that commit was that only one of two the two conditionals
for entering connection reestablishment was considered when
determining if the Folder should close. This change now uses both
conditionals. Without this, it's possible for the remote to fail
to open due to connection error and the Folder to remain open although
reestablishment doesn't occur because there's no remote folder to
establish with.
OpenMailbox.org doesn't complete transactions when the IDLE state
is entered while commands are outstanding. One thing I've considered
for a while is only issuing IDLE when no comands are outstanding,
as in some situations the connection state "thrashes" if commands
come in back-to-back. This commit does just that, only entering
IDLE when no commands are outstanding.
This adds a way to turn lists of items into a Geary.Iterable, which then
allows you to dump results into any kind of container. This removes the
Collection.SingleItem class, which was no longer useful.
Closes: bgo #723208
This adds the ability for Geary to push sent mail up to the account's
Sent Mail folder (if available). There's an accompanying account option
that defaults to on (meaning: push sent mail).
The current implementation will leave messages in the Outbox (though
they won't be sent again) if they fail to be pushed to Sent Mail. This
isn't the best solution, but it at least means you have a way of seeing
the problem and hopefully copying the data elsewhere manually if you
need to save it.
Note that Geary might not always recognize an account's Sent Mail
folder. This is the case for any "Other" accounts that don't support
the "special use" or "xlist" IMAP extensions. In this case, Geary will
either throw an error and leave messages in the Outbox, or erase the
message from the Outbox when it's sent, depending on the value of the
account's save sent mail option. Better support for detecting the Sent
Mail folder in every case is coming soon.
Closes: bgo #713263
This deals with both the star and unread icon, so both are good now.
Need to clean up the rest of the conversation list's selection probs,
bgo#723265. Also would like to reduce the intensity of the icons,
bgo#720771.
I noticed recently that when composing a draft message, if the
connection to the Drafts folder was dropped by the server, Geary
would enter a fast reconnect loop. The problem was that, even if
Imap.Folder signals "disconnect", it's close_async() must be called.
This adds that logic to the background reestablishment code.
User's server was returning a status code that indicates an invalid
password, when in fact it was simply indicating that it didn't
support the AUTH type (even though it advertised it in its connect
capabilities). This removes the error-checking by SMTP value and
simply attempts all chosed AUTH types.
This patch is a grab-bag of fixes to get mail onto the screen faster
and report new mail waiting on the server more quickly.
In a nutshell:
* Adds a NO_DELAY flag to Folder.open_async which indicates that
background remote connections should initiate ASAP rather than
wait for a local request that requires remote information.
* Reduce creation of ImapDB.Folders (which, previously, were
generated as though "cheap"), which means caching server
information. ImapDB now relies on ImapEngine to refresh that
information on its own.
* The background search table update is delayed to allow startup
database tasks priority.
* Rather than delay selection of a folder 100ms to prevent the user
from holding down a key or clicking madly, the initial selection
goes right through, but subsequent ones are delayed. This may
also help resolve bug #713468.
* And the big one: ImapEngine.Account doesn't load local and remote
folders in parallel at startup, but rather local first, reports
them to the user, and then loads the remote and pairs the two.
This gets the UI up and going much more quickly.