Commit graph

4983 commits

Author SHA1 Message Date
Zander Brown
36f0b9ae05 Update British English translation 2019-08-31 09:46:21 +00:00
Michael Gratton
ba4ab1669c Update files for 3.33.90 2019-08-30 10:21:27 +10:00
Michael Gratton
59e80db80d Merge branch 'wip/543-append-failure' into 'mainline'
Fix IMAP APPEND command timeout on large email upload

Closes #543

See merge request GNOME/geary!296
2019-08-29 23:57:03 +00:00
Michael Gratton
597024d6ac Merge branch 'wip/close-flatpak-holes' into 'mainline'
Closes Flatpak  notification and settings holes

See merge request GNOME/geary!299
2019-08-29 23:54:04 +00:00
Michael Gratton
8f23dbd811 Merge branch 'wip/beta-profile' into 'mainline'
Add beta build profile

See merge request GNOME/geary!298
2019-08-29 23:33:47 +00:00
Michael Gratton
50d4552f36 Merge branch 'wip/restore-revno' into 'mainline'
Ensure client displays the revno where approrpiate

See merge request GNOME/geary!295
2019-08-29 23:05:08 +00:00
Michael Gratton
4b84616d82 Write literal data in chunks when sending to server
By splitting literal writes into apprpriately sized chunks, the
command's response timer can be updated so that the command doesn't
fail due to a timeout as large values are being sent.

Fixes #543
2019-08-29 23:27:22 +10:00
Michael Gratton
4c56ff3436 Convert Imap.Serialiser.push_literal_data to take generic param
Rather than taking a Literal argument, take a data array instead. This
allows more flexibility in sending literal data to the server.
2019-08-29 23:24:34 +10:00
Michael Gratton
d450e8a394 Clean up Imap.LiteralCommand API
Expose value buffer as a RO property, remove redundant method calls,
fix call sites.
2019-08-29 23:23:19 +10:00
Enrico Nicoletto
c8d6fe552a Update Brazilian Portuguese translation 2019-08-28 19:08:12 +00:00
Michael Gratton
bf16d4f022 Close Flatpak notifications hole
This requires xdg-desktop-portal >= 1.2.0.
2019-08-29 01:12:52 +10:00
Michael Gratton
d1d7485434 Close Flatpak settings hole
See https://blogs.gnome.org/mclasen/2019/07/12/settings-in-a-sandbox-world/
2019-08-29 00:53:49 +10:00
Michael Gratton
a02a1aac8b Add beta build profile 2019-08-28 22:13:01 +10:00
Michael Gratton
56b3ce9833 Ensure client displays the revno where approrpiate
This ensures that the revno is always displayed in About, the Inspector,
and at the top of log files if build from git.
2019-08-28 20:03:29 +10:00
Michael Gratton
031f02c8c9 Drop meson version req to remain buildable on Ubuntu 19.04 2019-08-28 19:17:14 +10:00
Michael Gratton
17c4151c8a Chase recent source changes in POTFILES.in 2019-08-28 19:13:28 +10:00
Michael Gratton
b9cbe81e12 Merge branch 'wip/christopherdavis/dual-install' into 'mainline'
build: Set up dual install for flatpak

See merge request GNOME/geary!229
2019-08-28 09:10:14 +00:00
Michael Gratton
f6e97db5b5 Merge branch 'wip/imap-disconnects-ignored' into 'mainline'
IMAP disconnects ignored

See merge request GNOME/geary!292
2019-08-28 07:53:45 +00:00
Michael Gratton
81e566a78f Merge branch 'wip/131-sent-mail' into 'mainline'
Sent mail not immediately showing up in a conversation

Closes #131

See merge request GNOME/geary!281
2019-08-28 01:22:59 +00:00
Michael Gratton
8cb0cdcfa6 Merge branch 'wip/prefetcher-missing-mail' into 'mainline'
Fix prefetcher missing mail on folder open

See merge request GNOME/geary!294
2019-08-28 00:42:08 +00:00
Michael Gratton
df3e273cc5 Merge branch 'wip/minor-cleanup' into 'mainline'
Minor code cleanup

See merge request GNOME/geary!293
2019-08-28 00:22:01 +00:00
Michael Gratton
5fc0ddfd9b Clean up EmailPrefetcher's class API docs a bit 2019-08-28 10:18:59 +10:00
Michael Gratton
0c59a8c4a3 Ensure EmailPrefetcher's cancellable actually gets cancelled 2019-08-28 10:18:31 +10:00
Michael Gratton
f4aeac5584 Ensure EmailPrefetecher doesn't ignore mail found on folder open
EmailPrefetecher was deliberately ignoring new mail found during
folder normalisation on folder open to avoid the kind of deadlock
solved by the last commit. Since this is no longer a problem, it can
now stop dropping those.

