[geary/mjog/598-sent-email-sound: 5/6] Plugin.EmailStore: Actually emit the email-sent signal



commit e7c7326a052023415008b2b5c0af97ac3a661fec
Author: Michael Gratton <mike vee net>
Date:   Sat Mar 21 16:59:01 2020 +1100

    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<Geary.App.Conversation>? visible) {
         MonitorInformation? info = this.folder_information.get(location);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]