From 006c77c50703143ddf6f7d8962e6ac08575ccfe9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Dapena=20Paz?= Date: Fri, 22 Jan 2010 17:55:19 +0100 Subject: [PATCH] New show toolbar button in editor (fixes NB#152559). --- src/hildon2/modest-hildon2-window-mgr.c | 8 +++++- src/modest-ui-dimming-rules.c | 21 ++++++++++++++ src/modest-ui-dimming-rules.h | 1 + src/widgets/modest-msg-edit-window.c | 48 +++++++++++++++++++++++++------ 4 files changed, 69 insertions(+), 9 deletions(-) diff --git a/src/hildon2/modest-hildon2-window-mgr.c b/src/hildon2/modest-hildon2-window-mgr.c index 29c687c..d6ef4f5 100644 --- a/src/hildon2/modest-hildon2-window-mgr.c +++ b/src/hildon2/modest-hildon2-window-mgr.c @@ -588,7 +588,13 @@ modest_hildon2_window_mgr_register_window (ModestWindowMgr *self, } /* Show toolbar always */ - modest_window_show_toolbar (window, TRUE); + if (MODEST_MSG_EDIT_WINDOW (window)) { + gboolean show_toolbar; + show_toolbar = modest_conf_get_bool (modest_runtime_get_conf (), MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR, NULL); + modest_window_show_toolbar (window, show_toolbar); + } else { + modest_window_show_toolbar (window, TRUE); + } return TRUE; fail: diff --git a/src/modest-ui-dimming-rules.c b/src/modest-ui-dimming-rules.c index 6812635..8a84e85 100644 --- a/src/modest-ui-dimming-rules.c +++ b/src/modest-ui-dimming-rules.c @@ -983,6 +983,27 @@ modest_ui_dimming_rules_on_set_style (ModestWindow *win, gpointer user_data) } gboolean +modest_ui_dimming_rules_on_editor_show_toolbar (ModestWindow *win, gpointer user_data) +{ + ModestDimmingRule *rule = NULL; + gboolean dimmed = FALSE; + + 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); + + /* Check common dimming rules */ + ModestMsgEditFormat format; + format = modest_msg_edit_window_get_format (MODEST_MSG_EDIT_WINDOW (win)); + + dimmed = (format != MODEST_MSG_EDIT_FORMAT_HTML); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mcen_ib_item_unavailable_plaintext")); + + return dimmed; +} + +gboolean modest_ui_dimming_rules_on_zoom (ModestWindow *win, gpointer user_data) { ModestDimmingRule *rule = NULL; diff --git a/src/modest-ui-dimming-rules.h b/src/modest-ui-dimming-rules.h index bcdd043..3988550 100644 --- a/src/modest-ui-dimming-rules.h +++ b/src/modest-ui-dimming-rules.h @@ -71,6 +71,7 @@ gboolean modest_ui_dimming_rules_on_send_receive_all (ModestWindow *win, gpointe gboolean modest_ui_dimming_rules_on_add_to_contacts (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_find_in_msg (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_set_style (ModestWindow *win, gpointer user_data); +gboolean modest_ui_dimming_rules_on_editor_show_toolbar (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_zoom (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_send (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_editor_remove_attachment (ModestWindow *win, gpointer user_data); diff --git a/src/widgets/modest-msg-edit-window.c b/src/widgets/modest-msg-edit-window.c index 290f62e..910379e 100644 --- a/src/widgets/modest-msg-edit-window.c +++ b/src/widgets/modest-msg-edit-window.c @@ -188,6 +188,8 @@ static void text_buffer_mark_set (GtkTextBuffer *buffer, GtkTextIter *iter, GtkTextMark *mark, ModestMsgEditWindow *userdata); +static void on_show_toolbar_button_toggled (GtkWidget *button, + ModestMsgEditWindow *window); static void on_message_settings (GtkAction *action, ModestMsgEditWindow *window); static void setup_menu (ModestMsgEditWindow *self); @@ -337,6 +339,7 @@ struct _ModestMsgEditWindowPrivate { GtkWidget *app_menu; GtkWidget *cc_button; GtkWidget *bcc_button; + GtkWidget *show_toolbar_button; GtkWidget *max_chars_banner; @@ -2118,11 +2121,15 @@ modest_msg_edit_window_set_format (ModestMsgEditWindow *self, case MODEST_MSG_EDIT_FORMAT_HTML: wp_text_buffer_enable_rich_text (WP_TEXT_BUFFER (priv->text_buffer), TRUE); update_signature (self, priv->last_from_account, priv->last_from_account); - if (parent_priv->toolbar) gtk_widget_show (parent_priv->toolbar); + if (parent_priv->toolbar) + on_show_toolbar_button_toggled (priv->show_toolbar_button, + MODEST_MSG_EDIT_WINDOW (self)); break; case MODEST_MSG_EDIT_FORMAT_TEXT: 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) + on_show_toolbar_button_toggled (priv->show_toolbar_button, + MODEST_MSG_EDIT_WINDOW (self)); break; default: g_return_if_reached (); @@ -3166,6 +3173,10 @@ modest_msg_edit_window_show_toolbar (ModestWindow *self, } else { gtk_widget_hide (GTK_WIDGET (parent_priv->toolbar)); } + modest_conf_set_bool(modest_runtime_get_conf(), MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR, show_toolbar, NULL); + if (modest_togglable_get_active (priv->show_toolbar_button) != show_toolbar) { + modest_togglable_set_active (priv->show_toolbar_button, show_toolbar); + } } void @@ -3249,7 +3260,8 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window, remove_tags (WP_TEXT_BUFFER (priv->text_buffer)); update_signature (window, priv->last_from_account, priv->last_from_account); if (parent_priv->toolbar) - gtk_widget_show (parent_priv->toolbar); + on_show_toolbar_button_toggled (priv->show_toolbar_button, + MODEST_MSG_EDIT_WINDOW (window)); break; case MODEST_FILE_FORMAT_PLAIN_TEXT: { @@ -3258,7 +3270,8 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window, 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); + on_show_toolbar_button_toggled (priv->show_toolbar_button, + MODEST_MSG_EDIT_WINDOW (window)); } 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); @@ -3430,10 +3443,8 @@ modest_msg_edit_window_undo (ModestMsgEditWindow *window) is_rich_text = wp_text_buffer_is_rich_text (WP_TEXT_BUFFER (priv->text_buffer)); if (parent_priv->toolbar && was_rich_text != is_rich_text) { - if (is_rich_text) - gtk_widget_show (parent_priv->toolbar); - else - gtk_widget_hide (parent_priv->toolbar); + on_show_toolbar_button_toggled (priv->show_toolbar_button, + MODEST_MSG_EDIT_WINDOW (window)); } modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (window)); @@ -4616,6 +4627,16 @@ on_message_settings (GtkAction *action, } static void +on_show_toolbar_button_toggled (GtkWidget *button, + ModestMsgEditWindow *window) +{ + g_return_if_fail (MODEST_MSG_EDIT_WINDOW (window)); + + modest_msg_edit_window_show_toolbar (MODEST_WINDOW (window), + modest_togglable_get_active (button)); +} + +static void on_cc_button_toggled (GtkWidget *button, ModestMsgEditWindow *window) { @@ -4689,6 +4710,17 @@ setup_menu (ModestMsgEditWindow *self) modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_viewer_find"), "f", MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_on_toggle_find_in_page), NULL); + + priv->show_toolbar_button = modest_toolkit_factory_create_check_menu (modest_runtime_get_toolkit_factory (), + _("mcen_bd_show_toolbar")); + modest_togglable_set_active (priv->show_toolbar_button, + FALSE); + modest_window_add_item_to_menu (MODEST_WINDOW (self), priv->show_toolbar_button, + MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_editor_show_toolbar)); + gtk_widget_show (priv->show_toolbar_button); + g_signal_connect (G_OBJECT (priv->show_toolbar_button), "toggled", + G_CALLBACK (on_show_toolbar_button_toggled), (gpointer) self); + } static void -- 1.7.9.5