Unfortunately, the problem is a binding issue that is not easily
worked around. The temporary solution is to include a copy of the
Gdk.Pixbuf VAPI until this bug is closed and a patched VAPI
distributed: https://bugzilla.gnome.org/show_bug.cgi?id=680060
Note that with this commit, Geary now requires Vala 0.17.3 to build.
This is a regression due to the database schema change in the
SQLHeavy removal. Because FLAGS are now stored in MessageTable,
the merge logic needs to expect that case.
Reusing connections is a win with asynchronous transactions. More
fine-tuning in the future of cache pages and such will help improve
Geary's database performance.
Also fixed a naming and namespace problem with Geary.DatabaseError
and a hole where, if a connection could not be opened (for resource
problems, most likely), the asynchronous transaction would never
complete.
Primarily a reorganization of the engine/impl directory, which
was starting to grow unwieldy. The most important code remains in
place, while secondary stuff (abstract classes, service-specific
implementations) are moved into other directories.
Also rename impl to imap-impl to reinforce that it is all
IMAP-specific code.
It is done.
Initial implementation of the new database subsystem
These pieces represent the foundation for ticket #5034
Expanded transactions, added VersionedDatabase
Further expansions of the async code.
Moved async pool logic into Database, where it realistically
belongs.
Further improvements. Introduced geary-db-test.
Added SQL create and update files for Geary.Db
version-001 to version-003 are exact copies of the SQLHeavy scripts
to ensure no slight changes when migrating. version-004 upgrades
the database to remove the ImapFolderPropertiesTable and
ImapMessagePropertiesTable, now that the database code is pure
IMAP.
When we support other messaging systems (such as POP3), those
subsystems will need to code their own database layers OR rely on
the IMAP schema and simply ignore the IMAP-specific fields.
ImapDB.Account fleshed out
ImapDB.Folder is commented out, however. Need to port next.
ImapDB.Folder fleshed out
MessageTable, MessageLocationTable, and AttachementTable are now
handled inside ImapDB.Folder.
chmod -x imap-db-database.vala
OutboxEmailIdentifier/Properties -> SmtpOutboxEmailIdentifier/Properties
Moved SmtpOutboxFolderRoot into its own source file
SmtpOutboxFolder ported to new database code
Move Engine implementations to ImapDB.
Integration and cleanup of new database code with main source
This commit performs the final integration steps to move Geary
completely over to the new database model. This also cleans out
the old SQLHeavy-based code and fixes a handful of small bugs that
were detected during basic test runs.
Moved Outbox to ImapDB
As the Outbox is tied to the database that ImapDB runs, move the
Outbox code into that folder.
Outbox fixes and better parameter checking
Bumped Database thread pool count and made them exclusive
My reasoning is that there may be a need for a lot of threads at
once (when a big batch of commands comes in, especially at
startup). If performance looks ok, we might consider relaxing
this later.
Geary dumped core twice this week, both during or immediately after
the server connection had to be reestablished.
In Imap.ClientConnection, the state machine was IDLING when the
Serializer was closed and discarded. This patch catches that
condition.
In various SendReplayOperations, the operation was not calling
wait_for_remote_open() under the assumption that the API call
that scheduled the ReplayOperation had done so. It's true, but
the call also is used to detect when the remote has closed, which
guards against attempting an operation on the server while closing
the Geary.Folder.
This is to assist in completing ticket #5128, where because this
signal is fired multiple times although no state has changed (due
to Gtk.TreeSelection's "changed" signal wierdness) it's causing
the entire UI to update state unnecessarily.
This ticket may also assist in fixing #5327, but it does not close
that bug.
Now the mouse cursor will be normal when hovering over uncollapsed
email headers (unless it's over an email address, which launches
the composer if clicked).
WebKit supports the following navigation reasons:
LINK_CLICKED
FORM_SUBMITTED
BACK_FORWARD
RELOAD
FORM_RESUBMITTED
OTHER
We only want to open a link in the browser when navigation is requested
for the "LINK_CLICKED" reason. When an iframe is embedded in an email,
it uses the "OTHER" reason.
Last night Geary dumped core at some point. Looking at the stack
trace I could see that it was referencing a null pointer to the
IMAP Folder object from a SendReplayOperation. I believe this
patch corrects the problem by checking for the remote folder's
availability before the operation's internally batch operation
proceeds rather than once before creating all the batch operations.
Use comments beginning with '///' before potentially difficult
translatable strings. The comments are extracted by xgettext when it is
passed the option '--add-coments="/"'.
Rather than detect/guess what features are and are not available
on a folder, Geary.Folder methods have been broken out into
interfaces. Different Folders implement different interfaces
depending on what it may or may not support.
This change is in anticipation of #5354 and #4652.