Commit graph

5574 commits

Author SHA1 Message Date
Michael Gratton
cfa414f08c Util.Avatar::extract_initials_from_name: Don't strip diacritics
Normalise to composed forms rather than decomposed forms, which would
replace diacritics on characters with combining chars, making them
disappear from the generated initials.

Fixes #735
2020-03-17 22:43:50 +11:00
Michael Gratton
3f81b7d507 Merge branch 'mjog/user-plugins' into 'mainline'
Support optional (non-builtin) plugins

See merge request GNOME/geary!441
2020-03-17 08:45:46 +00:00
Michael Gratton
902f161c35 Merge branch 'mjog/remove-markup-from-translatable-strings' into 'mainline'
ConverationViewerMessage: Pull markup out of translatable strs

See merge request GNOME/geary!440
2020-03-17 08:39:04 +00:00
Michael Gratton
4b53370a47 Plugin.NotificationBadge: Update plugin description 2020-03-17 19:23:24 +11:00
Michael Gratton
196343807c Plugin.DesktopNotification: Update notifications
Update notification text since it's cross-account, and hide
notifications on new mail being retired.
2020-03-17 19:23:24 +11:00
Michael Gratton
c72ce8d8da Replace FolderList.Tree mail hooks with plugin
Using a plugin to manage folder new mail highlighting so it works in the
same way as for other notifications.
2020-03-17 19:23:24 +11:00
Michael Gratton
df7889d732 Make plugin activation and deactivation async and throw errors
This makes plugin implementation substatially less verbose.
2020-03-17 19:23:24 +11:00
Michael Gratton
154bb2d2c5 Rework and clean up how plugin extensions work
Since libpeas doesn't allow a single plugin instance to have multiple
extensions, define a single libpeas extension as a base class for all
plugins and define extensions as non-libpeas interfaces shared by a
single plugin. Manage loading/unloading these ourselves.

