2007-07-10 Murray Cumming <murrayc@murrayc.com>
authorMurray Cumming <murrayc@murrayc.com>
Tue, 10 Jul 2007 18:24:30 +0000 (18:24 +0000)
committerMurray Cumming <murrayc@murrayc.com>
Tue, 10 Jul 2007 18:24:30 +0000 (18:24 +0000)
* src/modest-ui-dimming-rules.c:
(modest_ui_dimming_rules_on_new_msg),
(modest_ui_dimming_rules_on_reply_msg),
(modest_ui_dimming_rules_on_delete_msg),
(modest_ui_dimming_rules_on_details),
(modest_ui_dimming_rules_on_view_window_move_to),
(modest_ui_dimming_rules_on_view_previous),
(modest_ui_dimming_rules_on_view_next),
(_invalid_folder_for_purge): Added checks before
casting the window. This looks like an actual
logic error in _invalid_folder_for_purge(), because it
tries to use a ModestMainWindow as a message window.

pmo-trunk-r2681

ChangeLog2
src/modest-ui-dimming-rules.c

index a9a9ae2..2d72bf6 100644 (file)
@@ -1,5 +1,20 @@
 2007-07-10  Murray Cumming  <murrayc@murrayc.com>
 
+       * src/modest-ui-dimming-rules.c:
+       (modest_ui_dimming_rules_on_new_msg),
+       (modest_ui_dimming_rules_on_reply_msg),
+       (modest_ui_dimming_rules_on_delete_msg),
+       (modest_ui_dimming_rules_on_details),
+       (modest_ui_dimming_rules_on_view_window_move_to),
+       (modest_ui_dimming_rules_on_view_previous),
+       (modest_ui_dimming_rules_on_view_next),
+       (_invalid_folder_for_purge): Added checks before 
+       casting the window. This looks like an actual 
+       logic error in _invalid_folder_for_purge(), because it 
+       tries to use a ModestMainWindow as a message window.
+
+2007-07-10  Murray Cumming  <murrayc@murrayc.com>
+
        * src/maemo/modest-account-settings-dialog.c:
        (show_error): Use the same implementation as in 
        modest-easysetup-wizard.c:
index a583675..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, "");
        }
@@ -376,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, "");
                }
@@ -472,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);
@@ -538,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, "");
                }
@@ -673,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"));
        }
@@ -960,7 +965,8 @@ 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 (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, ""); */
        }               
@@ -985,7 +991,8 @@ 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 (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, ""); */
        }               
@@ -1914,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",