From: Jose Dapena Paz Date: Sun, 10 May 2009 14:39:08 +0000 (+0200) Subject: Use GtkSourceView for editor instead of GtkTextView X-Git-Tag: 3.0.17-rc4~10 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=f64c740f4ee8ab71d5842f369beaced86ab521d5 Use GtkSourceView for editor instead of GtkTextView * configure.ac: add detection of GtkSourceView dependency for gnome. * src/gnome/modest-msg-edit-window.c: use GtkSourceView instead of TextView. We also set a visible margin of 78 characters (good hint for using typical standards on writing mails). Also fix priority settings. * src/gnome/ui/modest-msg-edit-window-ui.xml: remove formatting options. * src/widgets/modest-gtkhtml-msg-view.c: only show the priority in a separate line for hildon 2.2. --- diff --git a/configure.ac b/configure.ac index 0133311..a0662b0 100644 --- a/configure.ac +++ b/configure.ac @@ -286,7 +286,7 @@ AC_SUBST(MAEMO_LAUNCHER_MODEST_LDFLAGS) have_easysetup=false if test "x$with_toolkit" == "xgtk"; then - PKG_CHECK_MODULES(MODEST_TOOLKIT,glib-2.0 >= 2.8 gtk+-2.0 >= 2.10 libnotify) + PKG_CHECK_MODULES(MODEST_TOOLKIT,glib-2.0 >= 2.8 gtk+-2.0 >= 2.10 libnotify gtksourceview-2.0) AC_DEFINE_UNQUOTED(MODEST_TOOLKIT_GTK, 1, ["Whether modest is being build for the gtk toolkit."]) MODEST_TOOLKIT_DIR=gnome else diff --git a/src/gnome/modest-msg-edit-window.c b/src/gnome/modest-msg-edit-window.c index 0103993..de5044a 100644 --- a/src/gnome/modest-msg-edit-window.c +++ b/src/gnome/modest-msg-edit-window.c @@ -50,6 +50,7 @@ #include #include #include +#include static void modest_msg_edit_window_class_init (ModestMsgEditWindowClass *klass); static void modest_msg_edit_window_init (ModestMsgEditWindow *obj); @@ -286,9 +287,17 @@ init_window (ModestMsgEditWindow *obj, const gchar* account) gtk_table_attach_defaults (GTK_TABLE(header_table), priv->subject_field,1,2,4,5); gtk_table_attach_defaults (GTK_TABLE(header_table), priv->attachments_view,1,2,5,6); - priv->msg_body = gtk_text_view_new (); + priv->msg_body = gtk_source_view_new (); + gtk_source_view_set_highlight_current_line (GTK_SOURCE_VIEW (priv->msg_body), TRUE); + gtk_source_view_set_right_margin_position (GTK_SOURCE_VIEW (priv->msg_body), 78); + gtk_source_view_set_show_right_margin (GTK_SOURCE_VIEW (priv->msg_body), TRUE); gtk_text_view_set_editable (GTK_TEXT_VIEW (priv->msg_body), TRUE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (priv->msg_body), GTK_WRAP_WORD_CHAR); + + PangoFontDescription *font_desc; + font_desc = pango_font_description_from_string ("Monospace"); + gtk_widget_modify_font (priv->msg_body, font_desc); + pango_font_description_free (font_desc); main_vbox = gtk_vbox_new (FALSE, 0); @@ -496,6 +505,12 @@ modest_msg_edit_window_new (TnyMsg *msg, const gchar *account, modest_msg_edit_toggle_action_entries, G_N_ELEMENTS (modest_msg_edit_toggle_action_entries), self); + gtk_action_group_add_radio_actions (action_group, + modest_msg_edit_priority_action_entries, + G_N_ELEMENTS (modest_msg_edit_priority_action_entries), + 0, + G_CALLBACK (modest_ui_actions_msg_edit_on_change_priority), + self); gtk_ui_manager_insert_action_group (parent_priv->ui_manager, action_group, 0); g_object_unref (action_group); diff --git a/src/gnome/ui/modest-msg-edit-window-ui.xml b/src/gnome/ui/modest-msg-edit-window-ui.xml index e5a2ca8..a4844d9 100644 --- a/src/gnome/ui/modest-msg-edit-window-ui.xml +++ b/src/gnome/ui/modest-msg-edit-window-ui.xml @@ -68,21 +68,6 @@ - - - - - - - - - - - - - - - @@ -107,11 +92,6 @@ - - - - - diff --git a/src/widgets/modest-gtkhtml-msg-view.c b/src/widgets/modest-gtkhtml-msg-view.c index 469d6d7..4d40ed3 100644 --- a/src/widgets/modest-gtkhtml-msg-view.c +++ b/src/widgets/modest-gtkhtml-msg-view.c @@ -238,16 +238,19 @@ struct _ModestGtkhtmlMsgViewPrivate { GtkWidget *body_view; GtkWidget *mail_header_view; GtkWidget *attachments_view; - GtkWidget *priority_icon; TnyMsg *msg; /* embedded elements */ GtkWidget *headers_box; - GtkWidget *priority_box; GtkWidget *html_scroll; GtkWidget *attachments_box; +#ifdef MODEST_TOOLKIT_HILDON2 + GtkWidget *priority_box; + GtkWidget *priority_icon; +#endif + /* internal adjustments for set_scroll_adjustments */ GtkAdjustment *hadj; GtkAdjustment *vadj; @@ -1144,7 +1147,8 @@ modest_gtkhtml_msg_view_init (ModestGtkhtmlMsgView *obj) if (priv->mail_header_view) gtk_box_pack_start (GTK_BOX(priv->headers_box), priv->mail_header_view, FALSE, FALSE, 0); - + +#ifdef MODEST_TOOLKIT_HILDON2 priv->priority_icon = gtk_image_new (); gtk_misc_set_alignment (GTK_MISC (priv->priority_icon), 0.0, 0.5); if (priv->priority_icon) { @@ -1156,7 +1160,7 @@ modest_gtkhtml_msg_view_init (ModestGtkhtmlMsgView *obj) gtk_widget_hide_all (priv->priority_box); } - +#endif if (priv->attachments_view) { #ifndef MODEST_TOOLKIT_HILDON2 gchar *att_label = g_strconcat (_("mcen_me_viewer_attachments"), ":", NULL); @@ -1690,7 +1694,9 @@ set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg) modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), NULL); gtk_widget_hide_all (priv->mail_header_view); gtk_widget_hide_all (priv->attachments_box); +#ifdef MODEST_TOOKIT_HILDON2 gtk_widget_hide_all (priv->priority_box); +#endif gtk_widget_set_no_show_all (priv->mail_header_view, TRUE); tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view)); gtk_widget_queue_resize (GTK_WIDGET(self)); @@ -1741,11 +1747,15 @@ set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg) set_priority (self, tny_header_get_flags (header)); gtk_widget_show (priv->body_view); +#ifdef MODEST_TOOLKIT_HILDON2 gtk_widget_set_no_show_all (priv->priority_box, TRUE); +#endif gtk_widget_set_no_show_all (priv->attachments_box, TRUE); gtk_widget_show_all (priv->mail_header_view); gtk_widget_set_no_show_all (priv->attachments_box, FALSE); +#ifdef MODEST_TOOLKIT_HILDON2 gtk_widget_set_no_show_all (priv->priority_box, FALSE); +#endif gtk_widget_set_no_show_all (priv->mail_header_view, TRUE); gtk_widget_queue_resize (GTK_WIDGET(self)); gtk_widget_queue_draw (GTK_WIDGET(self)); @@ -1797,7 +1807,9 @@ set_header (ModestGtkhtmlMsgView *self, TnyHeader *header) modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), NULL); gtk_widget_show_all (priv->mail_header_view); gtk_widget_hide_all (priv->attachments_box); +#ifdef MODEST_TOOLKIT_HILDON2 gtk_widget_hide_all (priv->priority_box); +#endif gtk_widget_set_no_show_all (priv->mail_header_view, TRUE); tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view)); gtk_widget_queue_resize (GTK_WIDGET(self)); @@ -1868,15 +1880,17 @@ static void set_priority (ModestGtkhtmlMsgView *self, TnyHeaderFlags flags) { ModestGtkhtmlMsgViewPrivate *priv; - TnyHeaderFlags priority_flags; - gboolean show_priority = FALSE; g_return_if_fail (MODEST_IS_GTKHTML_MSG_VIEW (self)); priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE (self); modest_mail_header_view_set_priority (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view), flags); - priority_flags = flags & TNY_HEADER_FLAG_PRIORITY_MASK; +#ifdef MODEST_TOOLKIT_HILDON2 + gboolean show_priority = FALSE; + TnyHeaderFlags priority_flags; + + priority_flags = flags & TNY_HEADER_FLAG_PRIORITY_MASK; if (priority_flags == TNY_HEADER_FLAG_HIGH_PRIORITY) { show_priority = TRUE; gtk_image_set_from_icon_name (GTK_IMAGE (priv->priority_icon), MODEST_HEADER_ICON_HIGH, GTK_ICON_SIZE_MENU); @@ -1885,7 +1899,6 @@ set_priority (ModestGtkhtmlMsgView *self, TnyHeaderFlags flags) gtk_image_set_from_icon_name (GTK_IMAGE (priv->priority_icon), MODEST_HEADER_ICON_LOW, GTK_ICON_SIZE_MENU); } -#ifdef MODEST_TOOLKIT_HILDON2 if (show_priority && MODEST_IS_COMPACT_MAIL_HEADER_VIEW (priv->mail_header_view)) { gtk_widget_show_all (priv->priority_box); } else {