[libgda] browser: object-index: added new update() method



commit c7a9700101fb966ae0649a132b412fd1d065ec2c
Author: Daniel Espinosa Ortiz <esodan gmail com>
Date:   Fri Mar 8 17:54:07 2019 -0600

    browser: object-index: added new update() method

 tools/browser/schema-browser/objects-index.c | 28 +++++++++++++++++++---------
 tools/browser/schema-browser/objects-index.h |  1 +
 2 files changed, 20 insertions(+), 9 deletions(-)
---
diff --git a/tools/browser/schema-browser/objects-index.c b/tools/browser/schema-browser/objects-index.c
index 01a58e9e9..b6bc21c39 100644
--- a/tools/browser/schema-browser/objects-index.c
+++ b/tools/browser/schema-browser/objects-index.c
@@ -177,9 +177,27 @@ objects_index_new (TConnection *tcnc)
         gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
         gtk_widget_show (label);
 
-       /* cloud */
+       objects_index_update (index);
+       /* search entry */
+       wid = gdaui_bar_add_search_entry (GDAUI_BAR (label));
+
+       g_signal_connect (wid, "changed",
+                         G_CALLBACK (find_changed_cb), index);
+
+       return (GtkWidget*) index;
+}
+
+void
+objects_index_update (ObjectsIndex *index)
+{
        GdaMetaStruct *mstruct;
        GtkWidget *cloud;
+       if (index->priv->cloud != NULL) {
+               g_signal_handlers_disconnect_by_func (GTK_WIDGET (index->priv->cloud),
+                                                     G_CALLBACK (cloud_object_selected_cb), index);
+               gtk_widget_destroy (GTK_WIDGET (index->priv->cloud));
+       }
+
        mstruct = t_connection_get_meta_struct (index->priv->tcnc);
        cloud = objects_cloud_new (mstruct, OBJECTS_CLOUD_TYPE_TABLE);
        objects_cloud_show_schemas (OBJECTS_CLOUD (cloud), TRUE);
@@ -187,14 +205,6 @@ objects_index_new (TConnection *tcnc)
        index->priv->cloud = OBJECTS_CLOUD (cloud);
        g_signal_connect (cloud, "selected",
                          G_CALLBACK (cloud_object_selected_cb), index);
-
-       /* search entry */
-       wid = gdaui_bar_add_search_entry (GDAUI_BAR (label));
-       
-       g_signal_connect (wid, "changed",
-                         G_CALLBACK (find_changed_cb), index);
-
-       return (GtkWidget*) index;
 }
 
 static void
diff --git a/tools/browser/schema-browser/objects-index.h b/tools/browser/schema-browser/objects-index.h
index 1ab87e264..f5e2ebcb2 100644
--- a/tools/browser/schema-browser/objects-index.h
+++ b/tools/browser/schema-browser/objects-index.h
@@ -51,6 +51,7 @@ struct _ObjectsIndexClass {
 GType                    objects_index_get_type (void) G_GNUC_CONST;
 
 GtkWidget               *objects_index_new      (TConnection *tcnc);
+void                     objects_index_update   (ObjectsIndex *index);
 
 G_END_DECLS
 


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