1. 14 Mar, 2019 1 commit
  2. 07 Mar, 2019 1 commit
    • Michael Gratton's avatar
      Remove default instance of ClientWebView's PageState JS object · ec9d27ca
      Michael Gratton authored
      This default instance was causing double the number of preferred height
      events, which was likely creating a race for ConversationWebView. This
      might (should?) fix plain text email with quotes sometimes showing up
      with a vastly incorrect height.
      
      To ensure that a PageState is constructed properly, make ClientWebView
      abstract and use replace the one direct use of the class in the accounts
      editor for the signature with a new subclass.
      
      See #283
      ec9d27ca
  3. 02 Mar, 2019 1 commit
  4. 24 Feb, 2019 1 commit
  5. 22 Feb, 2019 1 commit
  6. 20 Feb, 2019 1 commit
  7. 19 Feb, 2019 3 commits
  8. 16 Feb, 2019 2 commits
    • Michael Gratton's avatar
      Ensure conversations that have no email in the base folder are dropped · 9619d18e
      Michael Gratton authored
      If a least one email in a conversation that is in the base folder but
      also in another is removed from the base folder, the conversation may
      not be removed from the monitor despite possibly not having any email
      in the base folder, since the email may not have been completely removed
      from the conversation.
      
      This was particulary being seen with GMail accounts where even single
      message conversations were not disappering when trashed because the
      converation's email was still in All Mail.
      
      This fix does a few things: Avoids hitting the database when checking
      a conversation still has email in the base folder, when it does check
      only ensures that email are in the base folder, not *any* folder, and
      updates ConversationSet::remove_all_emails_by_identifier to do this
      check iternally, clean up its API and implementation and avoids having
      to use out args calling it.
      9619d18e
    • Michael Gratton's avatar
      Add base_folder property back to ConversationSet · 67bf1183
      Michael Gratton authored
      Athough it was removed a while back, add it back since it is not only
      needed when adding conversations, but also when removing email from
      conversations to be able to detect when a conversation should be
      dropped.
      67bf1183
  9. 15 Feb, 2019 1 commit
    • Michael Gratton's avatar
      Don't update a folder's unread email count during normalisation · 744cde0c
      Michael Gratton authored
      Updating the unread count after opening a folder and finding email that
      has an unexpected unread status messes up the count obtained from the
      server, which has already taken these messages into account.
      
      Here, both the main normalisation process and the email flag updater are
      prevented from adjusting the unread count for a folder when they
      encounter email that are new and unread, or have an unread status
      different from what was last seen by the engine.
      
      See #213
      744cde0c
  10. 13 Feb, 2019 1 commit
  11. 08 Feb, 2019 1 commit
  12. 02 Feb, 2019 2 commits
    • Michael Gratton's avatar
      Fix select-quoting not preserving newlines in some cases · 0f554d23
      Michael Gratton authored
      If the common ancestor of the quoted text is the plain-text-message DIV
      itself, the isDescendant test fails and the style to preserve new lines
      is not maintained. This adds a non-strict check to isDescendant and
      enables that when checking the common ancestor node and a test case for
      it.
      0f554d23
    • Michael Gratton's avatar
      Minor tweaks for ConversationPageState.isDescendantOf · c83f07a9
      Michael Gratton authored
      Use uppercase since that is what the DOM for HTML defaults to, use
      nodeName rather than tagName for cases when there the check is false and
      ancestor is the document element, add unit tests.
      c83f07a9
  13. 21 Jan, 2019 3 commits
  14. 17 Jan, 2019 1 commit
  15. 15 Jan, 2019 1 commit
  16. 14 Jan, 2019 5 commits
  17. 09 Jan, 2019 1 commit
  18. 02 Jan, 2019 1 commit
  19. 01 Jan, 2019 2 commits
    • Michael Gratton's avatar
      Provide common account and service status tracking via Account · 20447c81
      Michael Gratton authored
      Similarly to ClientService, add a `current_status` property that denotes
      the account's operational state, so that clients can just set a notify
      on that to be informed of all account status changes. Keep the property
      updated by watching for changes to the client service's status property.
      20447c81
    • Michael Gratton's avatar
      Provide common service status tracking via ClientService · 827db39f
      Michael Gratton authored
      This adds a `current_status` property to ClientService to track the
      service's operational state, wich can be monitored by both the engine
      and clients for changes. Hook up subclasses to keep that update, and
      move connectivity management in to ClientService to provide a common
      implementation.
      827db39f
  20. 31 Dec, 2018 1 commit
  21. 27 Dec, 2018 1 commit
  22. 26 Dec, 2018 3 commits
  23. 09 Dec, 2018 1 commit
    • Michael Gratton's avatar
      Clean up AccountInformation and ServiceInformation APIs · 1bccd51a
      Michael Gratton authored
      Remove remaining crufty properties left over from pulling accounts out
      of the engine, rename imap/smtp to incoming/outgoing since maybe one
      day other protocols or implementations will be supported. Remove the
      old pairs of properties for TLS and SMTP auth, replace the
      SmtpCredentials enum with something that is also independent of
      protocol.
      1bccd51a
  24. 08 Dec, 2018 2 commits
    • Michael Gratton's avatar
      Move CredentialsMediator back to AccountInformation · 8fe6d4f8
      Michael Gratton authored
      In practice, the same mediator is always being used for both services,
      and by removing it from ServiceInformation we can provide default
      instances for both IMAP and SMTP, meaning we can load account config
      before service config, making handling loading for both much tidier.
      8fe6d4f8
    • Michael Gratton's avatar
      Enable config file versioning · 123f51db
      Michael Gratton authored
      This (way too large patch) enables versioning in config files, and
      provides a mechanism by which to load older versions from a newer
      version of Geary. It also properly introduces a new v1 config format
      that adds several groups to geary.ini to make it easier to read and to
      distinguish between incoming/outgoig services rather than IMAP/SMTP.
      
      To do this, a few things that should have happened in seperate patches
      were also done:
      
       * Make AccountInformation's imap and smtp properties mutable (they
       aren't stateful any more anyway), make ServiceInformation non-abstract
       again and remove the subclasses (to get config versioning happening
       without an explosion of a classes, it all has to be handled from the
       AccountManager anyway), and some other misc things.
      123f51db
  25. 02 Dec, 2018 1 commit
  26. 30 Nov, 2018 1 commit