Rename ModestToolbarDimmingRules to ModestWindowDimmingRules and
[modest] / src / modest-ui-actions.c
index 3cc1f10..858716e 100644 (file)
@@ -163,6 +163,9 @@ static void     do_create_folder (GtkWindow *window,
                                  TnyFolderStore *parent_folder, 
                                  const gchar *suggested_name);
 
+static GtkWidget* get_folder_view_from_move_to_dialog (GtkWidget *move_to_dialog);
+
+
 /*
  * This function checks whether a TnyFolderStore is a pop account
  */
@@ -557,9 +560,9 @@ modest_ui_actions_on_delete_message (GtkAction *action, ModestWindow *win)
                                gtk_tree_path_free (prev_path);                         
                }
                
-               /* Update toolbar dimming state */
+               /* Update window dimming state */
                if (main_window)
-                       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
+                       modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
 
                /* Free */
                g_list_foreach (sel_list, (GFunc) gtk_tree_path_free, NULL);
@@ -786,11 +789,6 @@ modest_ui_actions_compose_msg(ModestWindow *win,
                attachments = g_slist_next(attachments);
        }
        modest_window_mgr_register_window (modest_runtime_get_window_mgr(), msg_win);
-
-       if (win) {
-               gtk_window_set_transient_for (GTK_WINDOW (msg_win),
-                                             GTK_WINDOW (win));
-       }
        gtk_widget_show_all (GTK_WIDGET (msg_win));
 
 cleanup:
@@ -984,9 +982,9 @@ open_msg_cb (ModestMailOperation *mail_op,
                gtk_widget_show_all (GTK_WIDGET(win));
        }
 
-       /* Update toolbar dimming state */
+       /* Update window dimming state */
        if (MODEST_IS_MAIN_WINDOW (parent_win)) {
-               modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (parent_win));
+               modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (parent_win));
        }
 
 cleanup:
@@ -1968,8 +1966,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 toolbar dimming state */
-       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
+       /* Update window dimming state */
+       modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
 }
 
 void
@@ -2037,8 +2035,6 @@ folder_refreshed_cb (ModestMailOperation *mail_op,
 {
        ModestMainWindow *win = NULL;
        GtkWidget *header_view;
-       gboolean folder_empty = FALSE;
-       gboolean all_marked_as_deleted = FALSE;
 
        g_return_if_fail (TNY_IS_FOLDER (folder));
 
@@ -2058,9 +2054,7 @@ folder_refreshed_cb (ModestMailOperation *mail_op,
        }
 
        /* Check if folder is empty and set headers view contents style */
-       folder_empty = (tny_folder_get_all_count (folder) == 0);
-       all_marked_as_deleted = modest_header_view_is_empty (MODEST_HEADER_VIEW(header_view));
-       if (folder_empty || all_marked_as_deleted)
+       if (tny_folder_get_all_count (folder) == 0)
                modest_main_window_set_contents_style (win,
                                                       MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY);
 }
@@ -2136,8 +2130,8 @@ modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view,
                }
        }
 
-       /* Update toolbar dimming state */
-       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
+       /* Update window dimming state */
+       modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (main_window));
 }
 
 void 
@@ -2603,22 +2597,28 @@ do_create_folder_cb (ModestMailOperation *mail_op,
                     gpointer user_data)
 {
        gchar *suggested_name = (gchar *) user_data;
-       GtkWindow *main_window = (GtkWindow *) modest_mail_operation_get_source (mail_op);
-
+       GtkWindow *source_win = (GtkWindow *) modest_mail_operation_get_source (mail_op);
+               
        if (modest_mail_operation_get_error (mail_op)) {
                /* Show an error */
-               modest_platform_information_banner (GTK_WIDGET (main_window), NULL,
+               modest_platform_information_banner (GTK_WIDGET (source_win), NULL,
                                                    _("mail_in_ui_folder_create_error"));
 
                /* Try again */
-               do_create_folder (main_window, parent_folder, (const gchar *) suggested_name);
+               do_create_folder (source_win, parent_folder, (const gchar *) suggested_name);
        } else {
+               /* the 'source_win' is either the ModestMainWindow, or the 'Move to folder'-dialog
+                * FIXME: any other? */         
                GtkWidget *folder_view;
 
-               folder_view = 
-                       modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (main_window),
-                                                            MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
-
+               if (MODEST_IS_MAIN_WINDOW(source_win)) 
+                       folder_view = 
+                               modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (source_win),
+                                                                    MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
+               else
+                       folder_view =
+                               get_folder_view_from_move_to_dialog (GTK_WIDGET(source_win));
+               
                /* Select the newly created folder */
                modest_folder_view_select_folder (MODEST_FOLDER_VIEW (folder_view),
                                                  new_folder, FALSE);
@@ -2626,7 +2626,7 @@ do_create_folder_cb (ModestMailOperation *mail_op,
        }
        /* Free. Note that the first time it'll be NULL so noop */
        g_free (suggested_name);
-       g_object_unref (main_window);
+       g_object_unref (source_win);
 }
 
 static void
@@ -3515,7 +3515,7 @@ modest_ui_actions_on_select_all (GtkAction *action,
 
                /* Enable window dimming management */
                modest_window_enable_dimming (MODEST_WINDOW(window));
-               modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (window));
+               modest_ui_actions_check_window_dimming_rules (MODEST_WINDOW (window));
        }
 
 }
