Commit graph

12 commits

Author SHA1 Message Date
Jim Nelson
d1208e8efe Monitor currently selected folder: #3793
This commit represents the first half of this ticket, as it only monitors additions (new
emails) in the folder.  A second commit will follow for monitoring removals (deleted emails)
in the folder.
2011-07-26 15:29:08 -07:00
Jim Nelson
e812ef6166 Some cleanup dealing with commit for #3851.
The commit for #3851 changed the semantics of how messages are stored in the local cache,
and not all the code was properly updated to recognize that, particularly in EngineFolder.

This patch also introduces EmailIdentifier, which allows for a mail message to be fetched by
a unique identifier rather than its position in the folder list.  This is much more
efficient and less error-prone, and means that Email objects don't have to be updated if
their position changes (although there are still some questions in that area).  For IMAP,
this means being able to use the message's UID.
2011-07-19 15:55:56 -07:00
Jim Nelson
9adabb21ed Assertion failure when reading message: #3858
Caused by a valac bug set off by a generic function designed to convert a Gee List to a Vala
array.  Rather than fight it I've removed the function and added to FetchCommand a
constructor to build the command using a Gee Collection.
2011-07-18 15:57:55 -07:00
Jim Nelson
8b26d6d112 Folder no longer attempts to download existing messages when re-selected: #3851
The SQLite Geary.Folder implementation now uses reference semantics, so when it's reselected
the same Folder object is used and in-memory state is consistent.  Also found an off-by-one
error when first querying an IMAP Folder that caused the most recent new email not to be
downloaded the first time.  Fixed as well in this commit.
2011-07-18 11:48:42 -07:00
Jim Nelson
8e62435dec Fixes off-by-one error and bitfield issue when fetching an email.
In prior revision, the email message that appeared didn't always match the header selected.  This fixes that problem.
2011-07-15 14:29:33 -07:00
Jim Nelson
0533bc9700 Further work on detecting message removal when folder first selected: #3805
Needed to rethink storage strategies as I researched this and realized that a true scarce database -- where the database is sparsely populated both in columns and rows -- is not feasible due to IMAP's UID rules.  The strategy now means that the database rows are contiguous from the highest (newest) message to the oldest *requested by the user*.  This is a better situation than having to download the UID for the entire folder.
2011-07-15 13:39:02 -07:00
Jim Nelson
6b8951bfd8 Implemented IMAP-specific folder and message properties tables: #3805
This commit adds support for IMAP-specific properties, of which UIDValidity is crucial toward completing #3805.  The additional code is to integrate these tables into the SQLite Geary backend and to make sure this information is requested from the IMAP server.

NOTE: This commit changes the database schema.  Old databases will need to be blown away before running.
2011-07-15 12:54:10 -07:00
Jim Nelson
9792780edb Display To:, From:, and Subject: in message viewer: #3812
Fields added.  However, it would be nice to use formatting to separate them from the body of the message.  This is not easy with Gtk.TextView/Gtk.TextBuffer; see https://bugzilla.gnome.org/show_bug.cgi?id=59390.  This may push us to move to Webkit earlier rather than later.
2011-07-14 15:47:01 -07:00
Jim Nelson
4b03ba004e Use GMime to display the text/plain portion of email messages: #3710
This makes available MIME portions of the message, although more work will need to be done to expose all MIME parts.
2011-07-06 15:46:24 -07:00
Jim Nelson
0273b78005 Folder heirarchies: #3788
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.
2011-07-01 15:40:20 -07:00
Jim Nelson
a774034aff More responsive loading of folders: #3702
This commit introduces lazy loading of folder contents, which allows the Engine to report back email in chunks rather than all at once (which might require a round-trip to the server).  This allows for the local database results to be returned to the caller right away while background I/O is occuring.
2011-06-28 16:33:27 -07:00
Jim Nelson
41faa36103 New file naming scheme and organization for the Engine.
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/sqlite/api/Folder.vala (Browse further)