1. 09 Mar, 2019 1 commit
  2. 28 Feb, 2019 1 commit
    • Kristian Klausen's avatar
      Remove trailing whitespace · 48c93655
      Kristian Klausen authored
      find . -name '*.vala' -type f -exec sed -i 's/ *$//g' {} +
      The following files was ignored:
      test/client/composer/composer-web-view-test.vala
      test/engine/util-html-test.vala
      
      Fix #271
      48c93655
  3. 08 Feb, 2019 2 commits
  4. 02 Feb, 2019 1 commit
  5. 02 Dec, 2018 1 commit
  6. 10 Oct, 2018 2 commits
  7. 04 Mar, 2018 1 commit
    • Michael Gratton's avatar
      Make ConversationMonitor more robust with no/changing connectivity. · cf86d07b
      Michael Gratton authored
      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.
      cf86d07b
  8. 26 Feb, 2018 1 commit
  9. 18 Dec, 2017 1 commit
  10. 04 Mar, 2017 1 commit
  11. 27 Feb, 2017 1 commit
  12. 20 Dec, 2016 1 commit
    • Michael Gratton's avatar
      Use preview synthesis when conversation list is refreshing previews. · c2f0f148
      Michael Gratton authored
      Since currently, PREVIEW has some bad assumptions, we want to avoid using
      it. As a workaround, when listing messages with PREVIEW, include ALL so
      that HEADER and BODY are also retreived and the preview can synthesised,
      also NONE to ensure that after setting ALL, UIDs will be returned in the
      result.
      
      Bug 714317.
      
      * src/client/conversation-list/conversation-list-store.vala
        (ConversationListStore): Include ALL and NONE in WITH_PREVIEW_FIELDS.
      
      * src/client/conversation-viewer/conversation-list-box.vala
        (ConversationListBox): Remove PREVIEW from REQUIRED_FIELDS, it's no
        longer needed.
      c2f0f148
  13. 20 Oct, 2016 2 commits
    • Michael Gratton's avatar
      Replace ConversationListStore's conversation_add signal pair with one. · 1af9c6c7
      Michael Gratton authored
      This makes the added signal work in the same way as the new removed
      signal.
      1af9c6c7
    • Michael Gratton's avatar
      Fix messages being selected after move/etc and autoselect is disabled. · 310daa8a
      Michael Gratton authored
      Bug 773054
      
      * src/client/conversation-list/conversation-list-view.vala: Disable all
        selection when the user is causing the selection will change. This
        prevents the GtkTreeView impl from selecting the next row after rows
        are removed as a result of user action, but not for some other reason,
        i.e. the server removing a message.
      
      * src/client/application/geary-controller.vala: Call new
        ConversationListView::set_changing_selection as needed when moving
        messages.
      
      * src/client/conversation-list/conversation-list-store,
        src/engine/app/app-conversation-monitor.vala: Rename
        conversation_removed signal to conversations_removed and change its
        param to be a collection of conversations, so we can re-enable
        ConversationListView selection only after all conversations have been
        removed. Update call sites.
      310daa8a
  14. 03 Oct, 2016 2 commits
    • Michael Gratton's avatar
      Use a slightly nicer way to ensure ConversationListStore is finalised. · 5c671c29
      Michael Gratton authored
      * src/client/conversation-list/conversation-list-store.vala
        (ConversationListStore): Use a static sort function implementation,
        rather than unsetting the instance method when destroyed.
      5c671c29
    • Michael Gratton's avatar
      Replace the conversation list store's model on folder change. · 16e3bf01
      Michael Gratton authored
      Rather than keeping a single conversation list model instance around -
      attaching and adding conversations then clearing and detaching
      conversation viewers, simply remove the old model instance and add a new
      one.
      
      This also allows the ConversationListStore::is_clearing property to be
      removed, fixing a related critical warning, and simply unhooking the
      selection-changed signal handler instead when changing the model.
      
      * src/client/components/main-window.vala (MainWindow): Remove props that
        are now dynamically managed. When the conversation monitor changes,
        replace the ConversationListView's model, update progress listeners.
      
      * src/client/conversation-list/conversation-list-view.vala
        (ConversationListView): Remove list store property since the parent
        class already maintains it. Override ::get_model() and ::set_model() to
        use ConversationListStore instances, manage signals on model instances
        when they are set/unset.
      
      * src/client/conversation-list/conversation-list-store.vala
        (ConversationListStore): Replae destructor with an explict destroy
        method that ensures the object is cleaned up enough to actualy be
        finalised. Remove use of is_clearing in ::on_selection_changed() to fix
        critical warning.
      16e3bf01
  15. 06 May, 2016 1 commit
  16. 05 Mar, 2015 1 commit
  17. 17 Feb, 2015 1 commit
    • Jim Nelson's avatar
      Crash on exit: Bug #744522 · 37093cca
      Jim Nelson authored
      Assumed that getting a TreeModel iterator would always work isn't true
      at shudown when the model is being depopulated.  This removes
      assertion and only proceeds when valid every time.
      37093cca
  18. 06 Feb, 2015 1 commit
  19. 03 Feb, 2015 1 commit
    • Jim Nelson's avatar
      Improved sorting and Gtk.ListStore manipulations & lookup: Bug #713190 · e5265285
      Jim Nelson authored
      Although this doesn't solve the problems described in the bug, there
      was some perceived improvement in reducing the occurrence.  These
      changes also clean up the code, being verbose about distinguishing
      between sorting by sent date (i.e. the Date: header field) and
      received date (i.e. in EmailProperties, i.e. IMAP's INTERNALDATE).
      There was one comparator that did not have a proper stabilizer; that's
      fixed here as well.
      e5265285
  20. 22 Jan, 2015 1 commit
  21. 06 Mar, 2014 1 commit
    • Charles Lindsay's avatar
      Fix scrolling to the top on new messages · c0a62ef1
      Charles Lindsay authored
      This introduces the possibility of reentrancy, which was guarded against
      before.  It seems harmless, though.  Regardless, we'll keep our eyes
      peeled for any issues related to it.
      
      Closes: bgo #720712
      c0a62ef1
  22. 05 Feb, 2014 1 commit
  23. 21 Dec, 2013 1 commit
    • Jim Nelson's avatar
      Bind to GSettings rather than read/write imperatively · 229f4dc4
      Jim Nelson authored
      This work is the result of the prior commit (updating the Preferences
      box, specifically).  Instead of initialzing Widgets with GSettings
      values and writing values out as Widget state changes, bind GSettings
      values directly to the Widgets.  This logic is also moved out to the
      rest of the application where monitoring changes is necessary.
      
      This has the pleasant side-effect of allowing changes to come in from
      GSettings backends (i.e. dconf) and having them updated in Geary
      automatically.
      229f4dc4
  24. 26 Nov, 2013 1 commit
    • Jim Nelson's avatar
      Reorganize src/client: Closes bug #713873 · a95bc467
      Jim Nelson authored
      This is purely code file deletion and moving with those changes
      reflected in CMakeLists.txt.  The .gitignore change should've
      happened some time back when we removed the DBus server app.
      
      This change is to make the client source code a bit more logical
      and hopefully make it easy for contributors to drill down and find
      the module they want to work on.
      
      In addition, unused client code was deleted.  src/common was intended
      to be code common to the various apps built here, but since that never
      panned out, it was moved into the client base.
      a95bc467
  25. 25 Sep, 2013 1 commit
  26. 05 Sep, 2013 1 commit
    • Charles Lindsay's avatar
      Speed up search, add SearchEmailIds; fix #7372 · 9a137699
      Charles Lindsay authored
      This optimizes the search query itself, and also how we get the results:
      instead of turning around and selecting the full row for each resulting
      id, we simply pull out the id and internal date and that becomes the new
      SearchEmailIdentifier.  This new class also lets us more properly order
      EmailIdentifiers everywhere else.
      9a137699
  27. 20 Aug, 2013 1 commit
  28. 19 Aug, 2013 1 commit
    • Charles Lindsay's avatar
      Allow operations on email in any folder; fix #6496 · 5594abd9
      Charles Lindsay authored
      This is squashed commit (sorry -- we'll get better about maintaining a
      clean history in collaborative branches in the future!) of a massive
      amount of work from Jim and myself.
      
      * EmailIdentifiers for normal (i.e. not outbox, etc.) emails are the
        same regardless of which folder they came from
      * New EmailStore interface to manipulate messages that reside in any
        folder, without having to care what folders are open
      * Relevant places that manipulate emails (e.g. the toolbar) have been
        updated to use the new EmailStore interface
      * Conversation and ImplConversation have been smooshed together
      * Many, many more items and bugfixes related to the above points
      5594abd9
  29. 14 Aug, 2013 2 commits
  30. 23 Jul, 2013 1 commit
  31. 09 Jul, 2013 1 commit
    • Charles Lindsay's avatar
      Add new external email to conversations; fix #6498 · a9fc3adb
      Charles Lindsay authored
      This accomplishes a few things:
      * Adds some signals to the Account that aggregate various Folder
        signals, so anyone can find out when mail has been appended to any
        folder, for example.
      * Refactors the ConversationMonitor further.  The conversation grouping
        logic has been split out into a ConversationSet, and
        ConversationMonitor proper is now just the folder interaction.
      * The new ConversationSet tracks duplicate emails better using
        Message-IDs, so if you get an email in multiple folders we can figure
        out whether we should actually add it as a new email or not.
      * Using all of that, we now kick off a full-conversations update
        whenever new mail comes in on any folder, so your conversations update
        as you're looking at them when Geary sees new mail, regardless of
        folder.
      a9fc3adb
  32. 26 Jun, 2013 1 commit
  33. 12 Jun, 2013 1 commit
  34. 10 Jun, 2013 1 commit
  35. 20 May, 2013 1 commit