[bijiben/wip/sadiq/modernize] search-toolbar: Simplify handling search



commit fde46a084b2167c56c439dac4e9603d0bafdcc8a
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date:   Sat Nov 25 12:51:18 2017 +0530

    search-toolbar: Simplify handling search
    
    Search was handled by connecting to "inserted-text" and
    "deleted-text" signals of the associated GtkEntryBuffer of the
    search entry.
    
    Instead, hook to change in "text" property of the GtkEntry.
    Also, remove the GtkEntryBuffer variable as we no longer use that.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=790814

 src/bjb-search-toolbar.c |   58 +++++++++------------------------------------
 1 files changed, 12 insertions(+), 46 deletions(-)
---
diff --git a/src/bjb-search-toolbar.c b/src/bjb-search-toolbar.c
index 5ee255b..45a159c 100644
--- a/src/bjb-search-toolbar.c
+++ b/src/bjb-search-toolbar.c
@@ -51,13 +51,11 @@ struct _BjbSearchToolbar
 
   GtkWidget         *entry;
   gchar             *needle;
-  GtkEntryBuffer    *entry_buf;
   BjbController     *controller;
 
   /* Signals */
   gulong            key_pressed;
-  gulong            deleted;
-  gulong            inserted;
+  gulong            text_id;
 
 
   GtkWidget         *window;
@@ -120,51 +118,24 @@ bjb_search_toolbar_set_property (GObject      *object,
 }
 
 static void
-action_search_entry (GtkEntry *entry, BjbController *controller)
+action_entry_text_change_callback (GtkEntry         *entry,
+                                   GParamSpec       *pspec,
+                                   BjbSearchToolbar *self)
 {
-  bjb_controller_set_needle (controller, gtk_entry_get_text (entry));
+  bjb_controller_set_needle (BJB_CONTROLLER (self->controller),
+                             gtk_entry_get_text (entry));
 }
 
-
-
-static void
-action_entry_insert_callback (GtkEntryBuffer *buffer,
-                              guint position,
-                              gchar *chars,
-                              guint n_chars,
-                              BjbSearchToolbar *self)
-{
-  action_search_entry (GTK_ENTRY (self->entry),
-                       self->controller);
-}
-
-
-
-
-static void
-action_entry_delete_callback (GtkEntryBuffer *buffer,
-                              guint position,
-                              guint n_chars,
-                              BjbSearchToolbar *self)
-{
-  action_search_entry (GTK_ENTRY (self->entry),
-                       self->controller);
-}
-
-
 void
 bjb_search_toolbar_disconnect (BjbSearchToolbar *self)
 {
   if (self->key_pressed)
     g_signal_handler_disconnect (self->window, self->key_pressed);
-  if (self->inserted)
-    g_signal_handler_disconnect (self->entry_buf, self->inserted);
-  if (self->deleted)
-    g_signal_handler_disconnect (self->entry_buf, self->deleted);
+  if (self->text_id)
+    g_signal_handler_disconnect (self->entry, self->text_id);
 
   self->key_pressed = 0;
-  self->inserted = 0;
-  self->deleted = 0;
+  self->text_id = 0;
 }
 
 void
@@ -176,13 +147,9 @@ bjb_search_toolbar_connect (BjbSearchToolbar *self)
                                          G_CALLBACK(on_key_pressed), self);
 
 
-  if (self->inserted == 0)
-    self->inserted = g_signal_connect (self->entry_buf, "inserted-text",
-                        G_CALLBACK (action_entry_insert_callback), self);
-
-  if (self->deleted == 0)
-    self->deleted = g_signal_connect (self->entry_buf, "deleted-text",
-                        G_CALLBACK (action_entry_delete_callback), self);
+  if (self->text_id == 0)
+    self->text_id = g_signal_connect (self->entry, "notify::text",
+                        G_CALLBACK (action_entry_text_change_callback), self);
 }
 
 static void
@@ -194,7 +161,6 @@ bjb_search_toolbar_constructed (GObject *obj)
 
   /* Get the needle from controller */
   self->needle = bjb_controller_get_needle (self->controller);
-  self->entry_buf = gtk_entry_get_buffer (GTK_ENTRY (self->entry));
 
   if (self->needle && g_strcmp0 (self->needle, "") != 0)
   {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]