Ensure only one account is cleaned at a time - they're now cleaned in
sequence. Also ensure re-entrancy isn't possible.
(Geary.Account.last_storage_cleanup was previously assisting with
this but is now unsufficient with the above change).
The idea being that if we've returned into the foreground while old
message detachment was running the remaining background cleanup tasks
shouldn't be run.
Monitor folder checking operations so we can perform garbage collection
once any message detaching has finished. WIP as this is a second
mechanism for triggering GC after folder checks have completed. Need to
discuss.
Also handle continuation of cleanup after old messages have been
detached. Flagged vacuuming is performed even when the cleanup
interval hasn't been reached. The tracking of last background
cleanup time in Account.Information is possibly temporary and isn't
yet persisted.
The idea here being if we've just reduced prefetch period, reap has
detached a whole lot of messages and we want to vacuum. This check
catches that vacuum recommendation, flagging it to run when the app
is backgrounded and idle.
Including:
- Moved into method run_gc
- Added ability to force reap (useful after old message cleanup when we
don't want to wait the regular 10 day span)
- Added tracking of desire to vacuum, which will later by executed when
backgrounded for a period
- Disabled vacuum on startup
- Added stopping IMAP while vacuuming
- Used ugly WIP hack of passing through account to stop IMAP
Split detach query into two so that messages identifiers can be captured
which are then used to signal through that the folder has locally
removed messages
In ccb11359, the composer headerbar was set to have a close button by
default. This caused the reply composer to have a close button that
would close the entire window. This commit reverts that part of
ccb11359.
The "Drop files here to add them as attachments" message was not
centered as it should have been, because the "expand" child property was
reset to false when it was removed/readded to its parent.
Implemented according to the mockups at
<https://gitlab.gnome.org/Teams/Design/app-mockups/raw/master/mail/composer.png>.
- Use an animated revealer rather than instantly showing/hiding the
fields
- Include Cc in the "extended fields"
- Use a toggle button instead of a menu item to show/hide these fields,
for better discoverability