Commit graph

590 commits

Author SHA1 Message Date
Mario Blättermann
a8fdf3afa7 Update German translation 2018-08-03 08:23:44 +00:00
Piotr Drąg
96faa6f1d1 Update Polish translation 2018-07-29 19:51:37 +02:00
Emin Tufan Çetin
4e85b516a5 Update Turkish translation 2018-07-20 11:17:26 +00:00
Michael Gratton
c9b25e25ec Merge branch 'wip/40-backslash-in-folder-name' into 'master'
Fix mailbox names not being sent to the server quoted if needed

See merge request GNOME/geary!24

Fixes #40
2018-07-20 07:07:41 +00:00
Michael James Gratton
b345af61e3 Fix mailbox names not being sent to the server quoted if needed.
Since MailboxParameter inherited from StringParameter directly, it meant
that we could never send mailbox names as quoted strings. Also, the
modified-UTF-7 encoding used for mailbox names does not encode
atom-specials such as "\", so if a mailbox name contained one or more of
these, it would be sent to the mail server unquoted.

This removes the MailboxParameter class altogether, and does the
parameter conversion to/from appropriate StringParameter subclasses as
needed. Also adds unit tests for param conversion for ASCII,
atom-specials, and non-ASCII mailbox names.

Fixes issue #40
2018-07-20 13:43:42 +10:00
Federico Bruni
ce4c013e30 Update Italian translation 2018-07-16 13:54:49 +00:00
Marek Cernocky
aff65c47b5 Updated Czech translation 2018-07-10 09:25:08 +02:00
Isaac Ferreira Filho
612000ba3a Update Brazilian Portuguese translation 2018-07-04 19:37:13 +00:00
Jordi Mas
54cea94689 Update Catalan translation 2018-07-02 00:16:16 +02:00
Daniel Mustieles
77ea2898de Updated Spanish translation 2018-06-22 12:02:52 +02:00
Piotr Drąg
9fbc21cfb8 Remove Autotools i18n leftovers
Damned Lies supports Meson now.
2018-06-13 16:15:27 +02:00
Michael James Gratton
98e2d319eb Remove CMake build.
Closes Bug 777044.
2018-06-13 22:30:10 +10:00
Michael James Gratton
865f23beba Add support for (X)OAuth2 IMAP authentication. 2018-06-12 13:25:05 +10:00
Michael James Gratton
ada7f3fdbb Add support for (X)OAuth2 SMTP authentication. 2018-06-12 13:25:05 +10:00
Michael James Gratton
863a11e780 Rename Geary.Service to Protocol, move into ServiceInformation source. 2018-06-12 13:25:05 +10:00
Piotr Drąg
a3abfd609a Update Polish translation 2018-06-10 16:25:22 +02:00
Niels De Graef
c72d7b28ac Implement in-app notifications. Bug 774442.
Implemented it for the mail sent-notification.

Signed-off-by: Niels De Graef <nielsdegraef@gmail.com>
2018-06-07 08:39:17 +10:00
Piotr Drąg
c87ee05052 Update POTFILES.in 2018-05-27 22:05:23 +02:00
Oskar Viljasaar
5108a21def Implement GOA support for password-based accounts 2018-05-25 15:48:46 +10:00
Michael James Gratton
4e0950f9bc Introduce a ConfigFile class to improve config management.
ConfigFile is a GLib.KeyFile-like class (and is backed by a KeyFile) that
nonetheless provides convenient a high-level API for getting and setting
grouped config values and asynchronous loading and saving.

* src/engine/util/util-config-file.vala: New ConfigFile class.

* src/engine/api/geary-service-information.vala (ServiceInformation):
  Require ConfigFile groups rather than KeyFile instances for loading and
  saving. Update subclasses and unit tests.

* src/client/accounts/account-manager.vala (AccountManager): Move generic
  account key consts here from Config. Instead of using KeyFile directly,
  use ConfigFile groups for loading and saving settings. Rename load and
  save methods to be a bit more consistent with the class's role, and
  make save_account() throw its errors so they can be reported to the
  user. Update call sites.

* src/client/accounts/local-service-information.vala
  (LocalServiceInformation): Move service-specific config key consts
  here, use new ConfigFile groups for loading and saving.

* src/engine/api/geary-config.vala: Removed, all config consts have been
  moved to the classes using them and KeyFile convenience methods
  subsumed by ConfigFile.
