* Fixes NB#64997, Modest is now able to send an email after removing the trailing...
[modest] / src / maemo / modest-msg-edit-window.c
index c9cee33..5ba8351 100644 (file)
@@ -75,6 +75,7 @@
 #else
 #include <libgnomevfs/gnome-vfs-mime.h>
 #endif
+#include <modest-utils.h>
 #include "modest-maemo-utils.h"
 
 
@@ -157,14 +158,18 @@ static void on_account_removed (TnyAccountStore *account_store,
 
 static gboolean on_zoom_minus_plus_not_implemented (ModestWindow *window);
 
+static void set_zoom_do_nothing (ModestWindow *window, gdouble zoom);
+
+static gdouble get_zoom_do_nothing (ModestWindow *window);
+
 static void init_window (ModestMsgEditWindow *obj);
 
 static void DEBUG_BUFFER (WPTextBuffer *buffer)
 {
 #ifdef DEBUG
        GtkTextIter iter;
-
        g_message ("BEGIN BUFFER OF SIZE %d", gtk_text_buffer_get_char_count (GTK_TEXT_BUFFER (buffer)));
+
        gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER (buffer), &iter);
        while (!gtk_text_iter_is_end (&iter)) {
                GString *output = g_string_new ("");
@@ -320,19 +325,19 @@ restore_settings (ModestMsgEditWindow *self)
        conf = modest_runtime_get_conf ();
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, 
                                            "/MenuBar/ViewMenu/ShowToolbarMenu/ViewShowToolbarNormalScreenMenu");
-       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
+       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
                                      modest_conf_get_bool (conf, MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR, NULL));
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, 
                                            "/MenuBar/ViewMenu/ShowToolbarMenu/ViewShowToolbarFullScreenMenu");
-       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
+       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
                                      modest_conf_get_bool (conf, MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR_FULLSCREEN, NULL));
 
        /* set initial state of cc and bcc */
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/ViewMenu/ViewCcFieldMenu");
-       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
+       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
                                               modest_conf_get_bool(modest_runtime_get_conf(), MODEST_CONF_SHOW_CC, NULL));
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/ViewMenu/ViewBccFieldMenu");
-       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
+       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
                                               modest_conf_get_bool(modest_runtime_get_conf(), MODEST_CONF_SHOW_BCC, NULL));
 
        /* Dim at start clipboard actions */
@@ -359,6 +364,8 @@ modest_msg_edit_window_class_init (ModestMsgEditWindowClass *klass)
        parent_class            = g_type_class_peek_parent (klass);
        gobject_class->finalize = modest_msg_edit_window_finalize;
 
+       modest_window_class->set_zoom_func = set_zoom_do_nothing;
+       modest_window_class->get_zoom_func = get_zoom_do_nothing;
        modest_window_class->zoom_plus_func = on_zoom_minus_plus_not_implemented;
        modest_window_class->zoom_minus_func = on_zoom_minus_plus_not_implemented;
        modest_window_class->show_toolbar_func = modest_msg_edit_window_show_toolbar;
@@ -416,6 +423,9 @@ modest_msg_edit_window_init (ModestMsgEditWindow *obj)
        }
 
        init_window (obj);
+       
+       hildon_program_add_window (hildon_program_get_instance(),
+                                  HILDON_WINDOW(obj));
 }
 
 
@@ -733,12 +743,11 @@ init_window (ModestMsgEditWindow *obj)
        gtk_container_add (GTK_CONTAINER (frame), priv->scroll_area);
 
        /* Set window icon */
-       window_icon = modest_platform_get_icon (MODEST_APP_MSG_EDIT_ICON);
+       window_icon = modest_platform_get_icon (MODEST_APP_MSG_EDIT_ICON, MODEST_ICON_SIZE_BIG); 
        if (window_icon) {
                gtk_window_set_icon (GTK_WINDOW (obj), window_icon);
                g_object_unref (window_icon);
-       }
-
+       }       
 }
        
 static void
