X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-msg-edit-window.c;h=3da88fefbd9a72a536e86ebefdb11b6c411645b9;hp=d2180becffd2820c4168e4f086fbebc42d2d090f;hb=f3faf3e04b021831d01436400dd8d93a87fa9cff;hpb=9e56dd5da02d65930f3b1225f9ef71cc27778d20 diff --git a/src/maemo/modest-msg-edit-window.c b/src/maemo/modest-msg-edit-window.c index d2180be..3da88fe 100644 --- a/src/maemo/modest-msg-edit-window.c +++ b/src/maemo/modest-msg-edit-window.c @@ -87,6 +87,8 @@ #define IMAGE_MAX_WIDTH 560 #define DEFAULT_FONT_SCALE 1.5 +static gboolean is_wp_text_buffer_started = FALSE; + static void modest_msg_edit_window_class_init (ModestMsgEditWindowClass *klass); static void modest_msg_edit_window_init (ModestMsgEditWindow *obj); static void modest_msg_edit_window_finalize (GObject *obj); @@ -125,10 +127,6 @@ static void modest_msg_edit_window_add_attachment_clicked (GtkButton *button, /* ModestWindow methods implementation */ static void modest_msg_edit_window_disconnect_signals (ModestWindow *window); -static void modest_msg_edit_window_set_zoom (ModestWindow *window, gdouble zoom); -static gdouble modest_msg_edit_window_get_zoom (ModestWindow *window); -static gboolean modest_msg_edit_window_zoom_minus (ModestWindow *window); -static gboolean modest_msg_edit_window_zoom_plus (ModestWindow *window); static void modest_msg_edit_window_show_toolbar (ModestWindow *window, gboolean show_toolbar); static void modest_msg_edit_window_clipboard_owner_change (GtkClipboard *clipboard, @@ -157,6 +155,8 @@ static void on_account_removed (TnyAccountStore *account_store, TnyAccount *account, gpointer user_data); +static gboolean on_zoom_minus_plus_not_implemented (ModestWindow *window); + static void init_window (ModestMsgEditWindow *obj); static void DEBUG_BUFFER (WPTextBuffer *buffer) @@ -254,8 +254,6 @@ struct _ModestMsgEditWindowPrivate { GList *images; TnyHeaderFlags priority_flags; - - gdouble zoom_level; gboolean can_undo, can_redo; gulong clipboard_change_handler_id; @@ -300,7 +298,6 @@ modest_msg_edit_window_get_type (void) "ModestMsgEditWindow", &my_info, 0); - wp_text_buffer_library_init (); } return my_type; } @@ -362,10 +359,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 = modest_msg_edit_window_set_zoom; - modest_window_class->get_zoom_func = modest_msg_edit_window_get_zoom; - modest_window_class->zoom_plus_func = modest_msg_edit_window_zoom_plus; - modest_window_class->zoom_minus_func = modest_msg_edit_window_zoom_minus; + 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; modest_window_class->save_state_func = save_state; modest_window_class->disconnect_signals_func = modest_msg_edit_window_disconnect_signals; @@ -388,7 +383,6 @@ modest_msg_edit_window_init (ModestMsgEditWindow *obj) priv->attachments = NULL; priv->images = NULL; priv->last_cid = 0; - priv->zoom_level = 1.0; priv->cc_caption = NULL; priv->bcc_caption = NULL; @@ -415,6 +409,12 @@ modest_msg_edit_window_init (ModestMsgEditWindow *obj) modest_window_mgr_register_help_id (modest_runtime_get_window_mgr(), GTK_WINDOW(obj),"applications_email_editor"); + + if (!is_wp_text_buffer_started) { + is_wp_text_buffer_started = TRUE; + wp_text_buffer_library_init (); + } + init_window (obj); } @@ -605,12 +605,6 @@ init_window (ModestMsgEditWindow *obj) G_CALLBACK (modest_ui_actions_on_change_justify), obj); gtk_action_group_add_radio_actions (action_group, - modest_msg_edit_zoom_action_entries, - G_N_ELEMENTS (modest_msg_edit_zoom_action_entries), - 100, - G_CALLBACK (modest_ui_actions_on_change_zoom), - obj); - gtk_action_group_add_radio_actions (action_group, modest_msg_edit_priority_action_entries, G_N_ELEMENTS (modest_msg_edit_priority_action_entries), 0, @@ -637,9 +631,7 @@ init_window (ModestMsgEditWindow *obj) gtk_window_add_accel_group (GTK_WINDOW (obj), gtk_ui_manager_get_accel_group (parent_priv->ui_manager)); - /* Menubar. Update the state of some toggles */ - parent_priv->menubar = menubar_to_menu (parent_priv->ui_manager); - hildon_window_set_menu (HILDON_WINDOW (obj), GTK_MENU (parent_priv->menubar)); + parent_priv->menubar = NULL; size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); @@ -1300,6 +1292,9 @@ modest_msg_edit_window_new (TnyMsg *msg, const gchar *account_name, gboolean pre priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (obj); parent_priv = MODEST_WINDOW_GET_PRIVATE (obj); + /* Menubar. Update the state of some toggles */ + parent_priv->menubar = menubar_to_menu (parent_priv->ui_manager); + hildon_window_set_menu (HILDON_WINDOW (obj), GTK_MENU (parent_priv->menubar)); priv->from_field_protos = get_transports (); modest_combo_box_set_pair_list (MODEST_COMBO_BOX (priv->from_field), priv->from_field_protos); modest_msg_edit_window_setup_toolbar (MODEST_MSG_EDIT_WINDOW (obj)); @@ -2226,117 +2221,6 @@ modest_msg_edit_window_font_change (GtkCheckMenuItem *menu_item, } } -static void -modest_msg_edit_window_set_zoom (ModestWindow *window, - gdouble zoom) -{ - ModestMsgEditWindowPrivate *priv; - ModestWindowPrivate *parent_priv; - GtkRadioAction *zoom_radio_action; - - g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window)); - - priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window); - parent_priv = MODEST_WINDOW_GET_PRIVATE (window); - priv->zoom_level = zoom; - wp_text_buffer_set_font_scaling_factor (WP_TEXT_BUFFER (priv->text_buffer), zoom*DEFAULT_FONT_SCALE); - - /* Zoom level menu options should be updated with the current zoom level */ - parent_priv = MODEST_WINDOW_GET_PRIVATE (window); - zoom_radio_action = GTK_RADIO_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, - "/MenuBar/ViewMenu/ZoomMenu/Zoom50Menu")); -#ifdef MODEST_HAVE_HILDON0_WIDGETS - /* FIXME: Not availible before Gtk 2.10 */ -#else - gtk_radio_action_set_current_value (zoom_radio_action, (gint) (zoom*100.0+0.1)); -#endif -} - -static gdouble -modest_msg_edit_window_get_zoom (ModestWindow *window) -{ - ModestMsgEditWindowPrivate *priv; - - g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window), 1.0); - - priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window); - return priv->zoom_level; -} - -static gboolean -zoom_allowed (ModestMsgEditWindow *window) -{ - GtkWidget *focus; - - focus = gtk_window_get_focus (GTK_WINDOW (window)); - return (focus != NULL && WP_IS_TEXT_VIEW (focus)); -} - -static gboolean -modest_msg_edit_window_zoom_plus (ModestWindow *window) -{ - ModestWindowPrivate *parent_priv; - GtkRadioAction *zoom_radio_action; - GSList *group, *node; - - /* First we check if the text view is focused. If not, zooming is not allowed */ - if (!zoom_allowed (MODEST_MSG_EDIT_WINDOW (window))) { - hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_cannot_zoom_here")); - return FALSE; - } - - parent_priv = MODEST_WINDOW_GET_PRIVATE (window); - zoom_radio_action = GTK_RADIO_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, - "/MenuBar/ViewMenu/ZoomMenu/Zoom50Menu")); - - group = gtk_radio_action_get_group (zoom_radio_action); - - if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (group->data))) { - hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_max_zoom_level_reached")); - return FALSE; - } - - for (node = group; node != NULL; node = g_slist_next (node)) { - if ((node->next != NULL) && gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (node->next->data))) { - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (node->data), TRUE); - return TRUE; - } - } - return FALSE; -} - -static gboolean -modest_msg_edit_window_zoom_minus (ModestWindow *window) -{ - ModestWindowPrivate *parent_priv; - GtkRadioAction *zoom_radio_action; - GSList *group, *node; - - /* First we check if the text view is focused. If not, zooming is not allowed */ - if (!zoom_allowed (MODEST_MSG_EDIT_WINDOW (window))) { - hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_cannot_zoom_here")); - return FALSE; - } - - parent_priv = MODEST_WINDOW_GET_PRIVATE (window); - zoom_radio_action = GTK_RADIO_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, - "/MenuBar/ViewMenu/ZoomMenu/Zoom50Menu")); - - group = gtk_radio_action_get_group (zoom_radio_action); - - for (node = group; node != NULL; node = g_slist_next (node)) { - if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (node->data))) { - if (node->next != NULL) { - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (node->next->data), TRUE); - return TRUE; - } else - hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_min_zoom_level_reached")); - break; - } - } - return FALSE; -} - static gboolean modest_msg_edit_window_window_state_event (GtkWidget *widget, GdkEventWindowState *event, gpointer userdata) { @@ -2593,7 +2477,6 @@ modest_msg_edit_window_select_font (ModestMsgEditWindow *window) /* First we get the currently selected font information */ wp_text_buffer_get_attributes (WP_TEXT_BUFFER (priv->text_buffer), &oldfmt, TRUE); - g_object_set (G_OBJECT (dialog), "font-scaling", priv->zoom_level, NULL); switch (oldfmt.text_position) { case TEXT_POSITION_NORMAL: @@ -3345,3 +3228,13 @@ on_account_removed (TnyAccountStore *account_store, modest_ui_actions_on_close_window (NULL, MODEST_WINDOW (user_data)); } } + +static gboolean +on_zoom_minus_plus_not_implemented (ModestWindow *window) +{ + g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window), FALSE); + + hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_cannot_zoom_here")); + return FALSE; + +}