Check for both lower-case names and Outlook-specific Sent and Deleted
folder names. Don't require translations to also include the English
names in the translated strings.
* src/engine/imap-engine/imap-engine-generic-account.vala (Account):
Compile the special name list only once, in the constructor. Cache the
names in new special_search_names property.
(::compile_special_search_names): Replace the compilation
::get_mailbox_search_names, compile both upper case and lower case
versions of each name. Check for empty names.
(::get_special_search_names): Replace the translation part of
::get_mailbox_search_names. Include both localised and unlocalised
versions of the names so translators don't need to keep the english
versions. Add Outlook names for sent and deleted separately so as to
not break existing translations.
(::ensure_special_folder_async): Use new pre-compiled
special_search_names property to guess names.
This fixes regular crashes from incorrect lengths on i686 arches - see
Vala Bug 767839.
Fixes Geary Bug 758621
* src/engine/imap-engine/imap-engine-minimal-folder.vala: Use "%lld" when
printing int64 values.
* src/client/conversation-viewer/conversation-viewer.vala
(ConversationViewer::highlight_search_terms): Only do the highlight if
the current folder is a search folder and it has a query. Cache the
fetch cancellable so we can avoid setting the highlight on the web view
if cancelled. Import ::add_literal_matches method impl and remove that
method since it only gets used here.
Since the search folder will cause a re-fetch on search when the search
query has changed such that the results have also changed, the fetch will
launch a highlight search and we don't also need to launch it again when
the search terms have changed. This saves potentially a lot of DB query
time.
* src/client/conversation-viewer/conversation-viewer.vala
(ConversationViewer): Remove on_search_text_changed and its callers.
When Geary.RFC822.Message::construct_body_from_mime_parts is looking to
build a message body to display, during the first pass that looks for
HTML content the plain text part is ignored but the inline image gets
converted to a HTML IMG element and returned as the body. This makes it
look like an HTML part was found, and hence the second pass looking for
plain text never takes place.
Fix this by not taking a wild stab at the body type - check to see if it
has HTML parts and if so just het them, if not then get plain text parts.
Bug 767438.
* src/engine/rfc822/rfc822-message.vala (Message): Add ::has_html_body
and ::has_plain_body to allow callers to query available body content
types before attempting to get them. Remove ::get_body since it's
making a policy decision that callers should be making instead, fix
call sites.
* src/engine/util/util-ascii.vala (Geary.Ascii): Remove functions that
are now supported by Vala 0.26, that are simple statements, or are only
used once elsewhere. Update call sites.
* debian/control Add build dependency on libenchant-dev and
runtime dependency on libenchant1c2a, to reflect latest
changes introduced for the spell-checker.
Bug 720335
* src/client/composer/spell-check-popover.vala
Implemented a GtkPopover allowing the user to select a
subset of the currently installed dictionaries for the spell
checking in the composer widget.
* src/client/util/util-international-vala
Added detection of installed dictionaries and proper
translation of the available languages. This requires
Enchant as an additional dependency.
* src/client/application/geary-config.vala
Added keys spell-check-visible-languages and
spell-check-languages in GSettings.
Outlook.com's IMAP servers are buggy and will return a bogus BAD if too
many STATUS commands are sent at once. Limit this to 25 since there is at
least one known case of it falling over when ~50 are sent.
Bug 766552.
* src/engine/api/geary-endpoint.vala (Endpoint): Add
max_pipeline_batch_size property and doc comment.
* src/engine/imap-engine/outlook/imap-engine-outlook-account.vala
(OutlookAccount): Set max_pipeline_batch_size for IMAP connection to 25.
* src/engine/imap/transport/imap-client-session.vala
(ClientSession::send_multiple_commands_async): Check
Endpoint.max_pipeline_batch_size and if non-zero, use multiple batches
and limite them to that value in size.
Fixes Bug 767291
* src/engine/imap-db/imap-db-account.vala (Geary.ImapDB.Account): Handle
translation of "me" differently depending on if it is "to/cc/bcc:me" or
"from:me". Needed for DE at least.
Move Geary.FolderSupport.Archive interface and implementation from
OtherFolder to GenericFolder, so both Y! and Outlook services get archive
support.
* src/client/components/main-toolbar.vala
(MainToolbar::update_trash_button): Renamed from
update_trash_archive_buttons, only bother to update the archive
state. Update call sites.
* src/engine/api/geary-account.vala (Geary.Account): Remove
can_support_archive property and constructor arg, update subclasses to
not pass it through.
* src/engine/imap-engine/imap-engine-generic-folder.vala (GenericFolder):
Extend Geary.FolderSupport.Archive, copy implementation from
OtherFolder.
* src/engine/imap-engine/other/imap-engine-other-folder.vala
(OtherFolder): Remove Geary.FolderSupport.Archive parent class and
implementation.
* src/engine/imap-engine/imap-engine-generic-account.vala
(GenericAccount): Add a protected virtual 'supported_special_folders'
property and use that to determine what special folders should be
created and can be required. Use that in
::get_required_special_folder_async and ::ensure_special_folders_async.
* src/engine/imap-engine/gmail/imap-engine-gmail-account.vala
(GmailAccount): Override supported_special_folders, don't include the
Archive special folder.
Use the HTML dir="auto" algorithm for setting the direction based on the
first strongly LTR or RTL character found in the email.
Proper support should let the user specify the direction, but this is
better for now.
Patch courtesy Oliver <ogtifs@mail.com>
Bug 713607
* src/client/composer/composer-widget.vala (ComposerWidget::HTML_BODY):
Add dir="auto" for the message body.
* src/engine/imap-db/imap-db-account.vala (Geary.ImapDB.Account): Move
search term operator transation to a static initialiser so it isn't
have to be reconstrcuted for every term. Ensure english operator names
and values are also accepted as well as translations so if the User
Guide has not also been translated, the user can still use what the
docs say. Fix some bugs causing to:*, from:* and *:me to stop working.
Further cleanup from Bug 766837.
* src/engine/imap-db/imap-db-account.vala
(Geary.ImapDB.Account::prepare_search_query): Only stem and generate
SQL terms that aren't is:foo operators.
Bug 766837
* src/engine/imap-db/imap-db-account.vala (Geary.ImapDB.Account): Use
constants for internal, i.e. non-translatable, search op names and
values so it's clear what they are.
(::extract_field_from_token): Handle all translation of search op names
and values here up front. Ensure that the value for the "is:" operator
is valid, treat the whole thing like a plain string if not. Add some
translation comments for those values so translators know what's up.
(::get_removal_conditions): Assume that if we have a "is:" field that
the values have already been translated to their internal form.
* src/client/application/geary-controller.vala
(GearyController::create_actions): Remove uneeded calls to
add_accelerator - just remove them for dups ot move them to the action
definition. Ensure they are defined in accelerators.ui so they are
bound to their accelerators regarcdless of having a visible proxy.