* New Message toolbar button and menu item will be dimmed
authorJavier Fernandez Garcia-Boente <jfernandez@igalia.com>
Thu, 30 Aug 2007 19:18:15 +0000 (19:18 +0000)
committerJavier Fernandez Garcia-Boente <jfernandez@igalia.com>
Thu, 30 Aug 2007 19:18:15 +0000 (19:18 +0000)
when no accounts have been defined.
* Fixes: NB#64278

pmo-trunk-r3161

src/maemo/modest-main-window-ui-dimming.h
src/modest-ui-dimming-rules.c

index e055734..4c4cc4f 100644 (file)
@@ -42,7 +42,7 @@ static const ModestDimmingEntry modest_main_window_menu_dimming_entries [] = {
 
        /* Email Menu */
        { "/MenuBar/EmailMenu/EmailNewMainMenu", NULL },
-       { "/MenuBar/EmailMenu/EmailNewMainMenu/EmailNewMessageMenu", NULL },
+       { "/MenuBar/EmailMenu/EmailNewMainMenu/EmailNewMessageMenu", G_CALLBACK(modest_ui_dimming_rules_on_new_msg) },
        { "/MenuBar/EmailMenu/EmailNewMainMenu/EmailNewFolderMenu", G_CALLBACK(modest_ui_dimming_rules_on_new_folder) },
        { "/MenuBar/EmailMenu/EmailOpenMenu", G_CALLBACK(modest_ui_dimming_rules_on_open_msg) },
        { "/MenuBar/EmailMenu/EmailReplyMenu", G_CALLBACK(modest_ui_dimming_rules_on_reply_msg) },
@@ -121,7 +121,7 @@ static const ModestDimmingEntry modest_main_window_menu_dimming_entries [] = {
 static const ModestDimmingEntry modest_main_window_toolbar_dimming_entries [] = {
 
        /* Toolbar */
-       { "/ToolBar/ToolbarMessageNew", NULL },
+       { "/ToolBar/ToolbarMessageNew", G_CALLBACK(modest_ui_dimming_rules_on_new_msg) },
        { "/ToolBar/ToolbarMessageReply", G_CALLBACK(modest_ui_dimming_rules_on_reply_msg) },
        { "/ToolBar/ToolbarDeleteMessage", G_CALLBACK(modest_ui_dimming_rules_on_delete) },
        { "/ToolBar/ToolbarToggleView", NULL },
index 767d5e8..c5ad4b9 100644 (file)
@@ -321,15 +321,24 @@ modest_ui_dimming_rules_on_new_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_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 = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
-               if (dimmed)
-                       modest_dimming_rule_set_notification (rule, "");
+       if (MODEST_IS_MSG_VIEW_WINDOW(win)) {
+               if (!dimmed) {
+                       dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
+                       if (dimmed)
+                               modest_dimming_rule_set_notification (rule, "");
+               }
+       } else if (MODEST_IS_MAIN_WINDOW(win)) {
+               if (!dimmed) {
+                       dimmed = !modest_account_mgr_has_accounts(modest_runtime_get_account_mgr(), 
+                                                                 TRUE);        
+                       if (dimmed)
+                               modest_dimming_rule_set_notification (rule, _("mcen_nc_no_email_acnts_defined"));
+               }
        }
 
        return dimmed;
@@ -1055,7 +1064,7 @@ modest_ui_dimming_rules_on_paste (ModestWindow *win, gpointer user_data)
                if (dimmed)
                        modest_dimming_rule_set_notification (rule, _("mcen_ib_unable_to_copy_samefolder"));
        }
-
+       
        return dimmed;
 }