* src/maemo/modest-msg-edit-window.c:
[modest] / src / maemo / modest-msg-view-window.c
index eada9a6..b49bad6 100644 (file)
@@ -950,10 +950,13 @@ modest_msg_view_window_new_for_search_result (TnyMsg *msg,
        tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
        
        update_window_title (window);
-       modest_msg_view_window_update_priority (window);
-
        gtk_widget_show_all (GTK_WIDGET (window));
+       modest_msg_view_window_update_priority (window);
 
+       /* Check dimming rules */
+       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (window));
+       modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (window));
+       modest_window_check_dimming_rules_group (MODEST_WINDOW (window), MODEST_DIMMING_RULES_CLIPBOARD);
 
        return MODEST_WINDOW(window);
 }
@@ -1323,6 +1326,7 @@ modest_msg_view_window_find_toolbar_search (GtkWidget *widget,
                        priv->last_search = NULL;
                } else {
                        modest_msg_view_grab_focus (MODEST_MSG_VIEW (priv->msg_view));
+                       hildon_find_toolbar_highlight_entry (HILDON_FIND_TOOLBAR (priv->find_toolbar), TRUE);
                }
        } else {
                if (!modest_isearch_view_search_next (MODEST_ISEARCH_VIEW (priv->msg_view))) {
@@ -1331,6 +1335,7 @@ modest_msg_view_window_find_toolbar_search (GtkWidget *widget,
                        priv->last_search = NULL;
                } else {
                        modest_msg_view_grab_focus (MODEST_MSG_VIEW (priv->msg_view));
+                       hildon_find_toolbar_highlight_entry (HILDON_FIND_TOOLBAR (priv->find_toolbar), TRUE);
                }
        }
        
@@ -1628,6 +1633,9 @@ message_reader_performer (gboolean canceled,
                goto frees;
        }
 
+       /* Register the header - it'll be unregistered in the callback */
+       modest_window_mgr_register_header (modest_runtime_get_window_mgr (), info->header, NULL);
+
        /* New mail operation */
        mail_op = modest_mail_operation_new_with_error_handling (G_OBJECT(parent_window),
                                                                 modest_ui_actions_disk_operations_error_handler, 
@@ -1637,6 +1645,10 @@ message_reader_performer (gboolean canceled,
        modest_mail_operation_get_msg (mail_op, info->header, view_msg_cb, info->row_reference);
        g_object_unref (mail_op);
 
+       /* Update dimming rules */
+       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (parent_window));
+       modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (parent_window));
+
  frees:
        /* Frees. The row_reference will be freed by the view_msg_cb callback */
        g_object_unref (info->header);
@@ -1775,7 +1787,7 @@ modest_msg_view_window_select_next_message (ModestMsgViewWindow *window)
        /* Free */
        g_object_unref (header);
 
-       return retval;          
+       return retval;
 }
 
 gboolean        
@@ -1833,6 +1845,9 @@ view_msg_cb (ModestMailOperation *mail_op,
        ModestMsgViewWindowPrivate *priv = NULL;
        GtkTreeRowReference *row_reference = NULL;
 
+       /* Unregister the header (it was registered before creating the mail operation) */
+       modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (), header);
+
        row_reference = (GtkTreeRowReference *) user_data;
        if (canceled) {
                gtk_tree_row_reference_free (row_reference);
@@ -2737,7 +2752,7 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean
 
        n_attachments = tny_list_get_length (mime_parts);
        if (n_attachments == 1) {
-               const gchar *filename;
+               gchar *filename;
                TnyMimePart *part;
 
                iter = tny_list_create_iterator (mime_parts);
@@ -2746,14 +2761,15 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean
                if (modest_tny_mime_part_is_msg (part)) {
                        TnyHeader *header;
                        header = tny_msg_get_header (TNY_MSG (part));
-                       filename = tny_header_get_subject (header);
+                       filename = tny_header_dup_subject (header);
                        g_object_unref (header);
                        if (filename == NULL)
-                               filename = _("mail_va_no_subject");
+                               filename = g_strdup (_("mail_va_no_subject"));
                } else {
-                       filename = tny_mime_part_get_filename (TNY_MIME_PART (part));
+                       filename = g_strdup (tny_mime_part_get_filename (TNY_MIME_PART (part)));
                }
                confirmation_message = g_strdup_printf (_("mcen_nc_purge_file_text"), filename);
+               g_free (filename);
                g_object_unref (part);
        } else {
                confirmation_message = g_strdup_printf (ngettext("mcen_nc_purge_file_text", 
@@ -2816,18 +2832,21 @@ update_window_title (ModestMsgViewWindow *window)
        ModestMsgViewWindowPrivate *priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
        TnyMsg *msg = NULL;
        TnyHeader *header = NULL;
-       const gchar *subject = NULL;
+       gchar *subject = NULL;
        
        msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
 
        if (msg != NULL) {
                header = tny_msg_get_header (msg);
-               subject = tny_header_get_subject (header);
+               subject = tny_header_dup_subject (header);
+               g_object_unref (header);
                g_object_unref (msg);
        }
 
-       if ((subject == NULL)||(subject[0] == '\0'))
-               subject = _("mail_va_no_subject");
+       if ((subject == NULL)||(subject[0] == '\0')) {
+               g_free (subject);
+               subject = g_strdup (_("mail_va_no_subject"));
+       }
 
        gtk_window_set_title (GTK_WINDOW (window), subject);
 }