{
ModestDimmingRule *rule = NULL;
gboolean dimmed = FALSE;
- GtkWidget *subject_field, *body_field;
- const gchar *subject = NULL;
+ GtkWidget *body_field;
g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE);
g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (win), TRUE);
rule = MODEST_DIMMING_RULE (user_data);
- body_field = modest_msg_edit_window_get_child_widget (
- MODEST_MSG_EDIT_WINDOW (win),
+ body_field = modest_msg_edit_window_get_child_widget (MODEST_MSG_EDIT_WINDOW (win),
MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_BODY);
- subject_field = modest_msg_edit_window_get_child_widget (
- MODEST_MSG_EDIT_WINDOW (win),
- MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_SUBJECT);
- subject = gtk_entry_get_text (GTK_ENTRY (subject_field));
-
- dimmed = (subject == NULL || subject[0] == '\0');
- if (dimmed)
- modest_dimming_rule_set_notification (rule, _("mcen_ib_subject_not_modified"));
if (!dimmed) {
GtkWidget *to_field, *cc_field, *bcc_field;
GtkTextBuffer * to_buffer, *cc_buffer, *bcc_buffer;
- cc_field = modest_msg_edit_window_get_child_widget (
- MODEST_MSG_EDIT_WINDOW (win),
- MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_CC);
- to_field = modest_msg_edit_window_get_child_widget (
- MODEST_MSG_EDIT_WINDOW (win),
- MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_TO);
- bcc_field = modest_msg_edit_window_get_child_widget (
- MODEST_MSG_EDIT_WINDOW (win),
- MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_BCC);
+ cc_field = modest_msg_edit_window_get_child_widget (MODEST_MSG_EDIT_WINDOW (win),
+ MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_CC);
+ to_field = modest_msg_edit_window_get_child_widget (MODEST_MSG_EDIT_WINDOW (win),
+ MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_TO);
+ bcc_field = modest_msg_edit_window_get_child_widget (MODEST_MSG_EDIT_WINDOW (win),
+ MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_BCC);
to_buffer = modest_recpt_editor_get_buffer (MODEST_RECPT_EDITOR (to_field));
cc_buffer = modest_recpt_editor_get_buffer (MODEST_RECPT_EDITOR (cc_field));
bcc_buffer = modest_recpt_editor_get_buffer (MODEST_RECPT_EDITOR (bcc_field));
gboolean
modest_ui_dimming_rules_on_add_to_contacts (ModestWindow *win, gpointer user_data)
{
- TnyMsg *msg;
- GSList *recipients, *node;
+ GSList *recipients;
gboolean has_recipients_to_add;
g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE);
- g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win), FALSE);
- msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW (win));
+ if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
+ TnyMsg *msg;
- /* Message is loaded asynchronously, so this could happen */
- if (!msg) {
-#ifdef MODEST_TOOLKIT_HILDON2
- TnyHeader *header;
+ msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW (win));
- header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (win));
- if (!header)
- return TRUE;
+ /* Message is loaded asynchronously, so this could happen */
+ if (!msg) {
+ TnyHeader *header;
- recipients = modest_tny_msg_header_get_all_recipients_list (header);
- g_object_unref (header);
-#else
- return TRUE;
-#endif
- } else {
- recipients = modest_tny_msg_get_all_recipients_list (msg);
- g_object_unref (msg);
+ header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (win));
+ if (!header)
+ return TRUE;
+
+ recipients = modest_tny_msg_header_get_all_recipients_list (header);
+ g_object_unref (header);
+ } else {
+ recipients = modest_tny_msg_get_all_recipients_list (msg);
+ g_object_unref (msg);
+ }
+ } else if (MODEST_IS_MSG_EDIT_WINDOW (win)) {
+ /* Get recipients */
+ gchar *joined, *after_remove;
+ MsgData *data = modest_msg_edit_window_get_msg_data ((ModestMsgEditWindow *) win);
+
+ /* We don't check the from */
+ joined = modest_text_utils_join_addresses (NULL, data->to, data->cc, data->bcc);
+ after_remove = modest_text_utils_remove_duplicate_addresses (joined);
+ g_free (joined);
+
+ recipients = modest_text_utils_split_addresses_list (after_remove);
+ g_free (after_remove);
+
+ modest_msg_edit_window_free_msg_data ((ModestMsgEditWindow *) win, data);
}
has_recipients_to_add = FALSE;
- for (node = recipients; node != NULL; node = g_slist_next (node)) {
- if (!modest_address_book_has_address ((const gchar *) node->data)) {
- has_recipients_to_add = TRUE;
- break;
+
+ if (recipients) {
+ GSList *node;
+ for (node = recipients; node != NULL; node = g_slist_next (node)) {
+ const gchar *recipient = (const gchar *) node->data;
+ if (modest_text_utils_validate_recipient (recipient, NULL)) {
+ if (!modest_address_book_has_address (recipient)) {
+ has_recipients_to_add = TRUE;
+ break;
+ }
+ }
}
+ g_slist_foreach (recipients, (GFunc) g_free, NULL);
+ g_slist_free (recipients);
}
- g_slist_foreach (recipients, (GFunc) g_free, NULL);
- g_slist_free (recipients);
-
return !has_recipients_to_add;
}
#else