aboutsummaryrefslogtreecommitdiffstats
path: root/modules/addressbook
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-08-14 08:49:46 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-08-14 08:56:33 +0800
commit6cb0cbd0be5791aa0af1f78ce44c7a6563611d8f (patch)
tree8ac6832a905017845b3095112b83bb14da112617 /modules/addressbook
parentcaed9460b2d518005abe34035d5b414ff07c0212 (diff)
downloadgsoc2013-evolution-6cb0cbd0be5791aa0af1f78ce44c7a6563611d8f.tar.gz
gsoc2013-evolution-6cb0cbd0be5791aa0af1f78ce44c7a6563611d8f.tar.zst
gsoc2013-evolution-6cb0cbd0be5791aa0af1f78ce44c7a6563611d8f.zip
Pass an EShell to EMsgComposer instances.
Reduce the composer's dependency on e_shell_get_default().
Diffstat (limited to 'modules/addressbook')
-rw-r--r--modules/addressbook/e-book-shell-content.c11
-rw-r--r--modules/addressbook/e-book-shell-view-actions.c20
-rw-r--r--modules/addressbook/eab-composer-util.c14
-rw-r--r--modules/addressbook/eab-composer-util.h8
4 files changed, 43 insertions, 10 deletions
diff --git a/modules/addressbook/e-book-shell-content.c b/modules/addressbook/e-book-shell-content.c
index bc374079a3..13b9b4bd49 100644
--- a/modules/addressbook/e-book-shell-content.c
+++ b/modules/addressbook/e-book-shell-content.c
@@ -61,9 +61,18 @@ book_shell_content_send_message_cb (EBookShellContent *book_shell_content,
EDestination *destination,
EABContactDisplay *display)
{
+ EShell *shell;
+ EShellContent *shell_content;
+ EShellWindow *shell_window;
+ EShellView *shell_view;
GList node = { destination, NULL, NULL };
- eab_send_as_to (&node);
+ shell_content = E_SHELL_CONTENT (book_shell_content);
+ shell_view = e_shell_content_get_shell_view (shell_content);
+ shell_window = e_shell_view_get_shell_window (shell_view);
+ shell = e_shell_window_get_shell (shell_window);
+
+ eab_send_as_to (shell, &node);
}
static void
diff --git a/modules/addressbook/e-book-shell-view-actions.c b/modules/addressbook/e-book-shell-view-actions.c
index 6bb9d7036b..9008002c33 100644
--- a/modules/addressbook/e-book-shell-view-actions.c
+++ b/modules/addressbook/e-book-shell-view-actions.c
@@ -358,10 +358,17 @@ static void
action_contact_forward_cb (GtkAction *action,
EBookShellView *book_shell_view)
{
+ EShell *shell;
+ EShellView *shell_view;
+ EShellWindow *shell_window;
EBookShellContent *book_shell_content;
EAddressbookView *view;
GList *list, *iter;
+ shell_view = E_SHELL_VIEW (book_shell_view);
+ shell_window = e_shell_view_get_shell_window (shell_view);
+ shell = e_shell_window_get_shell (shell_window);
+
book_shell_content = book_shell_view->priv->book_shell_content;
view = e_book_shell_content_get_current_view (book_shell_content);
g_return_if_fail (view != NULL);
@@ -381,7 +388,8 @@ action_contact_forward_cb (GtkAction *action,
iter->data = destination;
}
- eab_send_as_attachment (list);
+ eab_send_as_attachment (shell, list);
+
g_list_foreach (list, (GFunc) g_object_unref, NULL);
g_list_free (list);
}
@@ -581,10 +589,17 @@ static void
action_contact_send_message_cb (GtkAction *action,
EBookShellView *book_shell_view)
{
+ EShell *shell;
+ EShellView *shell_view;
+ EShellWindow *shell_window;
EBookShellContent *book_shell_content;
EAddressbookView *view;
GList *list, *iter;
+ shell_view = E_SHELL_VIEW (book_shell_view);
+ shell_window = e_shell_view_get_shell_window (shell_view);
+ shell = e_shell_window_get_shell (shell_window);
+
book_shell_content = book_shell_view->priv->book_shell_content;
view = e_book_shell_content_get_current_view (book_shell_content);
g_return_if_fail (view != NULL);
@@ -604,7 +619,8 @@ action_contact_send_message_cb (GtkAction *action,
iter->data = destination;
}
- eab_send_as_to (list);
+ eab_send_as_to (shell, list);
+
g_list_foreach (list, (GFunc) g_object_unref, NULL);
g_list_free (list);
}
diff --git a/modules/addressbook/eab-composer-util.c b/modules/addressbook/eab-composer-util.c
index 968a6b3c06..542e423d4d 100644
--- a/modules/addressbook/eab-composer-util.c
+++ b/modules/addressbook/eab-composer-util.c
@@ -28,7 +28,8 @@
#include "addressbook/gui/widgets/eab-gui-util.h"
void
-eab_send_as_to (GList *destinations)
+eab_send_as_to (EShell *shell,
+ GList *destinations)
{
EMsgComposer *composer;
EComposerHeaderTable *table;
@@ -40,10 +41,12 @@ eab_send_as_to (GList *destinations)
EDestination **destinations;
} convert;
+ g_return_if_fail (E_IS_SHELL (shell));
+
if (destinations == NULL)
return;
- composer = e_msg_composer_new ();
+ composer = e_msg_composer_new (shell);
table = e_msg_composer_get_header_table (composer);
to_array = g_ptr_array_new ();
@@ -107,7 +110,8 @@ get_email (EContact *contact, EContactField field_id, gchar **to_free)
}
void
-eab_send_as_attachment (GList *destinations)
+eab_send_as_attachment (EShell *shell,
+ GList *destinations)
{
EMsgComposer *composer;
EComposerHeaderTable *table;
@@ -115,10 +119,12 @@ eab_send_as_attachment (GList *destinations)
GList *contacts, *iter;
gchar *data;
+ g_return_if_fail (E_IS_SHELL (shell));
+
if (destinations == NULL)
return;
- composer = e_msg_composer_new ();
+ composer = e_msg_composer_new (shell);
table = e_msg_composer_get_header_table (composer);
attachment = camel_mime_part_new ();
diff --git a/modules/addressbook/eab-composer-util.h b/modules/addressbook/eab-composer-util.h
index 4aec23074d..a2feb2f999 100644
--- a/modules/addressbook/eab-composer-util.h
+++ b/modules/addressbook/eab-composer-util.h
@@ -19,12 +19,14 @@
#ifndef EAB_COMPOSER_UTIL_H
#define EAB_COMPOSER_UTIL_H
-#include <gtk/gtk.h>
+#include <shell/e-shell.h>
G_BEGIN_DECLS
-void eab_send_as_to (GList *destinations);
-void eab_send_as_attachment (GList *destinations);
+void eab_send_as_to (EShell *shell,
+ GList *destinations);
+void eab_send_as_attachment (EShell *shell,
+ GList *destinations);
G_END_DECLS