Refactored dimming rules calls
[modest] / src / modest-ui-actions.c
index c9ab096..432e45b 100644 (file)
@@ -560,9 +560,9 @@ modest_ui_actions_on_delete_message (GtkAction *action, ModestWindow *win)
                                gtk_tree_path_free (prev_path);                         
                }
                
-               /* Update window dimming state */
+               /* Update toolbar dimming state */
                if (main_window)
-                       modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
+                       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
 
                /* Free */
                g_list_foreach (sel_list, (GFunc) gtk_tree_path_free, NULL);
@@ -813,6 +813,26 @@ modest_ui_actions_on_new_msg (GtkAction *action, ModestWindow *win)
        modest_ui_actions_compose_msg(win, NULL, NULL, NULL, NULL, NULL, NULL);
 }
 
+void
+modest_ui_actions_on_new_msg_or_folder (GtkAction *action, ModestWindow *win)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (win));
+
+       /* Check first if the header view has the focus */
+       if (MODEST_IS_MAIN_WINDOW (win)) {
+               GtkWidget *w;
+               w = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
+                                                        MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
+               if (gtk_widget_is_focus (w)) {
+                       modest_ui_actions_on_new_folder (action, MODEST_MAIN_WINDOW(win));
+                       return;
+               }
+       }
+
+       modest_ui_actions_on_new_msg (action, win);
+}
+
+
 gboolean 
 modest_ui_actions_msg_retrieval_check (ModestMailOperation *mail_op,
                                       TnyHeader *header,
@@ -982,9 +1002,9 @@ open_msg_cb (ModestMailOperation *mail_op,
                gtk_widget_show_all (GTK_WIDGET(win));
        }
 
-       /* Update window dimming state */
+       /* Update toolbar dimming state */
        if (MODEST_IS_MAIN_WINDOW (parent_win)) {
-               modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (parent_win));
+               modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (parent_win));
        }
 
 cleanup:
@@ -1967,8 +1987,8 @@ modest_ui_actions_on_header_selected (ModestHeaderView *header_view,
        if (!gtk_widget_is_focus (GTK_WIDGET(header_view)))
            gtk_widget_grab_focus (GTK_WIDGET(header_view));
 
-       /* Update window dimming state */
-       modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
+       /* Update toolbar dimming state */
+       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
 }
 
 void
@@ -2131,8 +2151,8 @@ modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view,
                }
        }
 
-       /* Update window dimming state */
-       modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
+       /* Update toolbar dimming state */
+       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
 }
 
 void 
@@ -3536,7 +3556,7 @@ modest_ui_actions_on_select_all (GtkAction *action,
 
                /* Enable window dimming management */
                modest_window_enable_dimming (MODEST_WINDOW(window));
-               modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (window));
+               modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (window));
        }
 
 }
@@ -4611,9 +4631,11 @@ on_move_folder_cb (gboolean canceled, GError *err, GtkWindow *parent_window,
                        info->delete_original, 
                        folder_move_to_cb, 
                        helper);
-       
-       modest_folder_view_select_folder (MODEST_FOLDER_VIEW(info->folder_view),
-                       TNY_FOLDER (info->dst_folder), TRUE);
+
+       if (modest_mail_operation_get_status (mail_op) == MODEST_MAIL_OPERATION_STATUS_SUCCESS) {       
+               modest_folder_view_select_folder (MODEST_FOLDER_VIEW(info->folder_view),
+                                                 TNY_FOLDER (info->dst_folder), TRUE);
+       }
        
        /* Unref mail operation */
        g_object_unref (G_OBJECT (mail_op));
@@ -4976,12 +4998,111 @@ modest_ui_actions_on_retrieve_msg_contents (GtkAction *action,
 }
 
 void
-modest_ui_actions_check_window_dimming_rules (ModestWindow *window)
+modest_ui_actions_check_toolbar_dimming_rules (ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_window_check_dimming_rules_group (window, MODEST_DIMMING_RULES_TOOLBAR);
+}
+
+void
+modest_ui_actions_check_menu_dimming_rules (ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_window_check_dimming_rules_group (window, MODEST_DIMMING_RULES_MENU);
+}
+
+void
+modest_ui_actions_on_email_menu_activated (GtkAction *action,
+                                         ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+       
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_edit_menu_activated (GtkAction *action,
+                                         ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_view_menu_activated (GtkAction *action,
+                                         ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_format_menu_activated (GtkAction *action,
+                                           ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_tools_menu_activated (GtkAction *action,
+                                         ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_attachment_menu_activated (GtkAction *action,
+                                         ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_toolbar_csm_menu_activated (GtkAction *action,
+                                                ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_folder_view_csm_menu_activated (GtkAction *action,
+                                                    ModestWindow *window)
+{
+       g_return_if_fail (MODEST_IS_WINDOW (window));
+
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
+}
+
+void
+modest_ui_actions_on_header_view_csm_menu_activated (GtkAction *action,
+                                                    ModestWindow *window)
 {
        g_return_if_fail (MODEST_IS_WINDOW (window));
 
-       /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestWindowDimmingRules");   
+       /* Update dimmed */
+       modest_ui_actions_check_menu_dimming_rules (window);
 }
 
 void