* src/client/application/geary-controller.vala (GearyController): Replace
use of last_save_directory with new attachments_dir property on the
configuration object.
* src/client/dialogs/attachment-dialog.vala (AttachmentDialog): Replace
current_folder with use of last_save_directory with new attachments_dir
property on the configuration object. Add config object as ctor param
and object field, update call sites.
* src/client/conversation-viewer/conversation-email.vala
(ConversationEmail): Save config object as a class field, use that to
get and set the print directory when printing. Also set the default
print filename based on the email's subject.
* src/client/application/geary-config.vala (Configuration): Remove
spell-check setting, we can just get it from the list of visible
languages instead. Update the schema.
* src/client/components/client-web-view.vala (WebView::init_web_context):
Pass in a config object, use that to init WebKit's spell checking on
the WebContext now that is a global configuration, update it when the
config changes, update call sites.
* src/client/composer/composer-widget.vala (ComposerWidget): Remove
WK1-syle spell checking settings prefs.
* src/client/composer/spell-check-popover.vala (SpellCheckPopover): Pass
a config object in so we don't have to use the global app singleton
instance.
* src/client/dialogs/preferences-dialog.vala (PreferencesDialog):
Modernise by converting into a widget template.
* test/client/components/client-web-view-test-case.vala (TestCase):
Construct a config object as a fixture, use it to init the WebContext
and make it avalaible to subclasses & update subclasses.
* ui/preferences-dialog.ui: Moved from preferences.dialog, remove spell
check preference.
* desktop/CMakeLists.txt: Translate the appdata file rather than just
installing it directly.
* desktop/geary.appdata.xml.in: Rename from 'geary.appdata.xml', make
name, summary and description translatable.
* cmake/FindIntltool.cmake: Add a CMake command for the appdata file.
* po/POTFILES.in: Include geary.appdata.xml.in.
* desktop/CMakeLists.txt: Fix name of Elementary Contractor desktop file
and disable Desktop file validation for it since it doesn't actually
validate.
* cmake/FindDesktopFileValidate.cmake, cmake/FindIntltool.cmake: Don't
assume XDG Desktop files are named ".desktop" - they aren't for
Elementary's Contractor. Require callers to pass the full name in, fix
call sites.
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.
The orientation is set in the preferences dialog. There are new
configuration keys to track the pane positions, and a bit of code that
will set them the first time based on the current settings.
https://bugzilla.gnome.org/show_bug.cgi?id=714793
When the user replies with a quote to a second message, the composer
moves into a paned below the conversation viewer. This makes it easy to
scroll through the conversation and select text for replies.
The Gtk.Paned acutally holds a Box, which in turn can hold many
ComposerBoxes. Only one is shown at a time, but the model used
elsewhere is that each ComposerWidget has a ComposerContainer until it
is destroyed. When a composer is closed, it hides while finishing up
asynchronous work. This allows us to hold hidden paned composers as
they finish up their work.
The logic for focus handling at detachment is moved into the
ComposerWidget from ComposerEmbed, since it may also be detached from
the paned state. ComposerContainers gain a remove_composer() method
that does the container's clean up, as well as returning the focused
widget. The ComposerWindow's remove_composer() method should never be
called.
https://bugzilla.gnome.org/show_bug.cgi?id=738188
This introduces a new full-text search algorithm that attempts to
curb the effects of overstemming in the Porter Snowball stemmer.
The FTS table will be regenerated with this update.
The crux of this new algorithm is a configurable heuristic that
reduces stemmed matching. The configuration is not available via the
UI (I suspect it will only confuse users) but can be changed by power
users via GSettings. More information is available at:
https://wiki.gnome.org/Apps/Geary/FullTextSearchStrategy
The autostart .desktop file shouldn't have a MIME type association,
otherwise it will make Geary appear twice in the drop-down list of
email applications.
Geary can now be configured to notify of new mail at startup. When
the user logs in, Geary will autostart with a hidden window and
notify of new mail as usual. When Geary is formally executed by
the user the Geary window simply appears.
In this mode, if the user closes the window Geary will return to its
hidden state. Quit must be used to close the process.
* "Reply To" now labelled "Reply"
* Toolbar overflow menu labels no longer say "translated"
* .desktop file contains keywords
* For generic servers, "Remember password" now says "Remember passwords"
Since intltool is a collection of programs and not a library, can't
use FindPackage to verify. Instead, if not found, the .desktop file
CMakeLists will spit out an error and exit.
Because Messaging Menu isn't available on Precise, a special
debian/control.quantal file is introduced here. We should move to
using it solely when we phase out Precise support.
Previous commit exposed a bug caused by moving some of the client's
resources in the source tree. Since much of the client's resources
are stored off the source root directory, it doesn't make sense to
special case the .desktop file and the GSettings file and place them
in the client source itself. This moves them out and makes the
appropriate changes in the CMake files and source code.