2018-05-25 15:42:56 +10:00
Michael James Gratton
48ee9a01aa Clean up po/POFILES.in 2018-05-23 18:51:08 +10:00
Michael James Gratton
7e089dd6f1 Merge branch 'master' into wip/768975-service-info 2018-05-23 16:34:23 +10:00
Michael James Gratton
f1c797650f Ensure we always use the one, same codepath when decoding text content.
This introduces the Geary.RFC822.Part class, which provides a place to
MIME entity body decoding code so it can be reused when needed. It also
provides a place to put common GMime to Geary object conversion, and
apply some common policy decisions, such as what is the default content
type if none is specified.

* src/engine/rfc822/rfc822-part.vala: New Part class that represents a
  MIME entity. Move code for both decoding entity body from
  RFC822.Message and code for cleaning content filename from RFC822.Util
  to here. Convert GMime entity header objects into their Geary
  equivalents and make available as properties. Provide a common means of
  determining the content type of the part if not explicitly set.

* src/engine/rfc822/rfc822-message-data.vala (PreviewText.with_header):
  Construct a RFC822.Part and use that for decoding preview text. Swap
  args to make some more sense and update call sites.

* src/engine/rfc822/rfc822-message.vala (InlinePartReplacer): Simply pass
  through an instance of a RFC822.Part rather than the multi-arg list,
  since that has all the data needed by replacers.

* src/engine/imap-db/imap-db-attachment.vala (Attachment): Require and
  use RFC822.Part instances for obtaining attachment bodies rather than
  GMime.Part instances. Update call sites.
2018-05-10 13:53:24 +10:00
Michael James Gratton
6f7cff219c Move MidstreamConverter to same source file as other stream symbols. 2018-05-08 12:25:03 +10:00
Nathan Follens
963ac79d0e Update Dutch translation 2018-04-17 20:52:26 +00:00
Jordi Mas
4740ffa724 Update Catalan translation 2018-04-17 07:08:27 +02:00
Stas Solovey
8c5d170c1d Update Russian translation 2018-04-12 20:03:12 +00:00
Stas Solovey
27a5c05197 Update Russian translation
(cherry picked from commit 1e93d4366d8b1f5f154c461210ec51f60e824c08)
2018-04-12 19:49:36 +00:00
Dušan Kazik
d0c611d48e Update Slovak translation 2018-03-18 20:56:20 +00:00
Kukuh Syafaat
fa87133fdd Update Indonesian translation 2018-03-16 03:40:09 +00:00
Balázs Meskó
f401037581 Update Hungarian translation 2018-03-15 14:14:08 +00:00
Alan Mortensen
23d9214cd7 Updated Danish translation 2018-03-12 11:58:46 +01:00
Rafael Fontenelle
3235ecb0ff Update Brazilian Portuguese translation 2018-03-11 05:29:26 +00:00
Michael James Gratton
c9b53863e8 Further improvements handling unreliable/offline networks. Bug 789924.
Re-merge branch 'wip/789924-network-transition-redux'.
2018-03-05 23:15:41 +11:00
Michael James Gratton
cf86d07b54 Make ConversationMonitor more robust with no/changing connectivity.
Conversation monitor was built around older assumptions of how a folder's
remote connections work - that once a folder opens it will likely also
eventually establish a remote connection, that once the connection is up
it will hang around, and so on.

This patch removes any public notion of (re)seeding, since it can't be
relied to actually happen over the course of the session, ensures that
all folder operations are local-only when the folder does not have a
working remote connection so it doesn't block, and take the opportunity
to reorganise and clean up the monitor API and documentation comments.

* src/engine/app/app-conversation-monitor.vala (ConversationMonitor):
  Remove seed signals, and don't bother running an initial reseed if the
  folder is already open, since the fill operation will cause any locally
  incomplete messages to be filled out from the report. Manage and use an
  internal Cancellable for cancelling internal operations when shutting
  down. Construct a queue only when starting to monitor conversations,
  delete it when stopping. Move as much operation-specific code into the
  operations themselves as reasonably possible, making some methods
  internal so thy can be accessed from the ops. Ensure all folder listing
  operations specify LOCAL_ONLY when the remote is not open. Removed
  LocalLoadOperation since that is now redundant. Update the API for
  accessing conversations to match Gee conventions and update call
  sites. Update documentation comments. Hook back up to locally-complete
  signals so we don't miss emails being filled out by the prefetcher, for
  now.