@@ -3971,6 +3971,16 @@ on_move_to_dialog_folder_selection_changed (ModestFolderView* self,
        gtk_widget_set_sensitive (new_button, new_sensitive);
 }
 
+
+#define MODEST_MOVE_TO_DIALOG_FOLDER_VIEW "move-to-dialog-folder-view"
+
+static GtkWidget*
+get_folder_view_from_move_to_dialog (GtkWidget *move_to_dialog)
+{
+       return GTK_WIDGET(g_object_get_data (G_OBJECT(move_to_dialog),
+                                            MODEST_MOVE_TO_DIALOG_FOLDER_VIEW));
+}
+
 static GtkWidget*
 create_move_to_dialog (GtkWindow *win,
                       GtkWidget *folder_view,
@@ -4059,9 +4069,16 @@ create_move_to_dialog (GtkWindow *win,
                }
        }
 
+       /* we keep a pointer to the embedded folder view, so we can retrieve it with
+        *   get_folder_view_from_move_to_dialog 
+        * (see above) later (needed for focus handling) 
+        */
+       g_object_set_data (G_OBJECT(dialog), MODEST_MOVE_TO_DIALOG_FOLDER_VIEW, *tree_view);
+
+       
        /* Hide special folders */
        modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (*tree_view), FALSE);
-       
+
        gtk_container_add (GTK_CONTAINER (scroll), *tree_view);
 
        /* Add scroll to dialog */
@@ -4924,102 +4941,12 @@ modest_ui_actions_on_retrieve_msg_contents (GtkAction *action,
 }
 
 void
-modest_ui_actions_on_email_menu_activated (GtkAction *action,
-                                         ModestWindow *window)
-{
-       g_return_if_fail (MODEST_IS_WINDOW (window));
-       
-       /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-void
-modest_ui_actions_on_edit_menu_activated (GtkAction *action,
-                                         ModestWindow *window)
-{
-       g_return_if_fail (MODEST_IS_WINDOW (window));
-
-       /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-void
-modest_ui_actions_on_view_menu_activated (GtkAction *action,
-                                         ModestWindow *window)
-{
-       g_return_if_fail (MODEST_IS_WINDOW (window));
-
-       /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-void
-modest_ui_actions_on_format_menu_activated (GtkAction *action,
-                                           ModestWindow *window)
+modest_ui_actions_check_window_dimming_rules (ModestWindow *window)
 {
        g_return_if_fail (MODEST_IS_WINDOW (window));
 
        /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-void
-modest_ui_actions_on_tools_menu_activated (GtkAction *action,
-                                         ModestWindow *window)
-{
-       g_return_if_fail (MODEST_IS_WINDOW (window));
-
-       /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-void
-modest_ui_actions_on_attachment_menu_activated (GtkAction *action,
-                                         ModestWindow *window)
-{
-       g_return_if_fail (MODEST_IS_WINDOW (window));
-
-       /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-void
-modest_ui_actions_on_toolbar_csm_menu_activated (GtkAction *action,
-                                                ModestWindow *window)
-{
-       g_return_if_fail (MODEST_IS_WINDOW (window));
-
-       /* Update dimmed */     
-       modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-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_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");     
-}
-
-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, "ModestMenuDimmingRules");     
-}
-
-void
-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, "ModestToolbarDimmingRules");  
+       modest_window_check_dimming_rules_group (window, "ModestWindowDimmingRules");   
 }
 
 void
@@ -5143,7 +5070,10 @@ modest_ui_actions_on_send_queue_error_happened (TnySendQueue *self,
                message = g_strdup (_("emev_ib_ui_smtp_send_error"));
                break;
        default:
-               g_return_if_reached ();
+               g_warning ("%s: unexpected TNY_TRANSPORT_ACCOUNT_ERROR %d",
+                          __FUNCTION__, err->code);
+               message = g_strdup (_("emev_ib_ui_smtp_send_error"));
+               break;  
        }
        
        /* TODO if the username or the password where not defined we