* src/modest-ui-actions.c:
[modest] / src / modest-ui-dimming-rules.c
index adfd3a7..6b6af4f 100644 (file)
@@ -265,7 +265,12 @@ modest_ui_dimming_rules_on_sort (ModestWindow *win, gpointer user_data)
        /* Check dimmed rule */ 
        if (!dimmed) {
                dimmed = _selected_folder_is_root (MODEST_MAIN_WINDOW(win));
-               modest_dimming_rule_set_notification (rule, NULL);
+               modest_dimming_rule_set_notification (rule, _CS("ckdg_ib_nothing_to_sort"));
+       }
+
+       if (!dimmed) {
+               dimmed = _selected_folder_is_empty (MODEST_MAIN_WINDOW(win));
+               modest_dimming_rule_set_notification (rule, _CS("ckdg_ib_nothing_to_sort"));
        }
 
        return dimmed;
@@ -463,7 +468,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, _("ckct_ib_unable_to_delete"));
+                               modest_dimming_rule_set_notification (rule, _CS("ckct_ib_unable_to_delete"));
                }
        } 
        else if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
@@ -480,7 +485,7 @@ modest_ui_dimming_rules_on_delete_msg (ModestWindow *win, gpointer user_data)
                if (!dimmed) {
                        dimmed = !modest_msg_view_window_has_headers_model (MODEST_MSG_VIEW_WINDOW(win));
                        if (dimmed) {
-                               modest_dimming_rule_set_notification (rule, _("ckct_ib_unable_to_delete"));
+                               modest_dimming_rule_set_notification (rule, _CS("ckct_ib_unable_to_delete"));
                        }
                }
        }
@@ -1164,6 +1169,24 @@ _selected_folder_is_root (ModestMainWindow *win)
 
        g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE);
 
+       /* All accounts are root items: */
+       GtkWidget *folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
+                                                          MODEST_WIDGET_TYPE_FOLDER_VIEW);
+       if (folder_view) {                                      
+               gboolean is_account = FALSE;
+               TnyFolderStore *folder_store = 
+                       modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
+               if (folder_store) {
+                       is_account = TNY_IS_ACCOUNT (folder_store);
+                       g_object_unref (folder_store);
+                       folder_store = NULL;
+               }
+               
+               if (is_account)
+                       return TRUE;
+       }
+               
+       /* Try something more precise: */
        types[0] = TNY_FOLDER_TYPE_ROOT; 
 
        /* Check folder type */
@@ -1298,7 +1321,7 @@ _selected_folder_is_any_of_type (ModestWindow *win,
        guint i=0;
        gboolean result = FALSE;
 
-       /*Get curent folder */
+       /*Get current folder */
        if (MODEST_IS_MAIN_WINDOW(win)) {
 
                /* Get folder view */
@@ -1346,11 +1369,8 @@ _folder_is_any_of_type (TnyFolder *folder,
        g_return_val_if_fail (TNY_IS_FOLDER(folder), FALSE);
 
        /* Get folder type */
-       if (modest_tny_folder_is_local_folder (folder))
-               folder_type = modest_tny_folder_get_local_folder_type (folder);         
-       else 
-               folder_type = modest_tny_folder_guess_folder_type (folder);             
-       
+       folder_type = modest_tny_folder_guess_folder_type (folder);
+               
        /* Check foler type */
        for (i=0; i < ntypes; i++) {
                result = result || folder_type == types[i];