This also defines a new trusted extension interface for plugins that
need access to Geary's internals, new error domain for plugis, and
made the notification context a plugin interface that is implemented by
the application object.
2020-03-17 19:23:24 +11:00
Michael Gratton
835eb04daa Plugin.MessagingMenu: Remove trusted status
Doesn't need to be trusted since it doesn't access the client API,
and don't load by default since Ubuntu doesn't ship the messaging
menu UI any more after dropping Unity.
2020-03-17 19:23:24 +11:00
Michael Gratton
dbf9b7578e Plugin.MessagingMenu: Rename plugin module name
Make it clear it's a Unity thing.
2020-03-17 19:23:24 +11:00
Michael Gratton
ff7c0f245b Application.Client: fix expected GVariant types for actions 2020-03-17 19:23:24 +11:00
Michael Gratton
ee4bd117ee Convert plugins to use isolated context model
Convert the plugin implementation to use a model where each plugin
has its own context object instances and has limited/no access to the
client's and engine's objects.
2020-03-17 19:23:24 +11:00
Michael Gratton
03331fd231 Application.PluginManager: Add close method
Add close method, call it from the controller when shutting down, so
that plugins are actually deactivated and can release resources.
2020-03-17 19:23:24 +11:00
Michael Gratton
f72b1354f8 Add stable public interfaces for plugins to use
These interfaces provide a stable, public API for plugins that can
provide API stability while the underlying client and engine APIs
change.
2020-03-17 19:23:24 +11:00
Michael Gratton
18df946216 FolderList.Tree: Remove use of a NotificationContext object
Since these are becoming per-plugin only, use folder signals to update
for now.
2020-03-17 19:23:24 +11:00
Michael Gratton
c50ab505e8 Application.ContactStore: Make ::close internal
Prevent non-application-code from attempting to close it.
2020-03-17 19:23:24 +11:00
Michael Gratton
899c1aaa5d Minor translatable string update for consistency 2020-03-17 19:23:24 +11:00
Michael Gratton
45b519e25e Geary.BaseObject: Use GObject ctor for ref'ing instances
This ensures that objects constructed using both both Vala-style and
GObject-style constructors are handled properly.
2020-03-17 19:23:24 +11:00
Michael Gratton
25b527fc2b Application.PluginManager: Add notion of trusted plugins
Keep a list of trusted plugins and load those by default, rather than
trusting the peas built-in flag.
2020-03-17 19:23:24 +11:00
Michael Gratton
7ef62769fe Plugin.Notification: Convert to an interface
This enables a single plugin to implement other extension points.
2020-03-17 19:23:24 +11:00
Michael Gratton
a88a67bd34 Application.NotificationContext: Make API docs more concise 2020-03-17 19:23:24 +11:00
Michael Gratton
46e3ba7396 Update releases notes to mention new plugin UI 2020-03-17 19:23:24 +11:00
Michael Gratton
c290787284 Add UI to preferences window for managing optional plugins 2020-03-17 19:23:24 +11:00
Michael Gratton
0c526f6644 Plugins: Support loading optional plugins
Add optional-plugins GSetting, automatically load any plugins specified
there at startup, and allow getting, loading and unloading optional
plugins via Application.PluginManager.
2020-03-17 19:23:24 +11:00
Michael Gratton
627bfb7c89 Application.PluginManager: Only load builtins if in install dir
Only trust builtin plugins if they have been installed.
2020-03-17 19:23:24 +11:00
Michael Gratton
f567777d46 Plugins: Use module name as plugin names
Drop the library prefix and suffix from plugin module names, use that
instead of the human-readable name in the plugin manager.
2020-03-17 19:23:24 +11:00
Michael Gratton
1143bb03f4 Application.PluginManager: Convert ctor to RAII
Do all loading up front in the manager's constructor so it's ready to
go after being constructed.
2020-03-17 19:23:24 +11:00
Michael Gratton
655f1dcf83 Components.PreferencesWindow: Make application prop nullable
It should be nullable because it can be null, update call sites to
reflect this.
2020-03-17 19:23:24 +11:00
Michael Gratton
c394611037 Application.Controller: Make plugin manager public
Allow other application components to access the plugin manager, rename
property for brevity.
2020-03-17 19:23:24 +11:00
Michael Gratton
f2be8ef527 ConverationViewerMessage: Pull markup out of translatable strs
Per GitLab comment on 58ffad83, this will make translations less error
prone.
2020-03-17 19:16:36 +11:00
Michael Gratton
0e269a353b Merge branch 'fix-725' into 'mainline'
Make g_mime_filter_filter implementations more robust (closes #725)

Closes #725

See merge request GNOME/geary!436
2020-03-17 04:44:26 +00:00
Daniel Kahn Gillmor
dd053ebfbe Make g_mime_filter_filter implementations more robust (closes #725)
By default, vala appears to translate an "out uint8[]" argument's size
as a gint*.  but the g_mime_filter_filter implementation expects a
gsize*.  This Just Works accidentally on most architectures, but fails
on big-endian 64-bit architectures where sizeof(int) == 4, like s390x.

See #725

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2020-03-17 00:09:24 -04:00
Michael Gratton
ac8c176e78 Merge branch 'mjog/lru-cache-intermittent-test-failure' into 'mainline'
Util.Cache.Lru: Fix intermittent unit test failure

Closes #739

See merge request GNOME/geary!435
2020-03-17 04:04:29 +00:00
Michael Gratton
6da19c5ba9 Util.Cache.Lru: Fix intermitted unit test failure
Cache behaviour was undefined if two entries were added in the same
microsecond. This adds a case to the comparison to stablise the sort
order when that occurs.

Fixes #739
2020-03-17 14:47:52 +11:00
Michael Gratton
57a592f874 Merge branch 'fix_INSTALL_typo' into 'mainline'
INSTALL: libgmime3.0-dev is actually libgmime-3.0-dev

See merge request GNOME/geary!432
2020-03-17 01:58:19 +00:00
Anders Jonsson
0ddf290a30 Update Swedish translation 2020-03-16 18:37:39 +00:00
Jordi Mas
3490cbcddc Update Catalan translation 2020-03-16 12:20:28 +01:00
Jonatan Pålsson
7ceedd0a01 INSTALL: libgmime3.0-dev is actually libgmime-3.0-dev
Fix typo (missing dash in package name) introduced in
c6be77ba85

Signed-off-by: Jonatan Pålsson <jonatan.p@gmail.com>
2020-03-15 09:00:20 +01:00
Michael Gratton
e805ac5fc5 Merge branch 'mjog/fix-ppc-test' into 'mainline'
Don't attempt to get the last initial if no other word

See merge request GNOME/geary!431
2020-03-15 00:19:29 +00:00
Michael Gratton
819f13fb3b Don't attempt to get the last initial if no other word
Fixs a test failure s390, powerpc.

See #512, #724
2020-03-15 11:01:04 +11:00
Michael Gratton
bc0c31d962 Merge branch 'fix-395' into 'mainline'
conversation-viewer: Shorten recipients list

Closes #395

See merge request GNOME/geary!422
2020-03-14 23:28:23 +00:00
Jordi Mas
5dca4d03f2 Add Catalan help translation 2020-03-14 21:45:17 +01:00
Michael Gratton
abd6d2c040 Merge branch 'mjog/search-delete-broken' into 'mainline'
Application.Controller: Fix deleting conversations from search

See merge request GNOME/geary!427
2020-03-14 01:20:53 +00:00
Michael Gratton
44edf05211 Merge branch 'mjog/3-36-appinfo-updates' into 'mainline'
desktop/org.gnome.Geary.appdata.xml.in.in: Update for 3.36.0

See merge request GNOME/geary!428
2020-03-14 01:11:22 +00:00
Michael Gratton
b15d83b41f desktop/org.gnome.Geary.appdata.xml.in.in: Update for 3.36.0
Point to new donations page and updated screenshots.
2020-03-14 11:54:05 +11:00
James Westman
58ffad83a4 conversation-viewer: Shorten recipients list
If there are a lot of recipients (more than 12), most of them will be hidden
initially, and a link will appear to show/hide the others.

Currently no preference is given as to which addresses are put in the short
list, although the attached issue contains some ideas.

Fixes #395.
2020-03-13 15:10:40 -05:00
Anders Jonsson
2ba578139e Update Swedish translation 2020-03-13 09:13:37 +00:00
Michael Gratton
46541b963b Merge branch 'mjog/build-updates' into 'mainline'
Build updates

See merge request GNOME/geary!424
2020-03-13 07:32:58 +00:00
Michael Gratton
1ec4f4a29d Merge branch 'fix-674' into 'mainline'
composer: Remove font colors in plaintext mode

Closes #674

See merge request GNOME/geary!421
2020-03-13 07:26:19 +00:00
Michael Gratton
3278d01b71 Remove optional Enchant 1.x optional dependency 2020-03-13 18:07:28 +11:00