* Review dimming rules of paste operation.
authorJavier Fernandez Garcia-Boente <jfernandez@igalia.com>
Wed, 27 Jun 2007 16:45:25 +0000 (16:45 +0000)
committerJavier Fernandez Garcia-Boente <jfernandez@igalia.com>
Wed, 27 Jun 2007 16:45:25 +0000 (16:45 +0000)
* Review dimming rules of viewer window toolbar.
* Fixes: NB#60441, NB#61044

pmo-trunk-r2465

src/maemo/modest-msg-view-window-ui-dimming.h
src/maemo/modest-msg-view-window.c
src/modest-ui-dimming-rules.c
src/modest-ui-dimming-rules.h
src/widgets/modest-msg-view-window.h

index 0f596b3..959859d 100644 (file)
@@ -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 },
index 29e67b6..c3b2116 100644 (file)
@@ -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);
 }
 
+
index 7d6dbf5..260ad47 100644 (file)
@@ -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;
+}
index d22c65f..003d079 100644 (file)
@@ -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 
index de89996..f07fc71 100644 (file)
@@ -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__ */