X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-msg-edit-window.c;h=0a2b46b655a80a986b18fb9f56ef95639fbd60c7;hp=e1a24f344051995f88a8790aa45de6189c75c7a9;hb=HEAD;hpb=61db36b90ed6ee68a3f50894d0020884c0b2b284 diff --git a/src/widgets/modest-msg-edit-window.c b/src/widgets/modest-msg-edit-window.c index e1a24f3..0a2b46b 100644 --- a/src/widgets/modest-msg-edit-window.c +++ b/src/widgets/modest-msg-edit-window.c @@ -346,13 +346,15 @@ struct _ModestMsgEditWindowPrivate { GtkWidget *brand_icon; GtkWidget *brand_label; GtkWidget *brand_container; + + TnyList *custom_header_pairs; }; #define MODEST_MSG_EDIT_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ MODEST_TYPE_MSG_EDIT_WINDOW, \ ModestMsgEditWindowPrivate)) /* globals */ -static GtkWindowClass *parent_class = NULL; +static ModestWindowParentClass *parent_class = NULL; /* uncomment the following if you have defined any signals */ /* static guint signals[LAST_SIGNAL] = {0}; */ @@ -475,6 +477,7 @@ modest_msg_edit_window_init (ModestMsgEditWindow *obj) priv->references = NULL; priv->in_reply_to = NULL; priv->max_chars_banner = NULL; + priv->custom_header_pairs = TNY_LIST (tny_simple_list_new ()); if (!is_wp_text_buffer_started) { is_wp_text_buffer_started = TRUE; @@ -918,7 +921,7 @@ init_window (ModestMsgEditWindow *obj) * that uses it, because the ModestSelectorPicker uses the ID opaquely, * so it can't know how to manage its memory. */ priv->from_field = modest_toolkit_factory_create_selector (modest_runtime_get_toolkit_factory (), - NULL, g_str_equal); + NULL, g_str_equal, FALSE); modest_selector_set_value_max_chars (priv->from_field, MAX_FROM_VALUE); if (GTK_IS_COMBO_BOX (priv->from_field)) { from_caption = modest_toolkit_utils_create_captioned (title_size_group, NULL, @@ -1078,12 +1081,6 @@ init_window (ModestMsgEditWindow *obj) gtk_box_pack_start (GTK_BOX (window_box), priv->scrollable, TRUE, TRUE, 0); - /* Set window icon */ - window_icon = modest_platform_get_icon (MODEST_APP_MSG_EDIT_ICON, MODEST_ICON_SIZE_BIG); - if (window_icon) { - gtk_window_set_icon (GTK_WINDOW (obj), window_icon); - g_object_unref (window_icon); - } } static void @@ -1114,6 +1111,8 @@ modest_msg_edit_window_finalize (GObject *obj) { ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (obj); + g_object_unref (priv->custom_header_pairs); + if (priv->max_chars_banner) { g_object_weak_unref (G_OBJECT (priv->max_chars_banner), (GWeakNotify) max_chars_banner_unref, obj); priv->max_chars_banner = FALSE; @@ -1397,6 +1396,7 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich) TnyFolder *msg_folder; gboolean is_html = FALSE; gboolean field_view_set; + TnyList *orig_header_pairs; g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (self)); g_return_if_fail (TNY_IS_MSG (msg)); @@ -1532,6 +1532,11 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich) g_object_unref (msg_folder); } + orig_header_pairs = TNY_LIST (tny_simple_list_new ()); + tny_mime_part_get_header_pairs (TNY_MIME_PART (msg), orig_header_pairs); + modest_msg_edit_window_set_custom_header_pairs (self, orig_header_pairs); + g_object_unref (orig_header_pairs); + g_free (to); g_free (subject); g_free (cc); @@ -2035,6 +2040,7 @@ modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window) g_object_unref (att_iter); data->priority_flags = priv->priority_flags; + data->custom_header_pairs = tny_list_copy (priv->custom_header_pairs); return data; } @@ -2067,6 +2073,8 @@ modest_msg_edit_window_free_msg_data (ModestMsgEditWindow *edit_window, g_free (data->account_name); g_free (data->references); g_free (data->in_reply_to); + + g_object_unref (data->custom_header_pairs); if (data->draft_msg != NULL) { g_object_unref (data->draft_msg); @@ -4674,16 +4682,6 @@ setup_menu (ModestMsgEditWindow *self) priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self); /* Settings menu buttons */ - modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_editor_checknames"), NULL, - MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_on_check_names), - NULL); - modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_viewer_addtocontacts"), NULL, - MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_add_to_contacts), - MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_add_to_contacts)); - modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_inbox_undo"), "z", - MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_on_undo), - MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_undo)); - priv->cc_button = modest_toolkit_factory_create_check_menu (modest_runtime_get_toolkit_factory (), _("mcen_me_editor_showcc")); modest_togglable_set_active (priv->cc_button, @@ -4703,6 +4701,22 @@ setup_menu (ModestMsgEditWindow *self) g_signal_connect (G_OBJECT (priv->bcc_button), "toggled", G_CALLBACK (on_bcc_button_toggled), (gpointer) self); + priv->show_toolbar_button = modest_toolkit_factory_create_check_menu (modest_runtime_get_toolkit_factory (), + _("mcen_bd_show_toolbar")); + modest_togglable_set_active (priv->show_toolbar_button, + FALSE); + modest_window_add_item_to_menu (MODEST_WINDOW (self), priv->show_toolbar_button, + MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_editor_show_toolbar)); + gtk_widget_show (priv->show_toolbar_button); + g_signal_connect (G_OBJECT (priv->show_toolbar_button), "toggled", + G_CALLBACK (on_show_toolbar_button_toggled), (gpointer) self); + + modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_message_settings"), NULL, + MODEST_WINDOW_MENU_CALLBACK (on_message_settings), + NULL); + modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_editor_checknames"), NULL, + MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_on_check_names), + NULL); modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_editor_attach_inlineimage"), NULL, MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_on_insert_image), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_set_style)); @@ -4712,23 +4726,14 @@ setup_menu (ModestMsgEditWindow *self) modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_inbox_remove_attachments"), NULL, MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_on_remove_attachments), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_editor_remove_attachment)); - modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_message_settings"), NULL, - MODEST_WINDOW_MENU_CALLBACK (on_message_settings), - NULL); + modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_viewer_addtocontacts"), NULL, + MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_add_to_contacts), + MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_add_to_contacts)); + modest_window_add_to_menu (MODEST_WINDOW (self), _("mcen_me_viewer_find"), "f", MODEST_WINDOW_MENU_CALLBACK (modest_ui_actions_on_toggle_find_in_page), NULL); - priv->show_toolbar_button = modest_toolkit_factory_create_check_menu (modest_runtime_get_toolkit_factory (), - _("mcen_bd_show_toolbar")); - modest_togglable_set_active (priv->show_toolbar_button, - FALSE); - modest_window_add_item_to_menu (MODEST_WINDOW (self), priv->show_toolbar_button, - MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_editor_show_toolbar)); - gtk_widget_show (priv->show_toolbar_button); - g_signal_connect (G_OBJECT (priv->show_toolbar_button), "toggled", - G_CALLBACK (on_show_toolbar_button_toggled), (gpointer) self); - } static void @@ -4739,41 +4744,54 @@ emit_open_addressbook (GtkButton *button, } static GtkWidget * -_create_addressbook_box (GtkSizeGroup *title_size_group, GtkSizeGroup *value_size_group, - const gchar *label, GtkWidget *control) +_create_addressbook_box (GtkSizeGroup *title_size_group, + GtkSizeGroup *value_size_group, + const gchar *label, + GtkWidget *control) { GtkWidget *abook_button; GtkWidget *align; GtkWidget *box; - GtkWidget *label_widget; + GtkWidget *label_widget; box = gtk_hbox_new (FALSE, 0); - align = gtk_alignment_new (0.0, 0.0, 1.0, 0.0); + align = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); +#ifndef MODEST_TOOLKIT_HILDON2 + gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, MODEST_MARGIN_DOUBLE, MODEST_MARGIN_DOUBLE); +#else gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, 0, MODEST_MARGIN_DEFAULT); +#endif #ifdef MODEST_TOOLKIT_HILDON2 - abook_button = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT); + abook_button = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT); #else - abook_button = gtk_button_new (); + abook_button = gtk_button_new (); #endif label_widget = gtk_label_new (label); gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5); - gtk_container_add (GTK_CONTAINER (abook_button), label_widget); - gtk_container_add (GTK_CONTAINER (align), abook_button); - gtk_widget_set_size_request (label_widget, 148 - MODEST_MARGIN_DOUBLE, -1); + gtk_container_add (GTK_CONTAINER (abook_button), label_widget); + + gtk_container_add (GTK_CONTAINER (align), abook_button); +#ifdef MODEST_TOOLKIT_HILDON2 + gtk_widget_set_size_request (label_widget, 148 - MODEST_MARGIN_DOUBLE, -1); +#endif gtk_box_pack_start (GTK_BOX (box), align, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (box), control, TRUE, TRUE, 0); if (title_size_group) +#ifdef MODEST_TOOLKIT_HILDON2 gtk_size_group_add_widget (title_size_group, label_widget); +#else + gtk_size_group_add_widget (title_size_group, abook_button); +#endif if (value_size_group) gtk_size_group_add_widget (value_size_group, control); - g_signal_connect (G_OBJECT (abook_button), "clicked", - G_CALLBACK (emit_open_addressbook), control); - - return box; + g_signal_connect (G_OBJECT (abook_button), "clicked", + G_CALLBACK (emit_open_addressbook), control); + + return box; } static void @@ -4849,3 +4867,17 @@ modest_msg_edit_window_has_pending_addresses (ModestMsgEditWindow *self) else return TRUE; } + +void +modest_msg_edit_window_set_custom_header_pairs (ModestMsgEditWindow *self, + TnyList *header_pairs) +{ + ModestMsgEditWindowPrivate *priv = NULL; + + g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (self)); + g_return_if_fail (TNY_IS_LIST (header_pairs)); + + priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self); + g_object_unref (priv->custom_header_pairs); + priv->custom_header_pairs = tny_list_copy (header_pairs); +}