From 5fcf41925becbac39447b315097b062de2bfd0a1 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 2 May 2011 14:21:21 -0400 Subject: EMEventTargetFolder: Add an EAccount member. The mail-notification plugin can use the EAccount member directly instead of searching for it by URI. --- mail/e-mail-backend.c | 7 ++++++- mail/em-event.c | 7 +++++++ mail/em-event.h | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) (limited to 'mail') diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c index dd8f69ac53..7ccfa729dc 100644 --- a/mail/e-mail-backend.c +++ b/mail/e-mail-backend.c @@ -361,6 +361,8 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache, EMEvent *event = em_event_peek (); EMEventTargetFolder *target; EMFolderTreeModel *model; + EAccount *account; + const gchar *uid; gint folder_type; gint flags = 0; @@ -370,8 +372,11 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache, folder_cache, folder, &flags)) g_return_if_reached (); + uid = camel_service_get_uid (CAMEL_SERVICE (store)); + account = e_get_account_by_uid (uid); + target = em_event_target_new_folder ( - event, folder_uri, new_messages, + event, account, folder_uri, new_messages, msg_uid, msg_sender, msg_subject); folder_type = (flags & CAMEL_FOLDER_TYPE_MASK); diff --git a/mail/em-event.c b/mail/em-event.c index 084c857968..a1b0442024 100644 --- a/mail/em-event.c +++ b/mail/em-event.c @@ -42,6 +42,8 @@ eme_target_free (EEvent *ep, EEventTarget *t) switch (t->type) { case EM_EVENT_TARGET_FOLDER: { EMEventTargetFolder *s = (EMEventTargetFolder *)t; + if (s->account != NULL) + g_object_unref (s->account); g_free (s->name); g_free (s->uri); g_free (s->msg_uid); @@ -108,6 +110,7 @@ em_event_peek (void) EMEventTargetFolder * em_event_target_new_folder (EMEvent *eme, + EAccount *account, const gchar *uri, guint new, const gchar *msg_uid, @@ -120,6 +123,10 @@ em_event_target_new_folder (EMEvent *eme, t = e_event_target_new ( &eme->popup, EM_EVENT_TARGET_FOLDER, sizeof (*t)); + if (E_IS_ACCOUNT (account)) + t->account = g_object_ref (account); + else + t->account = NULL; t->uri = g_strdup (uri); t->target.mask = ~flags; t->new = new; diff --git a/mail/em-event.h b/mail/em-event.h index 34441c558f..644ba211ef 100644 --- a/mail/em-event.h +++ b/mail/em-event.h @@ -74,6 +74,7 @@ typedef struct _EMEventTargetFolder EMEventTargetFolder; struct _EMEventTargetFolder { EEventTarget target; + EAccount *account; gchar *uri; guint new; gboolean is_inbox; @@ -136,6 +137,7 @@ GType em_event_get_type (void); EMEvent * em_event_peek (void); EMEventTargetFolder * em_event_target_new_folder (EMEvent *emp, + EAccount *account, const gchar *uri, guint32 count_new_msgs, const gchar *msg_uid, -- cgit v1.2.3