Added the function that quotes emails
[modest] / src / hildon2 / modest-msg-edit-window.c
index fb0b072..d320080 100644 (file)
@@ -718,6 +718,16 @@ attachment_deleted (ModestAttachmentsView *attachments_view,
 }
 
 static void
+body_size_request (GtkWidget *body,
+                  GtkRequisition *req,
+                  gpointer user_data)
+{
+       /* Make sure the body always get at least 70 pixels */
+       if (req->height < 70)
+               req->height = 70;
+}
+
+static void
 connect_signals (ModestMsgEditWindow *obj)
 {
        ModestMsgEditWindowPrivate *priv;
@@ -759,6 +769,8 @@ connect_signals (ModestMsgEditWindow *obj)
                          G_CALLBACK (msg_body_focus), obj);
        g_signal_connect (G_OBJECT (priv->msg_body), "focus-out-event",
                          G_CALLBACK (msg_body_focus), obj);
+       g_signal_connect (G_OBJECT (priv->msg_body), "size-request",
+                         G_CALLBACK (body_size_request), obj);
        g_signal_connect (G_OBJECT (obj), "set-focus", G_CALLBACK (window_focus), obj);
        g_signal_connect (G_OBJECT (modest_recpt_editor_get_buffer (MODEST_RECPT_EDITOR (priv->to_field))),
                          "changed", G_CALLBACK (recpt_field_changed), obj);
@@ -1249,9 +1261,9 @@ get_related_images (ModestMsgEditWindow *self, TnyMsg *msg)
 
        content_type = tny_mime_part_get_content_type (TNY_MIME_PART (msg));
 
-       if (content_type && !g_strcasecmp (content_type, "multipart/related")) {
+       if (content_type && !g_ascii_strcasecmp (content_type, "multipart/related")) {
                parent = g_object_ref (msg);
-       } else if (content_type && !g_strcasecmp (content_type, "multipart/mixed")) {
+       } else if (content_type && !g_ascii_strcasecmp (content_type, "multipart/mixed")) {
                TnyList *parts = TNY_LIST (tny_simple_list_new ());
                TnyIterator *iter;
 
@@ -1261,7 +1273,7 @@ get_related_images (ModestMsgEditWindow *self, TnyMsg *msg)
                        TnyMimePart *part;
                        part = TNY_MIME_PART (tny_iterator_get_current (iter));
                        content_type = tny_mime_part_get_content_type (part);
-                       if (content_type && !g_strcasecmp (content_type, "multipart/related")) {
+                       if (content_type && !g_ascii_strcasecmp (content_type, "multipart/related")) {
                                parent = part;
                                break;
                        } else {
@@ -1347,12 +1359,17 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich)
        modest_tny_msg_get_references (TNY_MSG (msg), NULL, &(priv->references), &(priv->in_reply_to));
        priority_flags = tny_header_get_priority (header);
 
-       if (to)
-               modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->to_field),  to);
+       if (to) {
+               gchar *quoted_names = modest_text_utils_quote_names (to);
+               modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->to_field), quoted_names);
+               g_free (quoted_names);
+       }
 
        field_view_set = TRUE;
        if (cc) {
-               modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->cc_field),  cc);
+               gchar *quoted_names = modest_text_utils_quote_names (cc);
+               modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->cc_field),  quoted_names);
+               g_free (quoted_names);
                gtk_widget_set_no_show_all (priv->cc_caption, FALSE);
                gtk_widget_show (priv->cc_caption);
        } else if (!modest_conf_get_bool (modest_runtime_get_conf (), MODEST_CONF_SHOW_CC, NULL)) {
@@ -1364,7 +1381,9 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich)
 
        field_view_set = TRUE;
        if (bcc) {
-               modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->bcc_field), bcc);
+               gchar *quoted_names = modest_text_utils_quote_names (bcc);
+               modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->bcc_field), quoted_names);
+               g_free (quoted_names);
                gtk_widget_set_no_show_all (priv->bcc_caption, FALSE);
                gtk_widget_show (priv->bcc_caption);
        } else if (!modest_conf_get_bool (modest_runtime_get_conf (), MODEST_CONF_SHOW_BCC, NULL)) {
@@ -2534,14 +2553,19 @@ modest_msg_edit_window_offer_attach_file (ModestMsgEditWindow *window)
        dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window), 
                                                 GTK_FILE_CHOOSER_ACTION_OPEN);
        gtk_window_set_title (GTK_WINDOW (dialog), _("mcen_ti_select_attachment_title"));
