diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-05-03 02:21:21 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2011-05-03 03:12:55 +0800 |
commit | 5fcf41925becbac39447b315097b062de2bfd0a1 (patch) | |
tree | 3ae862b0c279b7e591ba6ff5ae07e865191fe59e /mail | |
parent | ba47251738be2efbe56852e843f9b4c3e4be5b9a (diff) | |
download | gsoc2013-evolution-5fcf41925becbac39447b315097b062de2bfd0a1.tar.gz gsoc2013-evolution-5fcf41925becbac39447b315097b062de2bfd0a1.tar.zst gsoc2013-evolution-5fcf41925becbac39447b315097b062de2bfd0a1.zip |
EMEventTargetFolder: Add an EAccount member.
The mail-notification plugin can use the EAccount member directly
instead of searching for it by URI.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/e-mail-backend.c | 7 | ||||
-rw-r--r-- | mail/em-event.c | 7 | ||||
-rw-r--r-- | mail/em-event.h | 2 |
3 files changed, 15 insertions, 1 deletions
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, |