This should fix a number of issues where email is only partly
downloaded.
2019-08-28 10:13:10 +10:00
Michael Gratton
4ec936fe7c Ensure background sync ops are cancelled if the folder closes
Since MinimalFolder.synchronize_remote() waits for the prefetcher to
finish, but the prefetcher only closes when the folder closes, this
could deadlock.
2019-08-28 10:10:24 +10:00
Michael Gratton
935f75e4af Enable valadoc and refcounting in dev build by default 2019-08-28 09:59:05 +10:00
Michael Gratton
4ac29628d5 Fix variable name speeling error 2019-08-28 09:58:40 +10:00
Michael Gratton
b88278c2af Fix build warning 2019-08-28 09:58:15 +10:00
Emin Tufan Çetin
ef289b4135 Update Turkish translation 2019-08-27 21:23:50 +00:00
Christopher Davis
bfcee9bff7 build: Set up dual install for flatpak
Part of https://gitlab.gnome.org/GNOME/Initiatives/issues/1;
Sets up dual installation for flatpaks, allowing us to
build and run geary without affecting our system install.
This will allow testing of nightlies and CI artifacts as well
via the flatpak, so we can iterate on designs and share
bundles to test with.
2019-08-26 09:38:31 -07:00
Michael Gratton
eb6afae358 Rename UNCONNECTED FSM and protocol state to NOT_CONNECTED
The former is ambiguous, the latter is not.
2019-08-26 13:55:43 +10:00
Michael Gratton
63210247dd Rename the BROKEN FSM state to CLOSED
BROKEN sounds bad, whereas it's actually a normal state.
2019-08-26 13:52:32 +10:00
Michael Gratton
0b923a29ea Ensure bad IMAP response are treated as other errors
Send a receive error event to the FSM when a bad response is received so
that the connection is closed, in the same way as for other receive
errors.
2019-08-26 13:52:32 +10:00
Michael Gratton
5a9944a9df Handle Imap.Deserialiser EOS better
Ensure that the client connection is disconnected when the deserialiser
receives an EOS from its underlying stream. Rename the signal used
by Imap.ClientConnection to notify the Imap.ClientSession of EOS to make
it more clear what is going on.

Resolves the issue in #481 where an EOS was recevied but the connection
was not pulled down until after a NOOP was sent and timed out.
2019-08-26 13:52:32 +10:00
Michael Gratton
3ff35bcb67 Remove some duplicate debug logging
Only log from FSM event handlers, not from connection signal handlers.
2019-08-26 13:52:32 +10:00
Michael Gratton
c3fc7c4533 Merge branch 'wip/infinte-filling-redux' into 'mainline'
Make App.ReseedOperation alway check the window for re-filling

See merge request GNOME/geary!291
2019-08-26 03:47:46 +00:00
Michael Gratton
08c057345d App.ConversationMonitor: Don't force load ops to be local-only
In an attempt to prevent ConversationMonitor for blocking when a
connection went bad, load operations were set to local-only when
the remote was not open. This meant however that if the remote was in
the process of being opened, that local-only would be set, and hence any
incomplete messages would fail to be downloaded. Now that the Fill op
now explicitly handles filling local-only by default, we can remove
this.

This ensures that when the conversation monitor is notified of new
messages, but they are not yet fullly downloaded since the prefetcher
is still running, that the messge will still show up.
2019-08-26 13:32:53 +10:00
Michael Gratton
02f1d89d27 Smtp.ClientService: Explcitly poll when waiting for sent mail
At least GMail takes some time to copy new messages to the Sent folder
on the server side when sending them, which means the mail may not show
up even after doing a manual remote sync.

This adds an explicit poll, listing new mail in Sent after sending
a message to check for the sent message showing up.
2019-08-26 13:32:53 +10:00
Michael Gratton
4ae0414e44 MinimalFolder::synchronise_remote: Handle sessions gone bad
Since the NOOP that ::synchronise_remote sends doesn't go through the
replay queue, it will throw an error if the connection has gone bad.
Instead, catch it and retry.
2019-08-26 13:32:53 +10:00
Michael Gratton
7b53137c8f Fix missing outbox messages body preview in ConversationViewer 2019-08-26 13:32:53 +10:00
Michael Gratton
dd24b220d0 Ensure new sent mail is found for services that auto-save
Ensure that sent mail shows up in a conversartion ASAP for Google,
Outlook and others that automatically save sent mail by performing a
manual sync of the Sent folder after delivering the mail.
2019-08-26 13:32:53 +10:00
Michael Gratton
d56508f1e7 Clean up ImapEngine.CreateEmail replay op source code 2019-08-26 13:32:53 +10:00
Michael Gratton
4cc71e6930 Handle headers having null date in ConversationMessage 2019-08-26 13:32:53 +10:00
Michael Gratton
079d0205b7 Handle Smtp.ClientService null condition better 2019-08-26 13:32:53 +10:00
Michael Gratton
8bb7d3aeee Ensure folder is refreshed ASAP after creating a new message
If the server supports UID plus, update the message after it was
created to get its IMAP fields and anything else missing filled in.
If not, schedule a explicit folder sync.
2019-08-26 13:32:53 +10:00
Michael Gratton
b717c323bb Schedule folders for background sync even when open
Although the folder normalisation process and email prefetcher should
be enough to sync a folder without requiring an explcit sync, if the
folder opens and closes fast enough that new mail is notified but not
downloaded, the folder will still close and the mail will be missed.

To fix this, if a folder has changed, queue it for sync'ing even if it
is currently open.
2019-08-26 13:32:53 +10:00
Michael Gratton
6871c1cd90 Make remote folder synchronisation a top-level API method
Add Geary.Folder::synchronise_remote method to allow clients to
explicitly check for new mail in a folder. Move code from
ImapEngine.AccountSynchronizer as the basic implementation, but also
ensure pending replay queue notifications are processed before the
process is complete.
2019-08-26 13:32:53 +10:00
Michael Gratton
ee11d0d8ec Allow sending NOOP commands from Imap.FolderSession
This provides API users a means of poking the server to get pending
notifications out.
2019-08-26 13:32:53 +10:00
Michael Gratton
d7006f3b5e Ensure the prefetcher considers all local email
Handle email without IMAP properties in ImapEngine.EmailPrefetcher
when listing email to prefetch, in case any appear in the database.
2019-08-26 13:32:53 +10:00
Michael Gratton
006b4c5ca5 Make App.ReseedOperation alway check the window for re-filling
When the remote re-opens, new messages may have become available that
could be added to the conversation set if the window is not yet full.
Thus always check whether a fill operation should be queued.
2019-08-26 13:32:04 +10:00