evolution r37107 - in branches/kill-bonobo: addressbook/gui/component calendar/gui composer mail plugins/external-editor



Author: mbarnes
Date: Tue Jan 20 04:33:23 2009
New Revision: 37107
URL: http://svn.gnome.org/viewvc/evolution?rev=37107&view=rev

Log:
Untangle some circular dependencies with the composer.
Addressbook and calendar no longer depend on the mailer.


Modified:
   branches/kill-bonobo/addressbook/gui/component/Makefile.am
   branches/kill-bonobo/addressbook/gui/component/eab-composer-util.c
   branches/kill-bonobo/calendar/gui/Makefile.am
   branches/kill-bonobo/calendar/gui/itip-utils.c
   branches/kill-bonobo/composer/e-composer-actions.c
   branches/kill-bonobo/composer/e-msg-composer.c
   branches/kill-bonobo/mail/e-mail-shell-module.c
   branches/kill-bonobo/mail/em-composer-utils.c
   branches/kill-bonobo/mail/em-composer-utils.h
   branches/kill-bonobo/plugins/external-editor/external-editor.c

Modified: branches/kill-bonobo/addressbook/gui/component/Makefile.am
==============================================================================
--- branches/kill-bonobo/addressbook/gui/component/Makefile.am	(original)
+++ branches/kill-bonobo/addressbook/gui/component/Makefile.am	Tue Jan 20 04:33:23 2009
@@ -1,7 +1,3 @@
-if OS_WIN32
-WIN32_BOOTSTRAP_LIBS = $(top_builddir)/win32/libevolution-mail.la
-endif
-
 INCLUDES =							\
 	-DG_LOG_DOMAIN=\"evolution-addressbook\"		\
 	-I$(top_srcdir)						\

Modified: branches/kill-bonobo/addressbook/gui/component/eab-composer-util.c
==============================================================================
--- branches/kill-bonobo/addressbook/gui/component/eab-composer-util.c	(original)
+++ branches/kill-bonobo/addressbook/gui/component/eab-composer-util.c	Tue Jan 20 04:33:23 2009
@@ -23,7 +23,6 @@
 #include <libebook/e-contact.h>
 #include <libebook/e-destination.h>
 
-#include "mail/em-composer-utils.h"
 #include "composer/e-msg-composer.h"
 #include "addressbook/util/eab-book-util.h"
 #include "addressbook/gui/widgets/eab-gui-util.h"
@@ -46,7 +45,6 @@
 
 	composer = e_msg_composer_new ();
 	table = e_msg_composer_get_header_table (composer);
-	em_composer_utils_setup_default_callbacks (composer);
 
 	to_array = g_ptr_array_new ();
 	bcc_array = g_ptr_array_new ();
@@ -124,7 +122,6 @@
 
 	composer = e_msg_composer_new ();
 	table = e_msg_composer_get_header_table (composer);
-	em_composer_utils_setup_default_callbacks (composer);
 
 	attachment = camel_mime_part_new ();
 

Modified: branches/kill-bonobo/calendar/gui/Makefile.am
==============================================================================
--- branches/kill-bonobo/calendar/gui/Makefile.am	(original)
+++ branches/kill-bonobo/calendar/gui/Makefile.am	Tue Jan 20 04:33:23 2009
@@ -1,7 +1,3 @@
-if OS_WIN32
-WIN32_BOOTSTRAP_LIBS = $(top_builddir)/win32/libevolution-mail.la
-endif
-
 SUBDIRS = alarm-notify dialogs
 
 ecalendarincludedir = $(privincludedir)/calendar/gui

Modified: branches/kill-bonobo/calendar/gui/itip-utils.c
==============================================================================
--- branches/kill-bonobo/calendar/gui/itip-utils.c	(original)
+++ branches/kill-bonobo/calendar/gui/itip-utils.c	Tue Jan 20 04:33:23 2009
@@ -37,7 +37,6 @@
 #include <time.h>
 
 #include <composer/e-msg-composer.h>
