aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYan Li <yanli@infradead.org>2009-11-05 11:50:34 +0800
committerYan Li <yanli@infradead.org>2009-11-05 11:50:34 +0800
commitdf1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0 (patch)
treee5d12251978944e33a477d8d818c4f7feb96b7e8
parentca509c991bdf8009f1e359d5b283788bb7f94cc5 (diff)
downloadgsoc2013-evolution-df1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0.tar.gz
gsoc2013-evolution-df1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0.tar.zst
gsoc2013-evolution-df1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0.zip
Bug #596027: In Anjal, although invalid mail address warning popup, mail's tab closed automatically
A new field "mail_sent" is added to the Composer to indicate whether the mail is sent successfully or not. This is needed by Anjal to know whether it can destroy the composer or not.
-rw-r--r--composer/e-composer-private.c4
-rw-r--r--composer/e-composer-private.h9
-rw-r--r--composer/e-msg-composer.c14
-rw-r--r--composer/e-msg-composer.h3
-rw-r--r--mail/em-composer-utils.c3
5 files changed, 33 insertions, 0 deletions
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index 88a9454f45..0ec579fa0e 100644
--- a/composer/e-composer-private.c
+++ b/composer/e-composer-private.c
@@ -1,3 +1,5 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -276,6 +278,8 @@ e_composer_private_init (EMsgComposer *composer)
header, "visible",
action, "active");
}
+
+ priv->mail_sent = FALSE;
}
void
diff --git a/composer/e-composer-private.h b/composer/e-composer-private.h
index 3288f0bcca..71ced95df1 100644
--- a/composer/e-composer-private.h
+++ b/composer/e-composer-private.h
@@ -1,3 +1,5 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -114,6 +116,13 @@ struct _EMsgComposerPrivate {
CamelMimeMessage *redirect;
gboolean is_from_message;
+
+ /* The mail composed has been sent. This bit will be set when
+ the mail passed sanity checking and is sent out, which
+ indicates that the composer can be destroyed. This bit can
+ be set/get by using API
+ e_msg_composer_{set,get}_mail_sent(). */
+ gboolean mail_sent;
};
void e_composer_private_init (EMsgComposer *composer);
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 7bf67a4fb8..ffd81a010d 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -4165,3 +4165,17 @@ e_save_spell_languages (GList *spell_languages)
g_error_free (error);
}
}
+
+void e_msg_composer_set_mail_sent (EMsgComposer *composer, gboolean mail_sent)
+{
+ g_return_val_if_fail (composer != NULL, FALSE);
+
+ composer->priv->mail_sent = mail_sent;
+}
+
+gboolean e_msg_composer_get_mail_sent (EMsgComposer *composer)
+{
+ g_return_val_if_fail (composer != NULL, FALSE);
+
+ return composer->priv->mail_sent;
+}
diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h
index ab30093294..e0d118b4f4 100644
--- a/composer/e-msg-composer.h
+++ b/composer/e-msg-composer.h
@@ -151,6 +151,9 @@ GByteArray * e_msg_composer_get_raw_message_text
GList * e_load_spell_languages (void);
void e_save_spell_languages (GList *spell_languages);
+void e_msg_composer_set_mail_sent (EMsgComposer *composer, gboolean mail_sent);
+gboolean e_msg_composer_get_mail_sent (EMsgComposer *composer);
+
G_END_DECLS
#endif /* E_MSG_COMPOSER_H */
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index f03a66d7f5..60b795a2e1 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -1,3 +1,5 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -469,6 +471,7 @@ em_utils_composer_send_cb (EMsgComposer *composer)
camel_object_ref (folder);
/* mail the message */
+ e_msg_composer_set_mail_sent (composer, TRUE);
info = camel_message_info_new (NULL);
camel_message_info_set_flags (info, CAMEL_MESSAGE_SEEN, ~0);