Commit graph

3809 commits

Author SHA1 Message Date
Federico Bruni
7094de03cf remove deprecated 'languages' parameter of gnome.yelp()
Since version 0.43 Meson automatically reads the LINGUAS file.
2018-09-28 17:40:34 +02:00
Michael Gratton
c1bc3ee99d Merge branch 'wip/795595-fix-special-folder-creation' into 'master'
Wip/795595 fix special folder creation

See merge request GNOME/geary!48
2018-09-26 14:12:58 +00:00
Michael Gratton
6df979dade Add support for creating/deleting folders to the console app 2018-09-26 23:54:47 +10:00
Michael Gratton
7449e10b3e Correctly handle creating special folders when they do not exist 2018-09-26 23:28:43 +10:00
Michael Gratton
c39b1e5457 Improving handling when opening folders that do not exist on remote.
Force close the folder if when opening a remote session indicates it
does not exist.

Also actually handle the folder not opening during a background sync.
2018-09-26 23:24:17 +10:00
Michael Gratton
4989cc78ef Ensure folders are removed from local account's cache when deleted 2018-09-26 23:21:52 +10:00
Michael Gratton
1d0f0de987 Make some exception messages more obvious when seen out of context 2018-09-26 23:20:00 +10:00
Stas Solovey
00e1a92d74 Update Russian translation 2018-09-25 20:16:02 +00:00
Michael Gratton
b4749cce39 Simplify the process of creating new local folders somewhat
Enable local folders to be created with one call, rather than two.
2018-09-25 23:59:28 +10:00
Michael Gratton
3e461e7b45 Don't include empty root folder path segment constructing a mailbox name
This fixes attempts to create special mailboxes as "/Special" instead
of "Special".
2018-09-25 23:33:12 +10:00
Michael Gratton
4095c53383 Merge branch 'revert-ad984903' into 'master'
Revert "Merge branch 'print-headers' into 'master'"

See merge request GNOME/geary!46
2018-09-23 02:33:46 +00:00
Michael Gratton
00e7834082 Revert "Merge branch 'print-headers' into 'master'"
This reverts merge request !45
2018-09-23 02:18:24 +00:00
Michael Gratton
ad984903c4 Merge branch 'print-headers' into 'master'
Print common headers when printing messages

Fixes #114

See merge request GNOME/geary!45
2018-09-23 02:17:58 +00:00
Alex Henrie
2b2c587e6c Print common headers when printing messages 2018-09-22 09:48:51 -06:00
Marek Cernocky
b6312810c5 Updated Czech help translation 2018-09-18 08:33:36 +02:00
Josef Andersson
7635480033 Update Swedish translation 2018-09-14 21:08:16 +00:00
Michael Gratton
94809971ee Fix account branch in folder tree not being expanded by default
For Cyrus and other servers that puts all user folders under the Inbox,
if the Inbox's special type changes, all children are removed and
re-added. This ensures account paths auto expand whenever any child
is added. This is sub-optimal if a new folder is added and the branch
was manually closed, but that's a corner case.

Fixes #92, see also #11.
2018-09-14 23:45:26 +10:00
Michael Gratton
cfc05a1f5b Merge branch 'wip/98-connectivity-can-reach-debus-error' into 'master'
Update error handling when checking for network connectivity

See merge request GNOME/geary!44
2018-09-14 12:59:31 +00:00
Michael Gratton
8b3d9d9432 Update error handling when checking for network connectivity
Use Glib.NetworkMonitor.connectivity to work out if we should report
an error thrown when checking reachability: Only report if we have
full connectivity, otherwise retry.

Also, NetworkMonitor.can_reach may throw a DBus error if there is a
problem talking to the portal under Flatpak. We should at least
attempt to connect in this case.

Workaround for issue #97, see also #82
2018-09-14 22:35:43 +10:00
Michael Gratton
f3ad1fe00d Merge branch 'wip/29-ms-breaks-plain-sigs' into 'master'
Fix plain text signatures losing their formatting when rendered by MS products

See merge request GNOME/geary!33
2018-09-12 11:09:34 +00:00
Michael Gratton
adf21161e9 Merge branch 'faster-folder-switching' into 'master'
Faster folder switching

See merge request GNOME/geary!42
2018-09-12 10:55:19 +00:00
Michael Gratton
9076011d0d Merge branch 'wip/77-skc-in-composer' into 'master'
Further refine workaround for SKC key press handing

Closes #77

See merge request GNOME/geary!41
2018-09-12 10:06:24 +00:00
Erik Faye-Lund
3ea103eb94 Only rebuild copy/move toolbars when switching accounts
When working on accounts with a *lot* of folders on slow servers, this
can be very slow. So let's try to only do it when it's actually needed;
when switching accounts.
2018-09-12 11:49:24 +02:00
Erik Faye-Lund
83872710bf Remove pointless null-check
This check can never be null; we already defererence this variable
before, so we would have seen an NRE here already.
2018-09-12 11:45:34 +02:00
Michael Gratton
72cfef5efa Further refine workaround for SKC key press handing
Only consider keyboard modifiers that are in GTK's default mod mask
when deciding to engage/disengage the SKC hack in MainWindow, so things
like NumLock being on (GDK_MOD2_MASK) don't disengage the hack.