-#include <mail/em-composer-utils.h>
 #include <camel/camel-mime-filter-tohtml.h>
 
 static gchar *itip_methods[] = {
@@ -1221,7 +1220,6 @@
 
 	composer = e_msg_composer_new ();
 	table = e_msg_composer_get_header_table (composer);
-	em_composer_utils_setup_default_callbacks (composer);
 
 	e_composer_header_table_set_subject (table, subject);
 	e_composer_header_table_set_account_name (table, from);
@@ -1329,7 +1327,6 @@
 
 	composer = e_msg_composer_new ();
 	table = e_msg_composer_get_header_table (composer);
-	em_composer_utils_setup_default_callbacks (composer);
 
 	e_composer_header_table_set_subject (table, subject);
 	e_composer_header_table_set_account_name (table, from);

Modified: branches/kill-bonobo/composer/e-composer-actions.c
==============================================================================
--- branches/kill-bonobo/composer/e-composer-actions.c	(original)
+++ branches/kill-bonobo/composer/e-composer-actions.c	Tue Jan 20 04:33:23 2009
@@ -339,7 +339,7 @@
 
 static void
 action_new_message_cb (GtkAction *action,
-                        EMsgComposer *composer)
+                       EMsgComposer *composer)
 {
 	em_utils_compose_new_message (NULL);
 }

Modified: branches/kill-bonobo/composer/e-msg-composer.c
==============================================================================
--- branches/kill-bonobo/composer/e-msg-composer.c	(original)
+++ branches/kill-bonobo/composer/e-msg-composer.c	Tue Jan 20 04:33:23 2009
@@ -83,7 +83,6 @@
 #include <camel/camel-smime-context.h>
 #endif
 
-#include "mail/em-composer-utils.h"
 #include "mail/em-popup.h"
 #include "mail/em-utils.h"
 #include "mail/mail-config.h"
@@ -1436,14 +1435,6 @@
 		if (e_composer_autosave_snapshot (composer))
 			g_unlink (filename);
 
-		g_signal_connect (
-			composer, "send",
-			G_CALLBACK (em_utils_composer_send_cb), NULL);
-
-		g_signal_connect (
-			composer, "save-draft",
-			G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
-
 		gtk_widget_show (GTK_WIDGET (composer));
 	}
 
@@ -2133,6 +2124,8 @@
 		G_OBJECT (shell_settings), "composer-magic-smileys",
 		G_OBJECT (composer), "magic-smileys");
 
+	e_shell_event (shell, "new-editor", object);
+
 	return object;
 }
 
@@ -4671,17 +4664,8 @@
 	camel_object_unref (stream);
 
 	composer = e_msg_composer_new_with_message (msg);
-	if (composer != NULL) {
-		g_signal_connect (
-			composer, "send",
-			G_CALLBACK (em_utils_composer_send_cb), NULL);
-
-		g_signal_connect (
-			composer, "save-draft",
-			G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
-
+	if (composer != NULL)
 		gtk_widget_show (GTK_WIDGET (composer));
-	}
 
 	return composer;
 }

Modified: branches/kill-bonobo/mail/e-mail-shell-module.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-module.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-module.c	Tue Jan 20 04:33:23 2009
@@ -554,6 +554,18 @@
 }
 
 static void
+mail_shell_module_event_new_editor_cb (EShell *shell,
+                                       GtkWindow *editor,
+                                       EShellModule *shell_module)
+{
+	if (!E_IS_MSG_COMPOSER (editor))
+		return;
+
+	/* Integrate the new composer into the mail module. */
+	em_configure_new_composer (E_MSG_COMPOSER (editor));
+}
+
+static void
 mail_shell_module_notify_online_mode_cb (EShell *shell,
                                          GParamSpec *pspec,
                                          EShellModule *shell_module)