* src/engine/app/conversation-monitor/app-conversation-set.vala
  (ConversationSet): Rename conversations property to match Gee
  conventions, update call sites.

* src/engine/app/conversation-monitor/app-conversation-operation.vala
  (ConversationOperation): Allow operations to specify if they should
  allow duplicates, and allow the execution method to throw errors, so
  they can be handled in a uniform way.

* src/engine/app/conversation-monitor/app-conversation-operation-queue.vala
  (ConversationOperationQueue): Accept progress monitor property as a
  ctor arg rather than constructing on itself, so it is tied to the
  life-cycle of the ConversationMonitor rather than the queue. Add a
  signal for notifying of errors thrown when running operations, and use
  the new operation-independent support for determining if duplicates
  should be queued.

* src/engine/app/conversation-monitor/app-fill-window-operation.vala
  (FillWindowOperation): Enforce a maximum window size as well as minimum
  to keep loading large windows semi-responsive. Remove code to handle
  inserts now that they are handled by their own op.

* src/engine/app/conversation-monitor/app-insert-operation.vala
  (InsertOperation): New operation to manage inserts, handle it them by
  simply adding them to the conversation if they are newer than the
  oldest message, rather that relisting all loaded messages.
2018-03-04 23:36:12 +11:00
Claude Paroz
2fde941b94 Update French translation 2018-03-01 22:01:37 +00:00
GNOME Translation Robot
0d501196eb Update Dutch translation 2018-02-26 20:43:57 +00:00
Daniel Mustieles
7ca4b1a05f Updated Spanish translation 2018-02-22 14:02:30 +01:00
Mario Blättermann
2419d89b26 Update German translation 2018-02-18 15:34:09 +00:00
Marek Cernocky
77c419c124 Updated Czech translation 2018-02-10 17:46:40 +01:00
Michael James Gratton
875bf46238 Merge branch 'wip/789924-network-transition-redux'. Bug 789924. 2018-02-08 09:59:52 +11:00
Piotr Drąg
0ea6d212b8 Update Polish translation 2018-02-04 17:05:47 +01:00
Michael James Gratton
1a9377db40 Ensure MinimalFolder's properties are correctly updated by the remote's.
* src/engine/imap-engine/imap-engine-minimal-folder.vala
  (MinimalFolder): Ensure remote properties are added to and removed from
  the folder's aggregate props when the session is opened or
  disconnected, rather when the folder is opened or disconnected. Rather
  than scheduling a call to close_remote_session via the replay queue
  when it is disconnects, do it immediately since it's a race to re-open
  it again, and if the disconnect op loses the race it can't close the
  old disconnected session.

* src/engine/imap-engine/replay-ops/imap-engine-replay-disconnect.vala:
  Removed, since it is no longer used.
2018-02-04 10:52:28 +10:30
Michael James Gratton
ea891a39cd Only create IMAP account and folder sessions when ready, not otherwise.
This commit makes the Imap.Account and Imap.Folder classes work somewhat
more like Imap.ClientSession, in that they have become higher-level
wrappers around ClientSession which come and go as the client session
does (i.e. as the connection to the IMAP server comes and goes). Further,
partly decouple account session lifecycle in ImapEngine.GenericAccount
and the folder session in ImapEngine.MinimalFolder from those objects
being opened/closed, so that sessions are created only when open /and/
the IMAP server is available, and disconnected on close /or/ when the
underlying connection goes away.

As a result, GenericAccount and MinimalFolder no longer claims a client
session on open and try to keep it forever. Instead if needed, they wait
for the server to become contactable.

This makes Geary much more robust in the face of changing network
connections - when working offline, resuming after sleep, and so on.
2018-02-04 10:50:31 +10:30
Anders Jonsson
dbc8982e2d Update Swedish translation 2018-02-01 22:27:09 +00:00
Federico Bruni
5025a7894f Update Italian translation
(cherry picked from commit 13d920dc391171b8f1b11d7eefbd04df2f81b006)
2018-01-28 12:38:46 +00:00
Jiri Grönroos
8a88d17ead Update Finnish translation 2018-01-27 19:15:25 +00:00
Piotr Drąg
9f703466aa Update POTFILES.in 2018-01-26 01:33:58 +01:00
Emin Tufan Çetin
7393d7f2b1 Update Turkish translation 2018-01-20 10:19:00 +00:00
Piotr Drąg
c30b7a0ff9 Update Polish translation 2018-01-14 19:09:19 +01:00