Fixes #77
2018-09-11 22:49:05 +10:00
Emin Tufan Çetin
efe02322ad Update Turkish translation 2018-09-08 21:41:10 +00:00
Marek Cernocky
02df43298a Updated Czech translation 2018-09-07 10:47:36 +02:00
Rafael Fontenelle
01e553eb5c Update Brazilian Portuguese translation 2018-09-01 22:44:27 +00:00
Piotr Drąg
33fc63f211 Update Polish translation 2018-09-01 19:40:03 +02:00
Emin Tufan Çetin
d5034f324e Update Turkish translation 2018-09-01 12:58:50 +00:00
Emin Tufan Çetin
daa070420f Update Turkish translation 2018-09-01 12:58:04 +00:00
Michael Gratton
093fc93ba7 Modernise in-tree debian packaging
Update standards and dh compat versions, stop building the -dbg package
and build a dbgsym package instead.
2018-09-01 22:09:18 +10:00
Michael James Gratton
43ba38bb05 Add unit test for IMAP FETCH command constructor. 2018-09-01 22:09:18 +10:00
Michael James Gratton
1bdfacc10a Split Command.serialize up into two phases to get IDLE logged properly
Command.serialize has now become send() and send_wait(). ClientSession
will signal a command has been sent after calling the first method, but
will not send another until the second returns. This allows IDLE and
AUTHENTICATE to stall the send queue until they are complete, but also
allows listeners to get signalled when the command has actually been
sent.
2018-09-01 22:09:18 +10:00
Michael James Gratton
74323d2935 Ensure IDLE command and DONE are both subject to a timeout.
Use the same timeout for IdleCommand as for others, but have it manage
its response timer itself, so it is reset when its IDLE continuation is
received, but restarted when DONE is sent, so sending both that and the
initial command are covered by a timeout.
2018-09-01 22:09:18 +10:00
Michael James Gratton
92f8e86bd1 Cancel any sent IMAP commands when closing server connection streams.
This prevents incomplete commands (esp. IDLE) hanging around forever when
the connection closes.
2018-09-01 22:09:18 +10:00
Michael James Gratton
aea90fd522 Doc comment and copyright updates. 2018-09-01 22:09:18 +10:00
Michael James Gratton
78dac45009 Avoid buffering when Imap.Serializer writes quoted strings. 2018-09-01 22:09:18 +10:00
Michael James Gratton
4890a0ef70 Add per-command response timeout so we get them for each individual command 2018-09-01 22:09:18 +10:00
Michael James Gratton
a5228edaa3 Ensure IDLE is not sent after is it is disabled for a connection.
Since the idle timer was not being cancelled, when idle_when_quiet was
set to false the connection would still send IDLE. This also removes the
need to send a NOOP to get in/out of IDLE.
2018-09-01 22:09:18 +10:00
Michael James Gratton
c24cba0516 Fix console app after recent ClientConnection API changes. 2018-09-01 22:09:18 +10:00
Michael James Gratton
f8e4c2ad93 Remove AUTHENTICATE-specific parameter and IMAP session code.
This is no longer needed now that AuthenticateCommand takes care of its
own continuations.
2018-09-01 22:09:18 +10:00
Michael James Gratton
b74190e010 Don't send commands while another has an active command continuation.
Issue #26 underscored Geary's buggy behaviour in sending commands while
an IDLE command was active - when a new command was queued, DONE would be
sent but then the new command would also be sent without waiting for the
status response for the IDLE command from the server, in violation of
RFC 3501 sections 2.2.1 and 5.5.

A quick fix was to ensure that the new command was held while DEIDLING,
but because of the way the synchronization process between
ClientConnection and the Serialiser works, there is a race that allows
any further commands added to be sent while the IDLE DONE had not yet
been flushed: DONE gets queued, additional command gets queued, then
both get flushed.

Fixing this required re-working how ClientConnection and Serializer
interacted, which was a major re-write. Serializer no longer buffers
any data - it simply writes it out to its underlying stream.
ClientConnection now queues commands and writes them out one by one,
requiring Command implementations to manage stalling the queue until
their expected completions have been received. Literals are hence
written by their command's serialisation process, which gets prompted
by an event from ClientConnection. The two commands that require
non-literal continuations, IDLE and AUTHENTICATE, now manage that
themselves.

As a result, only one command can be serialised at a time, and no
additional commands can be serialised while another is still waiting for
a continuation. Also, command-specific details can be implemented by
command itself, without needing workarounds in the serialiser,
connection, or session.
2018-09-01 22:09:18 +10:00
Michael James Gratton
ab9d0c27ad Make Imap.Command a top-level type rather than inherit from Parameter.
Instead, make the args property a parameter list, and add params to that.

This means Command's serialize method have a different signature compared
to Parameter's, letting us do some more interesting things with it.
2018-09-01 22:09:18 +10:00
Michael James Gratton
1de86f3316 Replace Imap.Parameter.serialize tag arg with a cancellable.
The tag arg was obsolete anyway, and this lets us cancel writes as soon
as they happen.
2018-09-01 22:09:18 +10:00
Michael James Gratton
8988a571bc Add Geary.Nonblocking.Queue.is_empty. 2018-09-01 22:09:18 +10:00
Joel Duncan
0d64fdaa6b Change starttls command to uppercase to support ProtonMail Bridge 2018-09-01 22:09:18 +10:00
Michael James Gratton
51b44f0f4b Remove ListParameter.parent property so lists can have multiple parents.
The ListParameter.parent property only existed to make the deserialier's
life easier, but is also why sketchy code was needed for appending search
criteria from a ServerSearchEmail replay op to the actual IMAP search
command sent to the server.

This removes the property altogether, and replaces its only use in
Deserialier with a stack, as nature intended. This means lists can be
added to more than one other list, and e.g. when a search is executed,
the search critera can be used for multiple requests.
2018-09-01 22:09:18 +10:00
Michael James Gratton
e11bdc863b Rename ListParameter.append to extend and make it work as expected.
I.e. Don't modify the list being appended from, so that when the
ServerSearchEmail replay op is re-executed after a network error, the
search criteria have not disappeared.
2018-09-01 22:09:18 +10:00
Mario Blättermann
d99e16e139 Update German translation 2018-08-31 19:03:49 +00:00