This is a limited implementation, so please backup your database before
running this search feature branch from now on as we may change things.
It's using a Unicode Snowball stemming tokenizer available from
https://github.com/littlesavage/sqlite3-unicodesn, also handily
available in src/sqlite3-unicodesn in Geary. If you want to look at the
search tables on the command line, cd into the unicodesn source folder,
run make and make install, then load sqlite3 like:
sqlite3 -cmd '.load unicodesn.sqlext' /path/to/geary.db
Conflicts:
src/CMakeLists.txt
src/engine/imap-db/outbox/smtp-outbox-folder.vala
I applied the changes from master in smtp-outbox-folder.vala to
geary-abstract-local-folder.vala in the search branch.
The geary process can start multiple times to send commands via the
command-line to a running application. The addition of the entry
log entry was being printed with each execution, not just for the
running application.
Inserting the git commit number a build time is not included here;
that's going to be more problematic than it sounds, especially if
the number needs to travel along in a tarball or made available
on the bzr repo on Launchpad.
Folders can now be FAST_OPEN'd, which is used by the background
account synchronizer to quickly determine what changes have occurred
to a folder and get it up-to-date. I've used Geary for a few days
with these changes and have seen a dramatic difference in sluggishness.
There are still CPU spikes when background work is detected, but
not like before and not nearly as sustained.
All contacts are now loaded into the ContactStore, leaving it to
the application (i.e. client) to decide what to display and what
not to display. This moves that responsibility into the composer's
autocompletion logic.
This leaves the door open for other contact-related code (i.e.
contact list regardless of their importance.
Problem exists in both libnotify as well as Geary. This patch fixes
it on Geary's end (in notification, summary is required but body is
not) which works around Notify OSD's bug of displaying a single-pixel-high
notification under certain circumstances.
Email from the archive (outside the folder) wasn't being cleared from
a Message-ID-to-Conversation lookup map. This meant that if a conversation
was archived that had previously archived messages in it, the
ConversationMonitor signalled the conversation was removed even though
it kept references to it. If another message arrived for that archived
conversation, ConversationMonitor signalled it had been appended to.
The ConversationListStore in the client dropped the signal because
the conversation looked new to it.
N.B. The actions for the menu need to be set through the UIManager, not
through the ActionGroup. Otherwise you get warnings about
gtk_accel_label_set_accel_closure.
By using GMime's set_best_content_encoding(), Geary will use an
appropriate Content-Transfer-Encoding for the block of data being
transmitted (plain body, HTML body, attachments). Using this also
deals with encoding long line lengths properly.
Note that #6842 is still a problem (properly encoding emails forwarded
as attachments).
"make valadoc" will now produce valadoc/ in the top-level directory.
Still a lot of work to do to clean this up, as some names need to be
fixed for better heirarchy and others should be made private to prevent
leakage. And, of course, more classes, namespaces, and methods need
to be properly documented.
This deals with an edge condition where a trailing space on a flowed
line needs to be deleted, but the space was in the last chunk of
the message the filter saw.