-       conf_folder = modest_conf_get_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_ATTACH_FILE_PATH, NULL);
+       conf_folder = modest_conf_get_string (modest_runtime_get_conf (),
+                                             MODEST_CONF_LATEST_ATTACH_FILE_PATH, NULL);
        if (conf_folder && conf_folder[0] != '\0') {
                gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dialog), conf_folder);
        } else {
                gchar *docs_folder;
-               /* Set the default folder to images folder */
-               docs_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV),
-                                               ".documents", NULL);
+               /* Set the default folder to documents folder */
+               docs_folder = (gchar *) g_strdup(g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS));
+               if (!docs_folder) {
+                       /* fallback */
+                       docs_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV),
+                                                       ".documents", NULL);
+               }
                gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), docs_folder);
                g_free (docs_folder);
        }
@@ -3053,19 +3077,13 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window,
 
        gtk_widget_set_no_show_all (GTK_WIDGET (parent_priv->toolbar), TRUE);
 
-       if (parent_priv->toolbar) {
-               if (file_format == MODEST_FILE_FORMAT_PLAIN_TEXT) {
-                       gtk_widget_hide (parent_priv->toolbar);
-               } else {
-                       gtk_widget_show (parent_priv->toolbar);
-               }
-       }
-
        if (current_format != file_format) {
                switch (file_format) {
                case MODEST_FILE_FORMAT_FORMATTED_TEXT:
                        wp_text_buffer_enable_rich_text (WP_TEXT_BUFFER (priv->text_buffer), TRUE);
                        remove_tags (WP_TEXT_BUFFER (priv->text_buffer));
+                       if (parent_priv->toolbar)
+                               gtk_widget_show (parent_priv->toolbar);
                        break;
                case MODEST_FILE_FORMAT_PLAIN_TEXT:
                {
@@ -3076,7 +3094,8 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window,
                        gtk_widget_destroy (dialog);
                        if (response == GTK_RESPONSE_OK) {
                                wp_text_buffer_enable_rich_text (WP_TEXT_BUFFER (priv->text_buffer), FALSE);
-                               if (parent_priv->toolbar) gtk_widget_hide (parent_priv->toolbar);
+                               if (parent_priv->toolbar)
+                                       gtk_widget_hide (parent_priv->toolbar);
                        } else {
                                GtkToggleAction *action = GTK_TOGGLE_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/FileFormatFormattedTextMenu"));
                                modest_utils_toggle_action_set_active_block_notify (action, TRUE);
@@ -3423,7 +3442,8 @@ gboolean
 modest_msg_edit_window_check_names (ModestMsgEditWindow *window, gboolean add_to_addressbook)
 {
        ModestMsgEditWindowPrivate *priv = NULL;
-       
+       GSList *address_list = NULL;
+
        g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window), FALSE);
        priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
 
@@ -3436,23 +3456,28 @@ modest_msg_edit_window_check_names (ModestMsgEditWindow *window, gboolean add_to
                return FALSE;
        }
 
+       /* Check names */
        g_object_ref (window);
-       if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field),  add_to_addressbook)) {
+       if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field),  &address_list)) {
                modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field));
                g_object_unref (window);
                return FALSE;
        }
-       if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field),  add_to_addressbook)) {
+       if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field),  &address_list)) {
                modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->cc_field));
                g_object_unref (window);
                return FALSE;
        }
-       if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), add_to_addressbook)) {
+       if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), &address_list)) {
                modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->bcc_field));
                g_object_unref (window);
                return FALSE;
        }
 
+       /* Add contacts to address book */
+       if (address_list)
+               modest_address_book_add_address_list (address_list);
+
        if (!modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->cc_field)) &&
            !modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->bcc_field)))
                modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field));