[bijiben] search-toolbar: Simplify handling search



commit a78ceb3dd38b94146f221ffcbcc5cb3b3a21f442
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 1e73daa..80d3b96 100644
--- a/src/bjb-search-toolbar.c
+++ b/src/bjb-search-toolbar.c
@@ -53,13 +53,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;
@@ -122,51 +120,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
@@ -178,13 +149,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
@@ -196,7 +163,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]