* select the inbox of the newly selected account; fixes NB#58667
[modest] / src / modest-ui-dimming-rules.c
index 7ebd97d..8017bc5 100644 (file)
@@ -78,7 +78,8 @@ modest_ui_dimming_rules_on_new_msg (ModestWindow *win, gpointer user_data)
                
        /* Check dimmed rule */ 
        if (!dimmed) {
-               dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
+               if (MODEST_IS_MSG_VIEW_WINDOW (win))
+                       dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
                if (dimmed)
                        modest_dimming_rule_set_notification (rule, "");
        }
@@ -191,6 +192,13 @@ modest_ui_dimming_rules_on_delete (ModestWindow *win, gpointer user_data)
 
                if (folder_view && gtk_widget_is_focus (folder_view)) 
                        dimmed = modest_ui_dimming_rules_on_delete_folder (win, rule);
+
+               if (header_view && folder_view &&
+                   !gtk_widget_is_focus (header_view) &&
+                   !gtk_widget_is_focus (folder_view)) {
+                       dimmed = TRUE;
+                       modest_dimming_rule_set_notification (rule, dgettext("hildon-common-strings", "ckct_ib_nothing_to_delete"));                    
+               }
        } else {
                dimmed = modest_ui_dimming_rules_on_delete_folder (win, rule);
        }
@@ -204,7 +212,7 @@ gboolean
 modest_ui_dimming_rules_on_delete_folder (ModestWindow *win, gpointer user_data)
 {
        ModestDimmingRule *rule = NULL;
-       TnyFolderType types[5];
+       TnyFolderType types[6];
        gboolean dimmed = FALSE;
 
        g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE);
@@ -216,6 +224,7 @@ modest_ui_dimming_rules_on_delete_folder (ModestWindow *win, gpointer user_data)
        types[2] = TNY_FOLDER_TYPE_SENT;
        types[3] = TNY_FOLDER_TYPE_INBOX;
        types[4] = TNY_FOLDER_TYPE_ROOT;
+       types[5] = TNY_FOLDER_TYPE_ARCHIVE;
 
                
        /* Check dimmed rule */ 
@@ -225,7 +234,7 @@ modest_ui_dimming_rules_on_delete_folder (ModestWindow *win, gpointer user_data)
                        modest_dimming_rule_set_notification (rule, _("mail_in_ui_folder_delete_error"));
        }
        if (!dimmed) {
-               dimmed = _selected_folder_is_any_of_type (win, types, 5);
+               dimmed = _selected_folder_is_any_of_type (win, types, 6);
                if (dimmed)
                        modest_dimming_rule_set_notification (rule, _("mail_in_ui_folder_delete_error"));
        }
@@ -368,7 +377,8 @@ modest_ui_dimming_rules_on_reply_msg (ModestWindow *win, gpointer user_data)
                                modest_dimming_rule_set_notification (rule, _("mail_ib_notavailable_downloading"));
                }
                if (!dimmed) {
-                       dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
+                       if (MODEST_IS_MSG_VIEW_WINDOW (win))
+                               dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW (win));
                        if (dimmed)
                                modest_dimming_rule_set_notification (rule, "");
                }
@@ -454,7 +464,7 @@ modest_ui_dimming_rules_on_delete_msg (ModestWindow *win, gpointer user_data)
                if (!dimmed) {
                        dimmed = _selected_msg_sent_in_progress (win);
                        if (dimmed)
-                               modest_dimming_rule_set_notification (rule, _("mcen_ib_message_unableto_delete"));
+                               modest_dimming_rule_set_notification (rule, _("ckct_ib_unable_to_delete]"));
                }
        } 
        else if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
@@ -464,7 +474,8 @@ modest_ui_dimming_rules_on_delete_msg (ModestWindow *win, gpointer user_data)
                                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 (MODEST_IS_MSG_VIEW_WINDOW (win))
+                               dimmed = !modest_msg_view_window_has_headers_model (MODEST_MSG_VIEW_WINDOW (win));
                        if (dimmed) {
                                gchar *num = g_strdup("1");
                                gchar *message = g_strdup_printf(_("mcen_nc_unable_to_delete_n_messages"), num);
@@ -530,7 +541,8 @@ modest_ui_dimming_rules_on_details (ModestWindow *win, gpointer user_data)
 
                /* Check dimmed rule */ 
                if (!dimmed) {
-                       dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
+                       if (MODEST_IS_MSG_VIEW_WINDOW (win))
+                               dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW (win));
                        if (dimmed)
                                modest_dimming_rule_set_notification (rule, "");
                }
