From e7c7326a052023415008b2b5c0af97ac3a661fec Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 21 Mar 2020 16:59:01 +1100 Subject: [PATCH] Plugin.EmailStore: Actually emit the email-sent signal Wire up emitting the signal from the controller when it gets notified of an email being sent. --- src/client/application/application-controller.vala | 5 ++++- src/client/application/application-email-store-factory.vala | 5 +++++ src/client/application/application-notification-context.vala | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index fd682c24..b7fb880e 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -1472,7 +1472,10 @@ internal class Application.Controller : Geary.BaseObject { AccountContext? context = this.accounts.get(service.account); if (context != null) { - //this.notifications.email_sent(context.account, sent); + foreach (NotificationContext plugin in + this.plugins.get_notification_contexts()) { + plugin.email_sent(context.account.information, sent); + } } } diff --git a/src/client/application/application-email-store-factory.vala b/src/client/application/application-email-store-factory.vala index 2072fc68..f65a6233 100644 --- a/src/client/application/application-email-store-factory.vala +++ b/src/client/application/application-email-store-factory.vala @@ -207,4 +207,9 @@ internal class Application.EmailStoreFactory : Geary.BaseObject { return plugin_ids; } + public Plugin.Email to_plugin_email(Geary.Email engine, + Geary.AccountInformation account) { + return new EmailImpl(engine, account); + } + } diff --git a/src/client/application/application-notification-context.vala b/src/client/application/application-notification-context.vala index 31b44868..c98bc752 100644 --- a/src/client/application/application-notification-context.vala +++ b/src/client/application/application-notification-context.vala @@ -206,6 +206,11 @@ internal class Application.NotificationContext : this.email_factory.destroy_email_store(this.email); } + internal void email_sent(Geary.AccountInformation account, + Geary.Email email) { + this.email.email_sent(email_factory.to_plugin_email(email, account)); + } + internal void clear_new_messages(Geary.Folder location, Gee.Set? visible) { MonitorInformation? info = this.folder_information.get(location);