@@ -831,6 +843,11 @@
 	folder_tree_model = em_folder_tree_model_new (shell_module);
 
 	g_signal_connect (
+		shell, "event::new-editor",
+		G_CALLBACK (mail_shell_module_event_new_editor_cb),
+		shell_module);
+
+	g_signal_connect (
 		shell, "notify::online-mode",
 		G_CALLBACK (mail_shell_module_notify_online_mode_cb),
 		shell_module);

Modified: branches/kill-bonobo/mail/em-composer-utils.c
==============================================================================
--- branches/kill-bonobo/mail/em-composer-utils.c	(original)
+++ branches/kill-bonobo/mail/em-composer-utils.c	Tue Jan 20 04:33:23 2009
@@ -73,6 +73,9 @@
 
 static EAccount * guess_account (CamelMimeMessage *message, CamelFolder *folder);
 
+static void em_utils_composer_send_cb (EMsgComposer *composer);
+static void em_utils_composer_save_draft_cb (EMsgComposer *composer);
+
 struct emcs_t {
 	unsigned int ref_count;
 
@@ -89,28 +92,67 @@
 {
 	struct emcs_t *emcs;
 
-	emcs = g_new (struct emcs_t, 1);
+	emcs = g_new0 (struct emcs_t, 1);
 	emcs->ref_count = 1;
-	emcs->drafts_folder = NULL;
-	emcs->drafts_uid = NULL;
-	emcs->folder = NULL;
-	emcs->flags = 0;
-	emcs->set = 0;
-	emcs->uid = NULL;
 
 	return emcs;
 }
 
 static void
+emcs_set_drafts_info (struct emcs_t *emcs,
+                      CamelFolder *drafts_folder,
+                      const gchar *drafts_uid)
+{
+	g_return_if_fail (emcs != NULL);
+	g_return_if_fail (drafts_folder != NULL);
+	g_return_if_fail (drafts_uid != NULL);
+
+	if (emcs->drafts_folder != NULL)
+		camel_object_unref (emcs->drafts_folder);
+	g_free (emcs->drafts_uid);
+
+	camel_object_ref (drafts_folder);
+	emcs->drafts_folder = drafts_folder;
+	emcs->drafts_uid = g_strdup (drafts_uid);
+
+	g_debug ("%s", G_STRFUNC);
+}
+
+static void
+emcs_set_folder_info (struct emcs_t *emcs,
+                      CamelFolder *folder,
+                      const gchar *uid,
+                      guint32 flags,
+                      guint32 set)
+{
+	g_return_if_fail (emcs != NULL);
+	g_return_if_fail (folder != NULL);
+	g_return_if_fail (uid != NULL);
+
+	if (emcs->folder != NULL)
+		camel_object_unref (emcs->folder);
+	g_free (emcs->uid);
+
+	camel_object_ref (folder);
+	emcs->folder = folder;
+	emcs->uid = g_strdup (uid);
+	emcs->flags = flags;
+	emcs->set = set;
+
+	g_debug ("%s", G_STRFUNC);
+}
+
+static void
 free_emcs (struct emcs_t *emcs)
 {
-	if (emcs->drafts_folder)
+	if (emcs->drafts_folder != NULL)
 		camel_object_unref (emcs->drafts_folder);
 	g_free (emcs->drafts_uid);
 
-	if (emcs->folder)
+	if (emcs->folder != NULL)
 		camel_object_unref (emcs->folder);
 	g_free (emcs->uid);
+
 	g_free (emcs);
 }
 
@@ -128,12 +170,6 @@
 		free_emcs (emcs);
 }
 
