1. 24 Apr, 2019 3 commits
  2. 21 Apr, 2019 1 commit
  3. 20 Apr, 2019 1 commit
  4. 16 Apr, 2019 5 commits
  5. 12 Apr, 2019 1 commit
    • Niels De Graef's avatar
      Make Geary DBus-activatable. Bug 775956. · 9acf5d34
      Niels De Graef authored
      * org.gnome.Geary.service.in: create, and let it be installed by CMake.
      
      * org.gnome.Geary.desktop.in: add `DBusActivatable=true`.
      
      * geary-autostart.desktop.in: use `--gapplication-service` instead of
      hidden.
      
      * Change the way arguments are parsed:
        * Use the _command-line_ and _handle-local-options_ signals instead
          of _local-command-line_.
        * Remove the `--hidden` option (replaced by `--gapplication-service`)
        * Use VariantDict (which is a little cleaner)
        * Don't use global variables in Arg, but set them in
        the config instead.
        * We can no longer set a global summary due to the new option handling
        in GApplication. On IRC, I got the feedback that info like this should
        be going into a manpage.
      
      * Since the QUIT-action can now be called without ever activating the
      app, make the necessary changes to the `GearyController`:
        * `main_window` and `current_conversations` can be null.
        * use `pending_mailtos()` for the compose action as well.
        * Don't update the UNDO action if we're closing down.
      
      * More instance variables prefixed with this (we're changing the lines
      anyway, might as well do it properly).
      
      * `Environment.set_prgname()` is already executed in GApplication.run(),
      so no more need for `GearyApplication.PRGNAME`.
      Signed-off-by: Niels De Graef's avatarNiels De Graef <nielsdegraef@gmail.com>
      9acf5d34
  6. 11 Apr, 2019 1 commit
  7. 09 Apr, 2019 1 commit
  8. 08 Apr, 2019 1 commit
  9. 04 Apr, 2019 1 commit
    • Michael Gratton's avatar
      Fix ConversationMonitor sometimes not loading more from remote · 3a44628d
      Michael Gratton authored
      If a FillWindowOperation didn't load a full amount of messages, it just
      assumed that there were no more to load. This is not true however when
      loading locally, the folder's vector isn't fully expanded, and it gets
      to the end of the vector.
      
      This patch fixes the operation to also queue another fill if the
      monitor's folder message window is smaller than the folder's total
      message count.
      
      Fixes #289
      3a44628d
  10. 02 Apr, 2019 1 commit
  11. 31 Mar, 2019 1 commit
  12. 30 Mar, 2019 2 commits
  13. 23 Mar, 2019 1 commit
    • Michael Gratton's avatar
      Clean up protocol date handling substantially · 9c115bec
      Michael Gratton authored
      In RFC822.Date, don't use duplicate time_t and GLib.DateTime properties
      -- just use the latter, fix formatting of half-hour time zones, fix
      where the that class refers to ISO 8601 instead of RFC822 strings since
      that is just plain wrong, and finally when parsing an RFC 822 string,
      take note of the timezone offset and store that in the DateTime object,
      so it is round-tripped correctly.
      
      Stop passing time_t around everywhere else, just use the UNIX time from
      the DateTimes we store for protocol objects anyway, so the time zone is
      obvious.
      
      Add unit tests.
      9c115bec
  14. 14 Mar, 2019 1 commit
  15. 11 Mar, 2019 1 commit
    • Michael Gratton's avatar
      Fix signature not being updated when composer first opened without one · 12c6bbca
      Michael Gratton authored
      The ComposerPageState JS object assumed that if no signature was present
      when first loaded, that none ever would be. This broke changing the
      signature when the composer was opened for an account without one, and
      the from account was changed to an account with a sig.
      
      Instead of including the signature as part of the loaded body, always
      include just a skeleton signature DIV and ensure the signature is loaded
      dynamically after the body has been loaded. Update code and tests to
      match this assumption, and add a unit test for updating the sig.
      
      Fixes #309
      12c6bbca
  16. 09 Mar, 2019 3 commits
  17. 06 Mar, 2019 1 commit
    • Michael Gratton's avatar
      Remove default instance of ClientWebView's PageState JS object · 9ed81ed7
      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
      9ed81ed7
  18. 02 Mar, 2019 2 commits
  19. 28 Feb, 2019 2 commits
  20. 27 Feb, 2019 1 commit
  21. 24 Feb, 2019 1 commit
  22. 22 Feb, 2019 2 commits
  23. 20 Feb, 2019 2 commits
  24. 19 Feb, 2019 2 commits
  25. 18 Feb, 2019 1 commit
    • Michael Gratton's avatar
      Prevent circular refs using idle and timeout manager when running · f48170ae
      Michael Gratton authored
      If an IdleManager or TimeoutManager had been scheduled, it would not get
      destroyed until it was executed by the main loop, causing criticals
      if the objects enclosed by its callback had been destroyed.
      
      This adds a weak reference to the manager object itself when scheduling
      on the main loop, so it can get safely dropped.
      f48170ae
  26. 16 Feb, 2019 1 commit
    • 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