@@ -768,7 +777,7 @@ static void
 modest_msg_edit_window_finalize (GObject *obj)
 {
        ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (obj);
-
+       
        /* Sanity check: shouldn't be needed, the window mgr should
           call this function before */
        modest_msg_edit_window_disconnect_signals (MODEST_WINDOW (obj));
@@ -1685,23 +1694,23 @@ text_buffer_refresh_attributes (WPTextBuffer *buffer, ModestMsgEditWindow *windo
        if (wp_text_buffer_is_rich_text (WP_TEXT_BUFFER (priv->text_buffer))) {
                action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/FileFormatMenu/FileFormatFormattedTextMenu");
                if (!gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
-                       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), TRUE);
+                       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), TRUE);
        } else {
                action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/FileFormatMenu/FileFormatPlainTextMenu");
                if (!gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
-                       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), TRUE);
+                       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), TRUE);
        }
 
        wp_text_buffer_get_attributes (WP_TEXT_BUFFER (priv->text_buffer), buffer_format, FALSE);
 
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ActionsBold");
-       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), buffer_format->bold);
+       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), buffer_format->bold);
 
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ActionsItalics");
-       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), buffer_format->italic);
+       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), buffer_format->italic);
 
 /*     action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/BulletedListMenu"); */
-/*     modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), buffer_format->bullet); */
+/*     modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), buffer_format->bullet); */
 
        g_signal_handlers_block_by_func (G_OBJECT (priv->font_color_button), 
                                         G_CALLBACK (modest_msg_edit_window_color_button_change),
@@ -1718,7 +1727,7 @@ text_buffer_refresh_attributes (WPTextBuffer *buffer, ModestMsgEditWindow *windo
                gchar *markup;
 
                label = gtk_bin_get_child (GTK_BIN (new_size_menuitem));
-               markup = g_strconcat ("<span font_family='Serif'>", gtk_label_get_text (GTK_LABEL (label)), "</span>", NULL);
+               markup = g_strconcat ("<span font_family='Sans'>", gtk_label_get_text (GTK_LABEL (label)), "</span>", NULL);
                gtk_label_set_markup (GTK_LABEL (priv->size_tool_button_label), markup);
                g_free (markup);
                g_signal_handlers_block_by_func (G_OBJECT (new_size_menuitem),
@@ -2032,8 +2041,7 @@ modest_msg_edit_window_attach_file_one (
                
                if (gnome_vfs_get_file_info (uri, 
                                             &info, 
-                                            GNOME_VFS_FILE_INFO_GET_MIME_TYPE |
-                                            GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE)
+                                            GNOME_VFS_FILE_INFO_GET_MIME_TYPE)
                    == GNOME_VFS_OK)
                        mime_type = gnome_vfs_file_info_get_mime_type (&info);
                mime_part = tny_platform_factory_new_mime_part
@@ -2373,7 +2381,7 @@ modest_msg_edit_window_show_toolbar (ModestWindow *self,
                action_name = "/MenuBar/ViewMenu/ShowToolbarMenu/ViewShowToolbarNormalScreenMenu";
        
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, action_name);
-       modest_maemo_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
+       modest_utils_toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action),
                                                            show_toolbar);
 
 }
@@ -2452,7 +2460,7 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window,
                                wp_text_buffer_enable_rich_text (WP_TEXT_BUFFER (priv->text_buffer), FALSE);
                        } else {
                                GtkToggleAction *action = GTK_TOGGLE_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/FileFormatMenu/FileFormatFormattedTextMenu"));
-                               modest_maemo_toggle_action_set_active_block_notify (action, TRUE);
+                               modest_utils_toggle_action_set_active_block_notify (action, TRUE);
                        }
                }
                        break;
@@ -2569,6 +2577,7 @@ modest_msg_edit_window_select_font (ModestMsgEditWindow *window)
                                    ? TEXT_POSITION_SUPERSCRIPT
                                    : TEXT_POSITION_SUBSCRIPT );
                        fmt.cs.text_position = TRUE;
+                       fmt.font_size = oldfmt.font_size;
                }
                if (color_set) {
                        fmt.color = *color;
@@ -2581,9 +2590,8 @@ modest_msg_edit_window_select_font (ModestMsgEditWindow *window)
                }
                g_free(font_name);
                if (font_size_set) {
-                       fmt.font_size = wp_get_font_size_index(
-                               font_size, DEFAULT_FONT_SIZE);
                        fmt.cs.font_size = TRUE;
+                       fmt.font_size = wp_get_font_size_index(font_size, DEFAULT_FONT_SIZE);
                }
                wp_text_buffer_set_format(WP_TEXT_BUFFER(priv->text_buffer), &fmt);
                text_buffer_refresh_attributes (WP_TEXT_BUFFER (priv->text_buffer), window);
@@ -3247,3 +3255,16 @@ on_zoom_minus_plus_not_implemented (ModestWindow *window)
        return FALSE;
 
 }
+
+static void
+set_zoom_do_nothing (ModestWindow *window,
+                                gdouble zoom)
+{
+}
+
+static gdouble
+get_zoom_do_nothing (ModestWindow *window)
+{
+       return 1.0;
+}
+