From 917e780c80f0f00c2b22bc399b55e4ec58a255ad Mon Sep 17 00:00:00 2001 From: Javier Fernandez Garcia-Boente Date: Wed, 27 Jun 2007 16:45:25 +0000 Subject: [PATCH] * Review dimming rules of paste operation. * Review dimming rules of viewer window toolbar. * Fixes: NB#60441, NB#61044 pmo-trunk-r2465 --- src/maemo/modest-msg-view-window-ui-dimming.h | 2 +- src/maemo/modest-msg-view-window.c | 21 +++++++-- src/modest-ui-dimming-rules.c | 63 +++++++++++++++++++++++-- src/modest-ui-dimming-rules.h | 1 + src/widgets/modest-msg-view-window.h | 11 +++++ 5 files changed, 89 insertions(+), 9 deletions(-) diff --git a/src/maemo/modest-msg-view-window-ui-dimming.h b/src/maemo/modest-msg-view-window-ui-dimming.h index 0f596b3..959859d 100644 --- a/src/maemo/modest-msg-view-window-ui-dimming.h +++ b/src/maemo/modest-msg-view-window-ui-dimming.h @@ -62,7 +62,7 @@ static const ModestDimmingEntry modest_msg_view_toolbar_dimming_entries [] = { { "/ToolBar/ToolbarMessageReply", G_CALLBACK(modest_ui_dimming_rules_on_reply_msg) }, { "/ToolBar/ToolbarMessageMoveTo", G_CALLBACK(modest_ui_dimming_rules_on_move_to) }, { "/ToolBar/ToolbarDeleteMessage", G_CALLBACK(modest_ui_dimming_rules_on_delete_msg) }, - { "/ToolBar/ToolbarFindInMessage", NULL }, + { "/ToolBar/FindInMessage", G_CALLBACK(modest_ui_dimming_rules_on_find_msg) }, { "/ToolBar/ToolbarMessageBack", G_CALLBACK(modest_ui_dimming_rules_on_view_previous) }, { "/ToolBar/ToolbarMessageNext", G_CALLBACK(modest_ui_dimming_rules_on_view_next) }, { "/ToolBar/ToolbarCancel", NULL }, diff --git a/src/maemo/modest-msg-view-window.c b/src/maemo/modest-msg-view-window.c index 29e67b6..c3b2116 100644 --- a/src/maemo/modest-msg-view-window.c +++ b/src/maemo/modest-msg-view-window.c @@ -273,7 +273,7 @@ set_toolbar_mode (ModestMsgViewWindow *self, { ModestWindowPrivate *parent_priv; ModestMsgViewWindowPrivate *priv; - GtkWidget *widget = NULL; +/* GtkWidget *widget = NULL; */ g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self)); @@ -283,12 +283,11 @@ set_toolbar_mode (ModestMsgViewWindow *self, /* Sets current toolbar mode */ priv->current_toolbar_mode = mode; - /* Get toolbar widget */ - widget = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar"); + /* Update toolbar dimming state */ + modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (self)); switch (mode) { case TOOLBAR_MODE_NORMAL: - gtk_widget_set_sensitive (widget, TRUE); /* widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ToolbarMessageReply"); */ /* gtk_action_set_sensitive (widget, TRUE); */ /* widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ToolbarDeleteMessage"); */ @@ -320,7 +319,6 @@ set_toolbar_mode (ModestMsgViewWindow *self, break; case TOOLBAR_MODE_TRANSFER: - gtk_widget_set_sensitive (widget, FALSE); /* widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ToolbarMessageReply"); */ /* gtk_action_set_sensitive (widget, FALSE); */ /* widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ToolbarDeleteMessage"); */ @@ -1398,6 +1396,7 @@ modest_msg_view_window_show_toolbar (ModestWindow *self, gtk_widget_show (GTK_WIDGET (parent_priv->toolbar)); set_toolbar_mode (MODEST_MSG_VIEW_WINDOW(self), TOOLBAR_MODE_NORMAL); + } else { gtk_widget_set_no_show_all (parent_priv->toolbar, TRUE); gtk_widget_hide (GTK_WIDGET (parent_priv->toolbar)); @@ -1436,6 +1435,17 @@ modest_msg_view_window_clipboard_owner_change (GtkClipboard *clipboard, } +gboolean +modest_msg_view_window_transfer_mode_enabled (ModestMsgViewWindow *self) +{ + ModestMsgViewWindowPrivate *priv; + + g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self), FALSE); + priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(self); + + return priv->current_toolbar_mode == TOOLBAR_MODE_TRANSFER; +} + static void cancel_progressbar (GtkToolButton *toolbutton, ModestMsgViewWindow *self) @@ -1851,3 +1861,4 @@ update_window_title (ModestMsgViewWindow *window) gtk_window_set_title (GTK_WINDOW (window), subject); } + diff --git a/src/modest-ui-dimming-rules.c b/src/modest-ui-dimming-rules.c index 7d6dbf5..260ad47 100644 --- a/src/modest-ui-dimming-rules.c +++ b/src/modest-ui-dimming-rules.c @@ -63,6 +63,7 @@ static gboolean _selected_msg_sent_in_progress (ModestWindow *win); static gboolean _sending_in_progress (ModestWindow *win); static gboolean _marked_as_deleted (ModestWindow *win); static gboolean _invalid_attachment_for_purge (ModestWindow *win, ModestDimmingRule *rule); +static gboolean _transfer_mode_enabled (ModestWindow *win); gboolean @@ -323,6 +324,11 @@ modest_ui_dimming_rules_on_reply_msg (ModestWindow *win, gpointer user_data) /* Check dimmed rule */ if (!dimmed) { + dimmed = _transfer_mode_enabled (win); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mail_ib_notavailable_downloading")); + } + if (!dimmed) { dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win)); if (dimmed) modest_dimming_rule_set_notification (rule, ""); @@ -414,6 +420,11 @@ modest_ui_dimming_rules_on_delete_msg (ModestWindow *win, gpointer user_data) } else if (MODEST_IS_MSG_VIEW_WINDOW (win)) { if (!dimmed) { + dimmed = _transfer_mode_enabled (win); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mail_ib_notavailable_downloading")); + } + if (!dimmed) { dimmed = !modest_msg_view_window_has_headers_model (MODEST_MSG_VIEW_WINDOW(win)); if (dimmed) { gchar *num = g_strdup("1"); @@ -600,10 +611,34 @@ modest_ui_dimming_rules_on_view_window_move_to (ModestWindow *win, gpointer user /* Check dimmed rule */ if (!dimmed) { + dimmed = _transfer_mode_enabled (win); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mail_ib_notavailable_downloading")); + } + if (!dimmed) { dimmed = !modest_msg_view_window_has_headers_model (MODEST_MSG_VIEW_WINDOW(win)); if (dimmed) modest_dimming_rule_set_notification (rule, _("mcen_ib_unable_to_move_mail_attachment")); - + } + + return dimmed; +} + +gboolean +modest_ui_dimming_rules_on_find_msg (ModestWindow *win, gpointer user_data) +{ + ModestDimmingRule *rule = NULL; + gboolean dimmed = FALSE; + + g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW(win), FALSE); + g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE); + rule = MODEST_DIMMING_RULE (user_data); + + /* Check dimmed rule */ + if (!dimmed) { + dimmed = _transfer_mode_enabled (win); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mail_ib_notavailable_downloading")); } return dimmed; @@ -628,7 +663,7 @@ modest_ui_dimming_rules_on_paste_msgs (ModestWindow *win, gpointer user_data) if (!dimmed) { dimmed = _clipboard_is_empty (win); if (dimmed) - modest_dimming_rule_set_notification (rule, ""); + modest_dimming_rule_set_notification (rule, dgettext("hildon-common-strings", "ecoc_ib_edwin_nothing_to_paste")); } if (!dimmed) { dimmed = _selected_folder_is_any_of_type (win, types, 3); @@ -823,6 +858,11 @@ modest_ui_dimming_rules_on_view_previous (ModestWindow *win, gpointer user_data) /* Check dimmed rule */ if (!dimmed) { + dimmed = _transfer_mode_enabled (win); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mail_ib_notavailable_downloading")); + } + if (!dimmed) { dimmed = modest_msg_view_window_first_message_selected (MODEST_MSG_VIEW_WINDOW(win)); if (dimmed) modest_dimming_rule_set_notification (rule, ""); @@ -843,6 +883,11 @@ modest_ui_dimming_rules_on_view_next (ModestWindow *win, gpointer user_data) /* Check dimmed rule */ if (!dimmed) { + dimmed = _transfer_mode_enabled (win); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mail_ib_notavailable_downloading")); + } + if (!dimmed) { dimmed = modest_msg_view_window_last_message_selected (MODEST_MSG_VIEW_WINDOW(win)); if (dimmed) modest_dimming_rule_set_notification (rule, ""); @@ -1289,7 +1334,7 @@ _invalid_clipboard_selected (ModestWindow *win, /* Check dimming */ result = !modest_header_view_has_selected_headers (MODEST_HEADER_VIEW(header_view)); if (result) - modest_dimming_rule_set_notification (rule, _("mcen_ib_select_one_message")); + modest_dimming_rule_set_notification (rule, _("mcen_ib_no_message_selected")); } return result; @@ -1746,3 +1791,15 @@ _invalid_attachment_for_purge (ModestWindow *win, return result; } +static gboolean +_transfer_mode_enabled (ModestWindow *win) +{ + gboolean result = FALSE; + + g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win), FALSE); + + /* Check dimming */ + result = modest_msg_view_window_transfer_mode_enabled (MODEST_MSG_VIEW_WINDOW (win)); + + return result; +} diff --git a/src/modest-ui-dimming-rules.h b/src/modest-ui-dimming-rules.h index d22c65f..003d079 100644 --- a/src/modest-ui-dimming-rules.h +++ b/src/modest-ui-dimming-rules.h @@ -69,6 +69,7 @@ gboolean modest_ui_dimming_rules_on_tools_smtp_servers (ModestWindow *win, gpoin gboolean modest_ui_dimming_rules_on_cancel_sending (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_send_receive (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_add_to_contacts (ModestWindow *win, gpointer user_data); +gboolean modest_ui_dimming_rules_on_find_msg (ModestWindow *win, gpointer user_data); G_END_DECLS #endif diff --git a/src/widgets/modest-msg-view-window.h b/src/widgets/modest-msg-view-window.h index de89996..f07fc71 100644 --- a/src/widgets/modest-msg-view-window.h +++ b/src/widgets/modest-msg-view-window.h @@ -259,6 +259,17 @@ gboolean modest_msg_view_window_has_headers_model (ModestMsgViewWindow *window); TnyFolderType modest_msg_view_window_get_folder_type (ModestMsgViewWindow *window); +/** + * modest_msg_view_window_transfer_mode_enabled: + * @window: a #ModestMsgViewWindow + * + * Determines if some transfer operation is in progress. + * + * Returns: TRUE if transfer mode is enabled, FASE otherwise. +*/ +gboolean +modest_msg_view_window_transfer_mode_enabled (ModestMsgViewWindow *self); + G_END_DECLS #endif /* __MODEST_MSG_VIEW_WINDOW_H__ */ -- 1.7.9.5