We can't just simply run xgettext twice (once as normal, once with just
the contractor file and passing "--desktop" as an arg, since
l10n.gnome.org won't pick up the second pass and the contract will remain
untranslated.
So work around by renaming the contractor file such that it is
recognised, then rename it back to normal when translating it.
* desktop/geary-attach.contract.in: Renamed to
desktop/geary-attach.contract.desktop.in.
* desktop/CMakeLists.txt: Undo the rename when translating.
* po/CMakeLists.txt, po/Makevars: Add a xgettext keyword for the
contractor Description field.
* po/POTFILES.in: Chase the file rename.
- Correct the value of the id
- Reorganise a bit and add some whitespace to make it more readable
- Add help URL, point bugtracker URL to the wiki instead of b.g.o
- Add categories, launchable and provides
* 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.