* Added two missing "debian", because CURDIR is the root folder
[modest] / src / maemo / modest-msg-edit-window.c
index 6ea1354..3478e21 100644 (file)
@@ -381,6 +381,9 @@ modest_msg_edit_window_init (ModestMsgEditWindow *obj)
        priv->sent = FALSE;
 
        priv->last_vadj_upper = 0;
+
+       modest_window_mgr_register_help_id (modest_runtime_get_window_mgr(),
+                                           GTK_WINDOW(obj),"applications_email_editor");
 }
 
 
@@ -873,7 +876,7 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich)
        cc      = tny_header_get_cc (header);
        bcc     = tny_header_get_bcc (header);
        subject = tny_header_get_subject (header);
-       priority_flags = tny_header_get_flags (header) & TNY_HEADER_FLAG_PRIORITY;
+       priority_flags = tny_header_get_priority (header);
 
        if (to)
                modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->to_field),  to);
@@ -968,6 +971,9 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich)
        if (msg_folder) {               
                if (modest_tny_folder_is_local_folder (msg_folder)) {
                        TnyFolderType type = modest_tny_folder_get_local_or_mmc_folder_type (msg_folder);
+                       if (type == TNY_FOLDER_TYPE_INVALID)
+                               g_warning ("%s: BUG: TNY_FOLDER_TYPE_INVALID", __FUNCTION__);
+                       
                        if (type == TNY_FOLDER_TYPE_DRAFTS) 
                                priv->draft_msg = g_object_ref(msg);
                        if (type == TNY_FOLDER_TYPE_OUTBOX)
@@ -1492,6 +1498,7 @@ modest_msg_edit_window_free_msg_data (ModestMsgEditWindow *edit_window,
        g_free (data->to);
        g_free (data->cc);
        g_free (data->bcc);
+       g_free (data->from);
        g_free (data->subject);
        g_free (data->plain_body);
        g_free (data->html_body);
@@ -1729,7 +1736,7 @@ text_buffer_refresh_attributes (WPTextBuffer *buffer, ModestMsgEditWindow *windo
 
 }
 
-
+#ifdef MODEST_HILDON_VERSION_0
 void
 modest_msg_edit_window_select_color (ModestMsgEditWindow *window)
 {
@@ -1738,43 +1745,26 @@ modest_msg_edit_window_select_color (ModestMsgEditWindow *window)
        ModestMsgEditWindowPrivate *priv;
        GtkWidget *dialog = NULL;
        gint response;
-       const GdkColor *new_color = NULL;
-       
+       GdkColor *new_color = NULL;
+
        priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
        wp_text_buffer_get_attributes (WP_TEXT_BUFFER (priv->text_buffer), buffer_format, FALSE);
        
-#ifdef MODEST_HILDON_VERSION_0 
        dialog = hildon_color_selector_new (GTK_WINDOW (window));
        hildon_color_selector_set_color (HILDON_COLOR_SELECTOR (dialog), &(buffer_format->color));
-#else
-       dialog = hildon_color_chooser_new ();
-       hildon_color_chooser_set_color (HILDON_COLOR_CHOOSER (dialog), &(buffer_format->color));
-#endif /*MODEST_HILDON_VERSION_0*/             
        g_free (buffer_format);
 
-       response = gtk_dialog_run (GTK_DIALOG (dialog));
-       switch (response) {
-       case GTK_RESPONSE_OK: {
-#ifdef MODEST_HILDON_VERSION_0
+       if (gtk_dialog_run (GTK_DIALOG (dialog) == GTK_RESPONSE_OK)) {
                new_color = hildon_color_selector_get_color (HILDON_COLOR_SELECTOR (dialog));
-#else
-               GdkColor col;
-               hildon_color_chooser_get_color (HILDON_COLOR_CHOOSER(dialog), &col);
-               new_color = &col;
-#endif /*MODEST_HILDON_VERSION_0*/
-       }
-
-       break;
-       default:
-               break;
+               if (new_color != NULL) {
+                       wp_text_buffer_set_attribute (WP_TEXT_BUFFER (priv->text_buffer), WPT_FORECOLOR,
+                                                     (gpointer) new_color);
+               }
        }
        gtk_widget_destroy (dialog);
-
-       if (new_color != NULL)
-               wp_text_buffer_set_attribute (WP_TEXT_BUFFER (priv->text_buffer), WPT_FORECOLOR, (gpointer) new_color);
-
 }
 
+
 void
 modest_msg_edit_window_select_background_color (ModestMsgEditWindow *window)
 {
@@ -1788,36 +1778,70 @@ modest_msg_edit_window_select_background_color (ModestMsgEditWindow *window)
        priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
        old_color = (GdkColor*)wp_text_buffer_get_background_color (WP_TEXT_BUFFER (priv->text_buffer));
        
-#ifdef MODEST_HILDON_VERSION_0 
        dialog = hildon_color_selector_new (GTK_WINDOW (window));
        hildon_color_selector_set_color (HILDON_COLOR_SELECTOR (dialog),(GdkColor*)old_color);
-#else
-       dialog = hildon_color_chooser_new ();
-       hildon_color_chooser_set_color (HILDON_COLOR_CHOOSER (dialog),(GdkColor*)old_color);
-#endif /*MODEST_HILDON_VERSION_9*/             
 
-       response = gtk_dialog_run (GTK_DIALOG (dialog));
-       switch (response) {
-       case GTK_RESPONSE_OK: {
-#ifdef MODEST_HILDON_VERSION_0
+       if (gtk_dialog_run (GTK_DIALOG (dialog) == GTK_RESPONSE_OK)) {
                new_color = hildon_color_selector_get_color (HILDON_COLOR_SELECTOR (dialog));
-#else
+               if (new_color != NULL)
+                       wp_text_buffer_set_background_color (WP_TEXT_BUFFER (priv->text_buffer), new_color);
+       }
+       gtk_widget_destroy (dialog);
+
+}
+
+#else 
+void
+modest_msg_edit_window_select_color (ModestMsgEditWindow *window)
+{
+       
+       WPTextBufferFormat *buffer_format = g_new0 (WPTextBufferFormat, 1);
+       ModestMsgEditWindowPrivate *priv;
+       GtkWidget *dialog = NULL;
+
+       priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
+       wp_text_buffer_get_attributes (WP_TEXT_BUFFER (priv->text_buffer), buffer_format, FALSE);
+               
+       dialog = hildon_color_chooser_new ();
+       hildon_color_chooser_set_color (HILDON_COLOR_CHOOSER (dialog), &(buffer_format->color));
+       g_free (buffer_format);
+
+       if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
                GdkColor col;
                hildon_color_chooser_get_color (HILDON_COLOR_CHOOSER(dialog), &col);
-               new_color = &col;
-#endif /*MODEST_HILDON_VERSION_0*/
-          }
-               break;
-       default:
-               break;
+               wp_text_buffer_set_attribute (WP_TEXT_BUFFER (priv->text_buffer), WPT_FORECOLOR,
+                                             (gpointer) &col);
        }
        gtk_widget_destroy (dialog);
+}
 
-       if (new_color != NULL)
-               wp_text_buffer_set_background_color (WP_TEXT_BUFFER (priv->text_buffer), new_color);
 
+void
+modest_msg_edit_window_select_background_color (ModestMsgEditWindow *window)
+{
+       
+       ModestMsgEditWindowPrivate *priv;
+       GtkWidget *dialog = NULL;
+       GdkColor *old_color = NULL;
+       
+       priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
+       old_color = (GdkColor*)wp_text_buffer_get_background_color (WP_TEXT_BUFFER (priv->text_buffer));
+       
+       dialog = hildon_color_chooser_new ();
+       hildon_color_chooser_set_color (HILDON_COLOR_CHOOSER (dialog),(GdkColor*)old_color);
+
+       if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) { 
+               GdkColor col;
+               hildon_color_chooser_get_color (HILDON_COLOR_CHOOSER(dialog), &col);
+               wp_text_buffer_set_background_color (WP_TEXT_BUFFER (priv->text_buffer), &col);
+       }
+       gtk_widget_destroy (dialog);
 }
 
+#endif /*!MODEST_HILDON_VERSION_0*/
+
+
+
 static TnyStream* create_stream_for_uri (const gchar* uri)
 {
        if (!uri)
@@ -1929,16 +1953,12 @@ modest_msg_edit_window_insert_image (ModestMsgEditWindow *window)
 
 void
 modest_msg_edit_window_offer_attach_file (ModestMsgEditWindow *window)
-{
-       
-       ModestMsgEditWindowPrivate *priv;
+{      
        GtkWidget *dialog = NULL;
        gint response = 0;
        GSList *uris = NULL;
        GSList *uri_node;
        
-       priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
-       
        dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_OPEN);
        gtk_window_set_title (GTK_WINDOW (dialog), _("mcen_ti_select_attachment_title"));
        gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
@@ -2046,15 +2066,27 @@ modest_msg_edit_window_remove_attachments (ModestMsgEditWindow *window,
                gboolean dialog_response;
                GList *node;
                gchar *message = NULL;
-               const gchar *filename = NULL;
+               gchar *filename = NULL;
 
                if (att_list->next == NULL) {
-                       filename = tny_mime_part_get_filename (TNY_MIME_PART (att_list->data));
+                       if (TNY_IS_MSG (att_list->data)) {
+                               TnyHeader *header = tny_msg_get_header (TNY_MSG (att_list->data));
+                               if (header) {
+                                       filename = g_strdup (tny_header_get_subject (header));
+                                       g_object_unref (header);
+                               }
+                               if (filename == NULL) {
+                                       filename = g_strdup (_("mail_va_no_subject"));
+                               }
+                       } else {
+                               filename = g_strdup (tny_mime_part_get_filename (TNY_MIME_PART (att_list->data)));
+                       }
                } else {
-                       filename = "";
+                       filename = g_strdup ("");
                }
                message = g_strdup_printf (ngettext("emev_nc_delete_attachment", "emev_nc_delete_attachments",
                                                    att_list->next == NULL), filename);
+               g_free (filename);
                confirmation_dialog = hildon_note_new_confirmation (GTK_WINDOW (window), message);
                g_free (message);
                dialog_response = (gtk_dialog_run (GTK_DIALOG (confirmation_dialog))==GTK_RESPONSE_OK);
@@ -2451,7 +2483,6 @@ modest_msg_edit_window_set_priority_flags (ModestMsgEditWindow *window,
 
        priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
        parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
-       priority_flags = priority_flags & (TNY_HEADER_FLAG_PRIORITY);
 
        if (priv->priority_flags != priority_flags) {
                GtkAction *priority_action = NULL;
@@ -3179,23 +3210,19 @@ modest_msg_edit_window_set_draft (ModestMsgEditWindow *window,
        ModestWindowMgr *mgr = modest_runtime_get_window_mgr ();
 
        if (priv->draft_msg != NULL) {
-               header = tny_msg_get_header (priv->draft_msg);
-               if (TNY_IS_HEADER (header)) {
-                       modest_window_mgr_unregister_header (mgr, header);
-               }
                g_object_unref (priv->draft_msg);
        }
 
        if (draft != NULL) {
                g_object_ref (draft);
                header = tny_msg_get_header (draft);
-               if (TNY_IS_HEADER (header))
-                       modest_window_mgr_register_header (mgr, header);
                if (priv->msg_uid) {
                        g_free (priv->msg_uid);
                        priv->msg_uid = NULL;
                }
                priv->msg_uid = modest_tny_folder_get_header_unique_id (header);
+               if (GTK_WIDGET_REALIZED (window))
+                       modest_window_mgr_register_window (mgr, MODEST_WINDOW (window));
        }
 
        priv->draft_msg = draft;