From 8cd0b25460e162f0b82a426cbeecfd6783bb963f Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Tue, 3 Nov 2009 19:20:10 +0100 Subject: [PATCH] Migrate usage of find toolbar in editor to use ModestISearchToolbar --- src/hildon2/modest-msg-edit-window.c | 54 ++++++++++++++++++---------------- src/modest-ui-actions.c | 4 +-- src/widgets/modest-msg-edit-window.h | 8 ++--- src/widgets/modest-toolkit-factory.c | 24 +++++++++++++++ src/widgets/modest-toolkit-factory.h | 4 +++ 5 files changed, 62 insertions(+), 32 deletions(-) diff --git a/src/hildon2/modest-msg-edit-window.c b/src/hildon2/modest-msg-edit-window.c index 5d5433c..d5d70ae 100644 --- a/src/hildon2/modest-msg-edit-window.c +++ b/src/hildon2/modest-msg-edit-window.c @@ -65,6 +65,7 @@ #include #include #include +#include #include #include #include "modest-msg-edit-window-ui-dimming.h" @@ -142,10 +143,10 @@ static void subject_field_move_cursor (GtkEntry *entry, static void update_window_title (ModestMsgEditWindow *window); /* Find toolbar */ -static void modest_msg_edit_window_find_toolbar_search (GtkWidget *widget, - ModestMsgEditWindow *window); -static void modest_msg_edit_window_find_toolbar_close (GtkWidget *widget, - ModestMsgEditWindow *window); +static void modest_msg_edit_window_isearch_toolbar_search (GtkWidget *widget, + ModestMsgEditWindow *window); +static void modest_msg_edit_window_isearch_toolbar_close (GtkWidget *widget, + ModestMsgEditWindow *window); static gboolean gtk_text_iter_forward_search_insensitive (const GtkTextIter *iter, const gchar *str, GtkTextIter *match_start, @@ -285,7 +286,7 @@ struct _ModestMsgEditWindowPrivate { gint current_size_index; GtkWidget *size_tool_button_label; - GtkWidget *find_toolbar; + GtkWidget *isearch_toolbar; gchar *last_search; GtkWidget *font_dialog; @@ -423,7 +424,7 @@ modest_msg_edit_window_init (ModestMsgEditWindow *obj) priv->priority_flags = 0; - priv->find_toolbar = NULL; + priv->isearch_toolbar = NULL; priv->last_search = NULL; priv->draft_msg = NULL; @@ -775,8 +776,10 @@ connect_signals (ModestMsgEditWindow *obj) g_signal_connect_after (G_OBJECT (priv->subject_field), "move-cursor", G_CALLBACK (subject_field_move_cursor), obj); g_signal_connect (G_OBJECT (priv->subject_field), "insert-text", G_CALLBACK (subject_field_insert_text), obj); - g_signal_connect (G_OBJECT (priv->find_toolbar), "search", G_CALLBACK (modest_msg_edit_window_find_toolbar_search), obj); - g_signal_connect (G_OBJECT (priv->find_toolbar), "close", G_CALLBACK (modest_msg_edit_window_find_toolbar_close), obj); + g_signal_connect (G_OBJECT (priv->isearch_toolbar), "isearch-search", + G_CALLBACK (modest_msg_edit_window_isearch_toolbar_search), obj); + g_signal_connect (G_OBJECT (priv->isearch_toolbar), "isearch-close", + G_CALLBACK (modest_msg_edit_window_isearch_toolbar_close), obj); priv->clipboard_change_handler_id = g_signal_connect (G_OBJECT (gtk_clipboard_get (GDK_SELECTION_PRIMARY)), "owner-change", @@ -996,8 +999,9 @@ init_window (ModestMsgEditWindow *obj) #endif wp_text_buffer_reset_buffer (WP_TEXT_BUFFER (priv->text_buffer), TRUE); - priv->find_toolbar = hildon_find_toolbar_new (NULL); - gtk_widget_set_no_show_all (priv->find_toolbar, TRUE); + priv->isearch_toolbar = modest_toolkit_factory_create_isearch_toolbar (modest_runtime_get_toolkit_factory (), + NULL); + gtk_widget_set_no_show_all (priv->isearch_toolbar, TRUE); /* g_signal_connect (G_OBJECT (obj), "key_pressed", G_CALLBACK (on_key_pressed), NULL) */ @@ -1669,7 +1673,7 @@ modest_msg_edit_window_new (TnyMsg *msg, const gchar *account_name, const gchar hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (hildon_picker_button_get_selector (HILDON_PICKER_BUTTON (priv->from_field))))); modest_msg_edit_window_setup_toolbar (MODEST_MSG_EDIT_WINDOW (obj)); - modest_window_add_toolbar (MODEST_WINDOW (obj), GTK_TOOLBAR (priv->find_toolbar)); + modest_window_add_toolbar (MODEST_WINDOW (obj), GTK_TOOLBAR (priv->isearch_toolbar)); /* Init window */ connect_signals (MODEST_MSG_EDIT_WINDOW(obj)); @@ -3653,21 +3657,21 @@ subject_field_insert_text (GtkEditable *editable, } void -modest_msg_edit_window_toggle_find_toolbar (ModestMsgEditWindow *window, - gboolean show) +modest_msg_edit_window_toggle_isearch_toolbar (ModestMsgEditWindow *window, + gboolean show) { ModestMsgEditWindowPrivate *priv = NULL; g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window)); priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window); - gtk_widget_set_no_show_all (priv->find_toolbar, FALSE); + gtk_widget_set_no_show_all (priv->isearch_toolbar, FALSE); if (show) { - gtk_widget_show_all (priv->find_toolbar); - hildon_find_toolbar_highlight_entry (HILDON_FIND_TOOLBAR (priv->find_toolbar), TRUE); + gtk_widget_show_all (priv->isearch_toolbar); + modest_isearch_toolbar_highlight_entry (MODEST_ISEARCH_TOOLBAR (priv->isearch_toolbar), TRUE); } else { - gtk_widget_hide_all (priv->find_toolbar); + gtk_widget_hide_all (priv->isearch_toolbar); gtk_widget_grab_focus (priv->msg_body); } } @@ -3732,10 +3736,10 @@ gtk_text_iter_forward_search_insensitive (const GtkTextIter *iter, static void -modest_msg_edit_window_find_toolbar_search (GtkWidget *widget, - ModestMsgEditWindow *window) +modest_msg_edit_window_isearch_toolbar_search (GtkWidget *widget, + ModestMsgEditWindow *window) { - gchar *current_search = NULL; + const gchar *current_search = NULL; ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window); gboolean result; GtkTextIter selection_start, selection_end; @@ -3749,9 +3753,8 @@ modest_msg_edit_window_find_toolbar_search (GtkWidget *widget, return; } - g_object_get (G_OBJECT (widget), "prefix", ¤t_search, NULL); + current_search = modest_isearch_toolbar_get_search (MODEST_ISEARCH_TOOLBAR (widget)); if ((current_search == NULL) || (strcmp (current_search, "") == 0)) { - g_free (current_search); g_free (priv->last_search); priv->last_search = NULL; /* Information banner about empty search */ @@ -3790,7 +3793,6 @@ modest_msg_edit_window_find_toolbar_search (GtkWidget *widget, g_free (priv->last_search); priv->last_search = NULL; } - g_free (current_search); } gboolean @@ -3813,10 +3815,10 @@ modest_msg_edit_window_set_sent (ModestMsgEditWindow *window, } static void -modest_msg_edit_window_find_toolbar_close (GtkWidget *widget, - ModestMsgEditWindow *window) +modest_msg_edit_window_isearch_toolbar_close (GtkWidget *widget, + ModestMsgEditWindow *window) { - modest_msg_edit_window_toggle_find_toolbar (window, FALSE); + modest_msg_edit_window_toggle_isearch_toolbar (window, FALSE); } void diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index c7afe8e..1e9006c 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -6628,8 +6628,8 @@ modest_ui_actions_on_toggle_find_in_page (GtkAction *action, else active = TRUE; - modest_msg_edit_window_toggle_find_toolbar (MODEST_MSG_EDIT_WINDOW (window), - active); + modest_msg_edit_window_toggle_isearch_toolbar (MODEST_MSG_EDIT_WINDOW (window), + active); } #ifndef MODEST_TOOLKIT_HILDON2 diff --git a/src/widgets/modest-msg-edit-window.h b/src/widgets/modest-msg-edit-window.h index a364da0..113c3b1 100644 --- a/src/widgets/modest-msg-edit-window.h +++ b/src/widgets/modest-msg-edit-window.h @@ -387,14 +387,14 @@ gboolean modest_msg_edit_window_check_names (ModestMsgEditWindow *wind gboolean add_to_addressbook); /** - * modest_msg_edit_window_toggle_find_toolbar: + * modest_msg_edit_window_toggle_isearch_toolbar: * @window: a #ModestMsgEditWindow * @show: a #gboolean * - * Shows/Hides the find toolbar + * Shows/Hides the isearch toolbar */ -void modest_msg_edit_window_toggle_find_toolbar (ModestMsgEditWindow *window, - gboolean show); +void modest_msg_edit_window_toggle_isearch_toolbar (ModestMsgEditWindow *window, + gboolean show); /** diff --git a/src/widgets/modest-toolkit-factory.c b/src/widgets/modest-toolkit-factory.c index 89e5b7c..207884b 100644 --- a/src/widgets/modest-toolkit-factory.c +++ b/src/widgets/modest-toolkit-factory.c @@ -30,6 +30,7 @@ #include #ifdef MODEST_TOOLKIT_HILDON2 #include +#include #include #else #include @@ -43,6 +44,7 @@ static void modest_toolkit_factory_init (ModestToolkitFactory *self); static GtkWidget * modest_toolkit_factory_create_scrollable_default (ModestToolkitFactory *self); static GtkWidget * modest_toolkit_factory_create_check_button_default (ModestToolkitFactory *self, const gchar *label); static GtkWidget * modest_toolkit_factory_create_check_menu_default (ModestToolkitFactory *self, const gchar *label); +static GtkWidget * modest_toolkit_factory_create_isearch_toolbar_default (ModestToolkitFactory *self, const gchar *label); /* globals */ static GObjectClass *parent_class = NULL; @@ -66,6 +68,7 @@ modest_toolkit_factory_class_init (ModestToolkitFactoryClass *klass) klass->create_scrollable = modest_toolkit_factory_create_scrollable_default; klass->create_check_button = modest_toolkit_factory_create_check_button_default; klass->create_check_menu = modest_toolkit_factory_create_check_menu_default; + klass->create_isearch_toolbar = modest_toolkit_factory_create_isearch_toolbar_default; } static void @@ -108,6 +111,7 @@ modest_toolkit_factory_create_check_button_default (ModestToolkitFactory *self, #endif return result; } + GtkWidget * modest_toolkit_factory_create_check_menu (ModestToolkitFactory *self, const gchar *label) { @@ -165,3 +169,23 @@ modest_is_togglable (GtkWidget *widget) return GTK_IS_CHECK_MENU_ITEM (widget) || GTK_IS_TOGGLE_BUTTON (widget); #endif } + +GtkWidget * +modest_toolkit_factory_create_isearch_toolbar (ModestToolkitFactory *self, const gchar *label) +{ + return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_isearch_toolbar (self, label); +} + +static GtkWidget * +modest_toolkit_factory_create_isearch_toolbar_default (ModestToolkitFactory *self, const gchar *label) +{ + GtkWidget *result; +#ifdef MODEST_TOOLKIT_HILDON2 + result = modest_hildon_find_toolbar_new (label); +#else + /* TODO: create gtk-only based isearch toolbar implementation */ + result = gtk_toolbar_new (); +#endif + return result; +} + diff --git a/src/widgets/modest-toolkit-factory.h b/src/widgets/modest-toolkit-factory.h index 605c7a4..82dd9b6 100644 --- a/src/widgets/modest-toolkit-factory.h +++ b/src/widgets/modest-toolkit-factory.h @@ -38,6 +38,7 @@ struct _ModestToolkitFactoryClass GtkWidget * (*create_scrollable) (ModestToolkitFactory *self); GtkWidget * (*create_check_button) (ModestToolkitFactory *self, const gchar *label); GtkWidget * (*create_check_menu) (ModestToolkitFactory *self, const gchar *label); + GtkWidget * (*create_isearch_toolbar) (ModestToolkitFactory *self, const gchar *label); }; struct _ModestToolkitFactory @@ -61,6 +62,9 @@ modest_toolkit_factory_create_check_button (ModestToolkitFactory *self, const gc GtkWidget * modest_toolkit_factory_create_check_menu (ModestToolkitFactory *self, const gchar *label); +GtkWidget * +modest_toolkit_factory_create_isearch_toolbar (ModestToolkitFactory *self, const gchar *label); + gboolean modest_togglable_get_active (GtkWidget *widget); -- 1.7.9.5