-static void
-composer_destroy_cb (gpointer user_data, GObject *deadbeef)
-{
-	emcs_unref (user_data);
-}
-
 static gboolean
 ask_confirm_for_unwanted_html_mail (EMsgComposer *composer, EDestination **recipients)
 {
@@ -227,17 +263,6 @@
 			mail_send ();
 		}
 	} else {
-		if (!emcs) {
-			/* disconnect the previous signal handlers */
-			g_signal_handlers_disconnect_matched (send->composer, G_SIGNAL_MATCH_FUNC, 0,
-							      0, NULL, em_utils_composer_send_cb, NULL);
-			g_signal_handlers_disconnect_matched (send->composer, G_SIGNAL_MATCH_FUNC, 0,
-							      0, NULL, em_utils_composer_save_draft_cb, NULL);
-
-			/* reconnect to the signals using a non-NULL emcs for the callback data */
-			em_composer_utils_setup_default_callbacks (send->composer);
-		}
-
 		e_msg_composer_set_enable_autosave (send->composer, TRUE);
 		gtk_widget_show (GTK_WIDGET (send->composer));
 	}
@@ -417,8 +442,8 @@
 	return message;
 }
 
-void
-em_utils_composer_send_cb (EMsgComposer *composer, gpointer user_data)
+static void
+em_utils_composer_send_cb (EMsgComposer *composer)
 {
 	EComposerHeaderTable *table;
 	CamelMimeMessage *message;
@@ -430,11 +455,13 @@
 	table = e_msg_composer_get_header_table (composer);
 	account = e_composer_header_table_get_account (table);
 	if (!account || !account->enabled) {
-		e_error_run((GtkWindow *)composer, "mail:send-no-account-enabled", NULL);
+		e_error_run (
+			GTK_WINDOW (composer),
+			"mail:send-no-account-enabled", NULL);
 		return;
 	}
 
-	if (!(message = composer_get_message (composer, FALSE)))
+	if ((message = composer_get_message (composer, FALSE)) == NULL)
 		return;
 
 	mail_folder = e_mail_shell_module_get_folder (
@@ -442,21 +469,22 @@
 	camel_object_ref (mail_folder);
 
 	/* mail the message */
-	info = camel_message_info_new(NULL);
-	camel_message_info_set_flags(info, CAMEL_MESSAGE_SEEN, ~0);
+	info = camel_message_info_new (NULL);
+	camel_message_info_set_flags (info, CAMEL_MESSAGE_SEEN, ~0);
 
 	send = g_malloc (sizeof (*send));
-	send->emcs = user_data;
+	send->emcs = g_object_get_data (G_OBJECT (composer), "emcs");
 	if (send->emcs)
 		emcs_ref (send->emcs);
 	send->send = TRUE;
-	send->composer = composer;
-	g_object_ref (composer);
+	send->composer = g_object_ref (composer);
 	gtk_widget_hide (GTK_WIDGET (composer));
 
 	e_msg_composer_set_enable_autosave (composer, FALSE);
 
-	mail_append_mail (mail_folder, message, info, composer_send_queued_cb, send);
+	mail_append_mail (
+		mail_folder, message, info, composer_send_queued_cb, send);
+
 	camel_object_unref (mail_folder);
 	camel_object_unref (message);
 }
@@ -495,17 +523,9 @@
 
 	composer_set_no_change (sdi->composer, FALSE);
 
-	if ((emcs = sdi->emcs) == NULL) {
+	if ((emcs = sdi->emcs) == NULL)
 		emcs = emcs_new ();
 
-		/* disconnect the previous signal handlers */
-		g_signal_handlers_disconnect_by_func (sdi->composer, G_CALLBACK (em_utils_composer_send_cb), NULL);
-		g_signal_handlers_disconnect_by_func (sdi->composer, G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
-
-		/* reconnect to the signals using a non-NULL emcs for the callback data */
-		em_composer_utils_setup_default_callbacks (sdi->composer);
-	}
-
 	if (emcs->drafts_folder) {
 		/* delete the original draft message */
 		camel_folder_set_message_flags (emcs->drafts_folder, emcs->drafts_uid,
@@ -557,8 +577,8 @@
 	}
 }
 
-void
-em_utils_composer_save_draft_cb (EMsgComposer *composer, gpointer user_data)
+static void
+em_utils_composer_save_draft_cb (EMsgComposer *composer)
 {
 	CamelFolder *local_drafts_folder;
 	EComposerHeaderTable *table;
@@ -579,16 +599,16 @@
 	local_drafts_folder_uri = e_mail_shell_module_get_folder_uri (
 		mail_shell_module, E_MAIL_FOLDER_DRAFTS);
 
-	g_object_ref(composer);
+	g_object_ref (composer);
 	msg = e_msg_composer_get_message_draft (composer);
 	table = e_msg_composer_get_header_table (composer);
 	account = e_composer_header_table_get_account (table);
 
-	sdi = g_malloc(sizeof(struct _save_draft_info));
+	sdi = g_malloc (sizeof(struct _save_draft_info));
 	sdi->composer = composer;
-	sdi->emcs = user_data;
+	sdi->emcs = g_object_get_data (G_OBJECT (composer), "emcs");
 	if (sdi->emcs)
-		emcs_ref(sdi->emcs);
+		emcs_ref (sdi->emcs);
 
 	if (account && account->drafts_folder_uri &&
 	    strcmp (account->drafts_folder_uri, local_drafts_folder_uri) != 0) {
@@ -623,43 +643,10 @@
 	camel_object_unref (msg);
 }
 
-void
-em_composer_utils_setup_callbacks (EMsgComposer *composer,
-                                   CamelFolder *folder,
-                                   const char *uid,
-				   guint32 flags,
-                                   guint32 set,
-                                   CamelFolder *drafts,
-                                   const char *drafts_uid)
-{
-	struct emcs_t *emcs;
-
-	emcs = emcs_new ();
-
-	if (folder && uid) {
-		camel_object_ref (folder);
-		emcs->folder = folder;
-		emcs->uid = g_strdup (uid);
-		emcs->flags = flags;
-		emcs->set = set;
-	}
-
-	if (drafts && drafts_uid) {
-		camel_object_ref (drafts);
-		emcs->drafts_folder = drafts;
-		emcs->drafts_uid = g_strdup (drafts_uid);
-	}
-
-	g_signal_connect (composer, "send", G_CALLBACK (em_utils_composer_send_cb), emcs);
-	g_signal_connect (composer, "save-draft", G_CALLBACK (em_utils_composer_save_draft_cb), emcs);
-
-	g_object_weak_ref ((GObject *) composer, (GWeakNotify) composer_destroy_cb, emcs);
-}
-
 /* Composing messages... */
 
 static EMsgComposer *
-create_new_composer (const char *subject, const char *fromuri, gboolean use_default_callbacks)
+create_new_composer (const char *subject, const char *fromuri)
 {
 	EMsgComposer *composer;
 	EComposerHeaderTable *table;
@@ -670,15 +657,12 @@
 		return NULL;
 
 	if (fromuri)
-		account = mail_config_get_account_by_source_url(fromuri);
+		account = mail_config_get_account_by_source_url (fromuri);
 
 	table = e_msg_composer_get_header_table (composer);
 	e_composer_header_table_set_account (table, account);
 	e_composer_header_table_set_subject (table, subject);
 
-	if (use_default_callbacks)
-		em_composer_utils_setup_default_callbacks (composer);
-
 	return composer;
 }
 
@@ -693,7 +677,7 @@
 {
 	GtkWidget *composer;
 
-	composer = (GtkWidget *) create_new_composer ("", fromuri, TRUE);
+	composer = (GtkWidget *) create_new_composer ("", fromuri);
 	if (composer == NULL)
 		return;
 
@@ -723,7 +707,6 @@
 		composer = e_msg_composer_new ();
 
 	table = e_msg_composer_get_header_table (composer);
-	em_composer_utils_setup_default_callbacks (composer);
 
 	if (fromuri
 	    && (account = mail_config_get_account_by_source_url(fromuri)))
@@ -771,8 +754,6 @@
 				table, account->name);
 	}
 
-	em_composer_utils_setup_default_callbacks (composer);
-
 	composer_set_no_change (composer, TRUE);
 
 	gtk_widget_show ((GtkWidget *) composer);
@@ -804,8 +785,6 @@
 		g_list_free (list);
 	}
 
-	em_composer_utils_setup_default_callbacks (composer);
-
 	composer_set_no_change (composer, TRUE);
 
 	gtk_widget_show ((GtkWidget *) composer);
@@ -953,10 +932,12 @@
 		
 	composer = e_msg_composer_new_with_message (message);
 	
-	if (em_utils_folder_is_templates(drafts, NULL) == TRUE) 
-		em_composer_utils_setup_callbacks (composer, NULL, NULL, 0, 0, NULL, NULL);
-	else
-		em_composer_utils_setup_callbacks (composer, NULL, NULL, 0, 0, drafts, uid);
+	if (em_utils_folder_is_drafts (drafts, NULL)) {
+		struct emcs_t *emcs;
+
+		emcs = g_object_get_data (G_OBJECT (composer), "emcs");
+		emcs_set_drafts_info (emcs, drafts, uid);
+	}
 
 	composer_set_no_change (composer, TRUE);
 
@@ -1079,7 +1060,7 @@
 {
 	EMsgComposer *composer;
 
-	composer = create_new_composer (subject, fromuri, TRUE);
+	composer = create_new_composer (subject, fromuri);
 	if (composer == NULL)
 		return;
 
@@ -1158,7 +1139,7 @@
 		text = em_utils_message_to_html (message, _("-------- Forwarded Message --------"), flags, &len, NULL, NULL);
 
 		if (text) {
-			composer = create_new_composer (subject, fromuri, !uids || !uids->pdata [i]);
+			composer = create_new_composer (subject, fromuri);
 
 			if (composer) {
 				if (CAMEL_IS_MULTIPART(camel_medium_get_content_object((CamelMedium *)message)))
@@ -1166,8 +1147,12 @@
 
 				e_msg_composer_set_body_text (composer, text, len);
 
-				if (uids && uids->pdata[i])
-					em_composer_utils_setup_callbacks (composer, folder, uids->pdata[i], CAMEL_MESSAGE_FORWARDED, CAMEL_MESSAGE_FORWARDED, NULL, NULL);
+				if (uids && uids->pdata[i]) {
+					struct emcs_t *emcs;
+
+					emcs = g_object_get_data (G_OBJECT (composer), "emcs");
+					emcs_set_folder_info (emcs, folder, uids->pdata[i], CAMEL_MESSAGE_FORWARDED, CAMEL_MESSAGE_FORWARDED);
+				}
 
 				composer_set_no_change (composer, TRUE);
 
@@ -1323,8 +1308,6 @@
 
 	composer = e_msg_composer_new_redirect (message, account ? account->name : NULL);
 
-	em_composer_utils_setup_default_callbacks (composer);
-
 	return composer;
 }
 
@@ -2236,6 +2219,7 @@
 	guint32 flags;
 	EMEvent *eme;
 	EMEventTargetMessage *target;
+	struct emcs_t *emcs;
 
 	if (folder && uid && message == NULL) {
 		struct _reply_data *rd = g_malloc0(sizeof(*rd));
@@ -2300,7 +2284,8 @@
 
 	composer_set_body (composer, message, source);
 
-	em_composer_utils_setup_callbacks (composer, folder, uid, flags, flags, NULL, NULL);
+	emcs = g_object_get_data (G_OBJECT (composer), "emcs");
+	emcs_set_folder_info (emcs, folder, uid, flags, flags);
 
 	composer_set_no_change (composer, TRUE);
 
@@ -2324,6 +2309,7 @@
 	char *real_uid;
 	guint32 flags;
 	GList *list = NULL;
+	struct emcs_t *emcs;
 
 	if (message == NULL)
 		return;
@@ -2399,7 +2385,8 @@
 
 	composer_set_body (composer, message, NULL);
 
-	em_composer_utils_setup_callbacks (composer, real_folder, real_uid, flags, flags, NULL, NULL);
+	emcs = g_object_get_data (G_OBJECT (composer), "emcs");
+	emcs_set_folder_info (emcs, real_folder, real_uid, flags, flags);
 
 	composer_set_no_change (composer, TRUE);
 
@@ -2427,3 +2414,36 @@
 
 	mail_get_message (folder, uid, post_reply_to_message, NULL, mail_msg_unordered_push);
 }
+
+/**
+ * em_configure_new_composer:
+ * @composer: a newly created #EMsgComposer
+ *
+ * Integrates a newly created #EMsgComposer into the mail module.  The
+ * composer can't link directly to the mail module without introducing
+ * circular library dependencies, so this function finishes configuring
+ * things the #EMsgComposer instance can't do itself.
+ **/
+void
+em_configure_new_composer (EMsgComposer *composer)
+{
+	struct emcs_t *emcs;
+
+	g_return_if_fail (E_IS_MSG_COMPOSER (composer));
+
+	emcs = emcs_new ();
+
+	g_object_set_data_full (
+		G_OBJECT (composer), "emcs", emcs,
+		(GDestroyNotify) emcs_unref);
+
+	g_signal_connect (
+		composer, "send",
+		G_CALLBACK (em_utils_composer_send_cb), NULL);
+
+	g_signal_connect (
+		composer, "save-draft",
+		G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
+
+	g_debug ("Composer configured.");
+}

Modified: branches/kill-bonobo/mail/em-composer-utils.h
==============================================================================
--- branches/kill-bonobo/mail/em-composer-utils.h	(original)
+++ branches/kill-bonobo/mail/em-composer-utils.h	Tue Jan 20 04:33:23 2009
@@ -37,14 +37,6 @@
 struct _EMFormat;
 struct _EAccount;
 
-void em_composer_utils_setup_callbacks (struct _EMsgComposer *composer, struct _CamelFolder *folder, const char *uid,
-					guint32 flags, guint32 set, struct _CamelFolder *drafts, const char *drafts_uid);
-
-#define em_composer_utils_setup_default_callbacks(composer) em_composer_utils_setup_callbacks (composer, NULL, NULL, 0, 0, NULL, NULL)
-
-void em_utils_composer_send_cb(struct _EMsgComposer *composer, gpointer user_data);
-void em_utils_composer_save_draft_cb(struct _EMsgComposer *composer, gpointer user_data);
-
 void em_utils_compose_new_message (const char *fromuri);
 
 /* FIXME: mailto?  url?  should make up its mind what its called.  imho use 'uri' */
@@ -78,6 +70,8 @@
 
 void em_utils_post_reply_to_message_by_uid (struct _CamelFolder *folder, const char *uid);
 
+void em_configure_new_composer (struct _EMsgComposer *composer);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: branches/kill-bonobo/plugins/external-editor/external-editor.c
==============================================================================
--- branches/kill-bonobo/plugins/external-editor/external-editor.c	(original)
+++ branches/kill-bonobo/plugins/external-editor/external-editor.c	Tue Jan 20 04:33:23 2009
@@ -198,9 +198,7 @@
 			 */
 
 			composer = e_msg_composer_new_with_message (message);
-			g_signal_connect (GTK_OBJECT (composer), "send", G_CALLBACK (em_utils_composer_send_cb), NULL);
-			g_signal_connect (GTK_OBJECT (composer), "save-draft", G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
-			
+
 			/* Composer cannot be shown in any random thread. Should happen in main thread */
 			g_idle_add ((GSourceFunc) show_composer_dialog, composer);
 



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