This adds a certain set of emails existing conversations, so you can see
your own replies inline, etc. It's not perfect, and has many
limitations, but it's a good first start.
This patch solves the following memory/resource leak problems:
(a) Gee.TreeSet doesn't drop references when destroyed. Fixed by
using a subclass that clears the set when destroyed (exactly same
as patch made to Gee, however that won't be in distribution for
awhile.)
(b) Imap.ClientSession was holding refs to CommandResponses after
they'd been completed. They're now dropped.
(c) Imap.ClientSessionManager now has an open/close_async() (called
by Imap.Account.open/close_async()) that drops all ClientSessions.
(d) All classes in Engine (and some in the client) use Geary.BaseObject,
which uses a static map to track outstanding held references to
it. The table is dumped when Geary exits. Must be enabled with a
./configure flag.
Two outstanding memory leaks persist (one for Imap.ResponseCodes and
another when messages are selected/deselected), so this doesn't close
the ticket, but testing and use has shown these changes to make a huge
improvement on memory usage and reducing crashes.
This introduces a background account synchronizer into Geary that
prefetches email folder-by-folder to a user-configurable epoch. The
current default is 15 days.
Additional work to make this user-visible is coming, in particular with
The primary purpose for this feature is to allow "full" conversations
(#4293), which needs more of the mailbox stored locally to do searching.
Lots has been changed here. See the bug report
<http://redmine.yorba.org/issues/6230> for some of the discussion about
it.
This also fixes#6274. I'll cut the list of revisions off after a
while, because this branch has been outstanding for a couple weeks.
Squashed commit of the following:
commit ae505d89e87e63e0d8949bfd901913706a9d3b73
Merge: 81ef002 e18bef9
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 31 15:16:17 2013 -0800
Merge branch 'master' into multiple-accounts
commit 81ef002f5ff486b9c28f5663a0ba1e7392b8489c
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 31 15:15:51 2013 -0800
Fix final round of code review
commit 6935b1e7892b9b356bf5006b89e0b2a4e6a8ad16
Merge: c9ed434 a9dc52b
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 31 14:45:46 2013 -0800
Merge branch 'master' into multiple-accounts
commit c9ed434fe936e6aed735baef222ae615364c2513
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 31 14:31:02 2013 -0800
Simplify folder comparator
commit 28ac020cfd9135c6eb4ed05574c82b92f99c4a40
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 31 14:06:55 2013 -0800
Bump up declaration to conform to guidelines
commit 0a8167bdaebd5fac1c3ca791de5f2cc233c13cb9
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 31 13:54:03 2013 -0800
Rename back to list_*folders
commit 31457f60298052bdddba8e426db27f93d7c72529
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 31 12:36:15 2013 -0800
Fix spacing, brevity issues
commit ecd30c203d80c21c1ca1234b8911b57efcb68294
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 30 17:56:29 2013 -0800
Fix nits before review
commit 85b51d71e83115991cd9a54d491b4d45b71f2f9b
Merge: b29abce d538bf0
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 30 17:46:19 2013 -0800
Merge branch 'master' into multiple-accounts
commit b29abceeaea84f226ab9bcd22266a511691d8005
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 30 17:22:28 2013 -0800
Fix notifications
commit c26d975fb0859d807ddb7f7c10632605c3b6fb1c
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 30 13:01:03 2013 -0800
Only show current acct. folders in copy/move menus
commit 9a5b57db1229a079f11f518c53f5762a3670b83f
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 30 11:48:05 2013 -0800
Fix issue where wrong mail would show in folders
commit 3b05d18843584c2aff7472708eea30ce24068043
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 30 11:18:38 2013 -0800
Fix ordering of folders in side bar
commit b228967b6a74c16698d593e53e65d66c69ffb974
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 30 11:07:32 2013 -0800
Add icon to accounts in sidebar
commit dd05d2c987a46f0b6699d743c339297e06829e4f
Author: Charles Lindsay <chaz@yorba.org>
Date: Tue Jan 29 19:04:52 2013 -0800
Fix Labels icon
commit b5254fe8f6ef37df48d41167d0f52f3cd88d1966
Author: Charles Lindsay <chaz@yorba.org>
Date: Tue Jan 29 18:43:45 2013 -0800
Initial stab at new FolderList; fix compile errors
commit ff591810ee4312acce208dfa36d993069bc4c7d2
Merge: 2b9dbb9 ff5f9fa
Author: Charles Lindsay <chaz@yorba.org>
Date: Mon Jan 28 17:42:34 2013 -0800
Merge branch 'master' into multiple-accounts
commit 2b9dbb9b6963b1d52b2b90300bcea277b01d2094
Merge: 7583241 fcfb460
Author: Charles Lindsay <chaz@yorba.org>
Date: Mon Jan 28 17:21:49 2013 -0800
Merge branch 'master' into multiple-accounts
Conflicts:
src/client/geary-controller.vala
commit 75832412cc806c956848e32ef20052af36d4f64d
Author: Charles Lindsay <chaz@yorba.org>
Date: Mon Jan 28 16:37:15 2013 -0800
Fix IMAP sess. mgr. to recover from bad passwords
commit 8868b4be5c3f5c97246d35c6170531c6f543abe1
Author: Charles Lindsay <chaz@yorba.org>
Date: Mon Jan 28 12:06:21 2013 -0800
Typo
commit 3f909054502d31ca48e11f7948fd22118afe7514
Author: Charles Lindsay <chaz@yorba.org>
Date: Mon Jan 28 10:54:51 2013 -0800
Clean up interface a little
commit 3bfb526fe8801f8234127944be8594a960ccf7e7
Merge: 5e84e93 e971275
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 16:23:52 2013 -0800
Merge branch 'master' into multiple-accounts
Conflicts:
src/client/geary-application.vala
src/engine/api/geary-engine.vala
commit 5e84e9375a655567a3bc4eb7ebaacab2d218be40
Merge: 35cc46b 9167aeb
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 16:17:00 2013 -0800
Merge branch 'pluggable-auth' into multiple-accounts
Conflicts:
src/engine/api/geary-engine.vala
commit 9167aeb56be6789d49a3e7cdba2a21d2b015e40d
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 16:11:20 2013 -0800
Fix for code guidelines
commit 35cc46bc99f44f1597c609bfeaa72dd503333a17
Merge: 9675f47 7612a7d
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 15:44:18 2013 -0800
Merge branch 'pluggable-auth' into multiple-accounts
Conflicts:
src/client/geary-application.vala
commit 7612a7ddc3df14ef207b9e74ee32fa23710e1ce9
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 15:26:48 2013 -0800
Fix code review issues
commit 46635544c98df7a8b6c76f028715814907274389
Merge: 30b611e 6de36ae
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 12:54:03 2013 -0800
Merge branch 'master' into pluggable-auth
commit 9675f473e77d0d581cf73a33012981e6a4f44943
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 12:53:18 2013 -0800
Try to make Folder know about its Account
commit 5d9af43e53199a616490cf6ff98bd3c613b4e5f2
Merge: 335480e 6de36ae
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 12:12:21 2013 -0800
Merge branch 'master' into multiple-accounts
commit 335480e2dd0261c8fb82f1c6296f5b8c76f3ac02
Author: Charles Lindsay <chaz@yorba.org>
Date: Fri Jan 25 12:11:18 2013 -0800
Work on multiple accounts; fix compilation errors
commit 808e65d55798e3f08b4c70992718cc11befbb45c
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 24 19:28:12 2013 -0800
Fix application logic for multiple accounts
You get the idea.
Squashed commit of the following:
commit 3b133030800699c2106bfb30a104cd58710cf245
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 17 12:06:11 2013 -0800
Clean up state on close; ref #6208
commit a4637a49277740b64ac198fa057eb52556c80efa
Author: Charles Lindsay <chaz@yorba.org>
Date: Thu Jan 17 11:58:22 2013 -0800
Simplify build_folder; ref #6208
commit e9afa248ce525f0496220cfbb0d8529e38cbceae
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 16 18:10:00 2013 -0800
Cleanup; ref #6208
commit 95ee3a2c6fcfd4b9b7e10aae1100fe7a8697c25a
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 16 18:02:02 2013 -0800
Aggregate building folders; ref #6208
commit 28ee5df718e08c0121b26b1934b619a409fb451a
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 16 16:49:17 2013 -0800
Make local-only folders available; ref #6208
This also slightly cleans up the special-casing of local-only folders.
commit 19c48fe657fca989fe0b519d39833dd8e0d95cfe
Author: Charles Lindsay <chaz@yorba.org>
Date: Wed Jan 16 15:44:55 2013 -0800
Use new interface; ref #6208
commit f64f82f9362a0081a3e4f7a21dc401f3d4ca320f
Author: Charles Lindsay <chaz@yorba.org>
Date: Mon Jan 14 17:11:04 2013 -0800
Try new interface in Account; ref #6208
This rather large patch allows separate IMAP and SMTP credentials
and separates the user's credential username from their email
address. Additional work in this patch includes fixing some minor
protocol bugs in the SMTP stack to work with Postfix, refactoring
the Geary.Engine interface to stop issuing plain strings for
account names, and removing the Geary.EngineAccount abstract class
which was growing unnecessary with each passing day.
Adds new mail notification via libnotify for new previously-unseen
messages. Various minor bugs fixed in here as well that were
relevant to this operation (including notifying of locally
appended messages during folder normalization and reusing Folder
objects inside Account).
Squashed commit of many patches that merged Eric's outbox patch
as well as additional changes to upgrade the database rather than
require it be wiped and some refactoring suggested by the Outbox
implementation. Also updated Outbox to be fully atomic via
Transactions.
Problem was that the client fetches folder objects for the special folders (Inbox, Drafts, etc.) prior to fetching the full folder list and the Engine's fetch_folder_async() call wasn't prepared to handle fetches for folders not located in the local database.
Now supporting folder heirarchies. The client will now descend looking for subfolders. This task now opens up multiple outstanding requests to the Engine as well as exercises the database schema.
Closing this ticket opens the door to finishing #3692.
The code base is growing much faster than expected, faster than Shotwell it seems (not necessarily line count, but files and necessary organization of the library vs. Shotwell's initial flat directory). After some thought decided to move to a more standard Vala/GTK naming scheme of all lowercase with dashes for spaces starting with namespace (minus the "geary-", unless the class was in the topmost namespace). Three motivations:
1. Often confusing when working on code to see three "Folder.vala" in the gedit tabs: one IMAP, one SQLite, and one the interface definition.
2. This paves the way for waf integration, as right now we're held up using it because it barfs on projects with two files of the same name in different directories.
3. I find the CamelCase in the file browser becoming hard on the eyes, and this scheme seems a little more browsable.
2011-06-27 11:24:39 -07:00
Renamed from src/engine/api/Account.vala (Browse further)