diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2002-01-30 03:33:08 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2002-01-30 03:33:08 +0800 |
commit | ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9 (patch) | |
tree | 2b4bec4b92c57d56f43416f5dfdadf2ef99e2bdc /composer/e-msg-composer.c | |
parent | be2809c7b806a311dabea1b69e457f978dff6399 (diff) | |
download | gsoc2013-evolution-ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9.tar gsoc2013-evolution-ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9.tar.gz gsoc2013-evolution-ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9.tar.bz2 gsoc2013-evolution-ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9.tar.lz gsoc2013-evolution-ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9.tar.xz gsoc2013-evolution-ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9.tar.zst gsoc2013-evolution-ac9c64ee1a3da02cf815b2f2d1157cbd79d152d9.zip |
If we are in redirect mode, use the original message and set the resent-*
2002-01-29 Jeffrey Stedfast <fejj@ximian.com>
* e-msg-composer.c (build_message): If we are in redirect mode,
use the original message and set the resent-* headers using
e_msg_composer_hdrs_to_redirect() and then return.
(destroy): Unref the redirected message if it exists.
* e-msg-composer-hdrs.c (e_msg_composer_hdrs_to_redirect): New
function for a composer in redirect mode.
svn path=/trunk/; revision=15507
Diffstat (limited to 'composer/e-msg-composer.c')
-rw-r--r-- | composer/e-msg-composer.c | 58 |
1 files changed, 39 insertions, 19 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index e958ab60b2..c7499d9137 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -319,6 +319,13 @@ build_message (EMsgComposer *composer) if (composer->persist_stream_interface == CORBA_OBJECT_NIL) return NULL; + /* evil kludgy hack for Redirect */ + if (composer->redirect) { + e_msg_composer_hdrs_to_redirect (hdrs, composer->redirect); + camel_object_ref (CAMEL_OBJECT (composer->redirect)); + return composer->redirect; + } + new = camel_mime_message_new (); e_msg_composer_hdrs_to_message (hdrs, new); for (i = 0; i < composer->extra_hdr_names->len; i++) { @@ -1953,6 +1960,9 @@ destroy (GtkObject *object) CORBA_exception_free (&ev); + if (composer->redirect) + camel_object_unref (CAMEL_OBJECT (composer->redirect)); + if (composer->editor_listener) bonobo_object_unref (composer->editor_listener); @@ -2163,6 +2173,8 @@ init (EMsgComposer *composer) composer->has_changed = FALSE; + composer->redirect = FALSE; + composer->charset = NULL; composer->enable_autosave = TRUE; @@ -2835,29 +2847,37 @@ e_msg_composer_new_with_message (CamelMimeMessage *message) return new; } -#if 0 -static GList * -add_recipients (GList *list, const char *recips, gboolean decode) + +/** + * e_msg_composer_new_redirect: + * @message: The message to use as the source + * + * Create a new message composer widget. + * + * Return value: A pointer to the newly created widget + **/ +EMsgComposer * +e_msg_composer_new_redirect (CamelMimeMessage *message, const char *resent_from) { - int len; - char *addr; + EMsgComposer *composer; + const char *subject; - while (*recips) { - len = strcspn (recips, ","); - if (len) { - addr = g_strndup (recips, len); - if (decode) - camel_url_decode (addr); - list = g_list_append (list, addr); - } - recips += len; - if (*recips == ',') - recips++; - } + g_return_val_if_fail (message != NULL, NULL); - return list; + composer = e_msg_composer_new_with_message (message); + subject = camel_mime_message_get_subject (message); + + composer->redirect = message; + camel_object_ref (CAMEL_OBJECT (message)); + + e_msg_composer_set_headers (composer, resent_from, NULL, NULL, NULL, subject); + + gtk_widget_set_sensitive (composer->editor, FALSE); + gtk_widget_set_sensitive (composer->attachment_bar, FALSE); + + return composer; } -#endif + static GList * add_recipients (GList *list, const char *recips, gboolean decode) |