@@ -665,7 +677,8 @@ modest_ui_dimming_rules_on_view_window_move_to (ModestWindow *win, gpointer user
                        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 (MODEST_IS_MSG_VIEW_WINDOW (win))
+                       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"));
        }
@@ -888,11 +901,6 @@ modest_ui_dimming_rules_on_cut (ModestWindow *win, gpointer user_data)
 
        /* Check window specific dimming rules */
        if (MODEST_IS_MAIN_WINDOW (win)) {
-               if (!dimmed) {
-                       dimmed = _selected_folder_not_writeable (MODEST_MAIN_WINDOW(win));
-                       if (dimmed)
-                               modest_dimming_rule_set_notification (rule, _("mcen_ib_message_unableto_delete"));
-               }
                if (!dimmed) { 
                        dimmed = _selected_folder_is_empty (MODEST_MAIN_WINDOW(win));                   
                        if (dimmed)
@@ -957,9 +965,10 @@ modest_ui_dimming_rules_on_view_previous (ModestWindow *win, gpointer user_data)
                        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, "");
+               if (MODEST_IS_MSG_VIEW_WINDOW (win))
+                       dimmed = modest_msg_view_window_first_message_selected (MODEST_MSG_VIEW_WINDOW(win));
+/*             if (dimmed) */
+/*                     modest_dimming_rule_set_notification (rule, ""); */
        }               
 
        return dimmed;
@@ -982,9 +991,10 @@ modest_ui_dimming_rules_on_view_next (ModestWindow *win, gpointer user_data)
                        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, "");
+               if (MODEST_IS_MSG_VIEW_WINDOW (win))
+                       dimmed = modest_msg_view_window_last_message_selected (MODEST_MSG_VIEW_WINDOW (win));
+/*             if (dimmed) */
+/*                     modest_dimming_rule_set_notification (rule, ""); */
        }               
 
        return dimmed;
@@ -1028,7 +1038,7 @@ modest_ui_dimming_rules_on_cancel_sending (ModestWindow *win, gpointer user_data
        }
        if (!dimmed) {
                dimmed = !_sending_in_progress (win);
-               if (dimmed) 
+               if (dimmed)
                        modest_dimming_rule_set_notification (rule, "");
        }
 
@@ -1209,8 +1219,6 @@ _selected_folder_is_MMC_or_POP_root (ModestMainWindow *win)
 }
 
 
-
-
 static gboolean
 _selected_folder_is_empty (ModestMainWindow *win)
 {
@@ -1304,7 +1312,7 @@ _selected_folder_is_any_of_type (ModestWindow *win,
                                                                   MODEST_WIDGET_TYPE_FOLDER_VIEW);
                /* If no folder view, always dimmed */
                if (!folder_view)
-                       return TRUE;
+                       return FALSE;
        
                /* Get selected folder as parent of new folder to create */
                folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
@@ -1312,7 +1320,7 @@ _selected_folder_is_any_of_type (ModestWindow *win,
                if (!(folder && TNY_IS_FOLDER(folder))) {
                        if (folder)
                                g_object_unref (folder);
-                       return TRUE;
+                       return FALSE;
                }
                
                /* Check folder type */
@@ -1913,12 +1921,17 @@ _invalid_folder_for_purge (ModestWindow *win,
                /* If it's POP then dim */
                if (modest_protocol_info_get_transport_store_protocol (proto_str) == 
                    MODEST_PROTOCOL_STORE_POP) {
-                       GList *attachments;
-                       gint n_selected;
+                       GList *attachments = NULL;
+                       gint n_selected = 0;
                        result = TRUE;
-                       attachments = modest_msg_view_window_get_attachments (MODEST_MSG_VIEW_WINDOW(win));
-                       n_selected = g_list_length (attachments);
-                       g_list_free (attachments);
+                       
+                       /* TODO: This check is here to prevent a gwarning, but this looks like a logic error.
+                        * murrayc */
+                       if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
+                               attachments = modest_msg_view_window_get_attachments (MODEST_MSG_VIEW_WINDOW(win));
+                               n_selected = g_list_length (attachments);
+                               g_list_free (attachments);
+                       }
                        
                        modest_dimming_rule_set_notification (rule, 
                                                              ngettext ("mail_ib_unable_to_pure_attach_pop_mail_singular",