From 7bf8188da3ecebbda75d462f51a91bb7b6d82e0d Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 22 Oct 2011 11:32:01 +0200 Subject: [PATCH] In QueryEditor added functions to set/get visibility of show, where and order editing. --- data/libgdaex/gui/libgdaex.ui | 66 ++++++++++++++--- src/queryeditor.c | 132 ++++++++++++++++++++++++++++++++-- src/queryeditor.h | 8 +++ 3 files changed, 189 insertions(+), 17 deletions(-) diff --git a/data/libgdaex/gui/libgdaex.ui b/data/libgdaex/gui/libgdaex.ui index 065dfd1..b3f532e 100644 --- a/data/libgdaex/gui/libgdaex.ui +++ b/data/libgdaex/gui/libgdaex.ui @@ -1,4 +1,4 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,11 +22,11 @@ - + - + @@ -34,7 +34,7 @@ - + @@ -67,6 +67,7 @@ + False True @@ -111,7 +112,7 @@ True - vertical + False 5 @@ -120,6 +121,8 @@ True + False + True 5 5 @@ -164,18 +167,21 @@ + True + True 0 True - vertical + False 5 start gtk-add + False True True True @@ -190,6 +196,7 @@ gtk-remove + False True True True @@ -204,6 +211,7 @@ gtk-go-up + False True True True @@ -218,6 +226,7 @@ gtk-go-down + False True True True @@ -232,6 +241,7 @@ gtk-clear + False True True True @@ -246,6 +256,7 @@ False + True 1 @@ -254,6 +265,7 @@ True + False Show @@ -263,6 +275,8 @@ True + False + True 5 5 @@ -350,18 +364,21 @@ + True + True 0 True - vertical + False 5 start gtk-add + False True True True @@ -376,6 +393,7 @@ gtk-remove + False True True True @@ -390,6 +408,7 @@ gtk-go-up + False True True True @@ -404,6 +423,7 @@ gtk-go-down + False True True True @@ -418,6 +438,7 @@ gtk-clear + False True True True @@ -432,6 +453,7 @@ False + True 1 @@ -443,6 +465,7 @@ True + False Where @@ -453,6 +476,8 @@ True + False + True 5 5 @@ -497,18 +522,21 @@ + True + True 0 True - vertical + False 5 start gtk-add + False True True True @@ -523,6 +551,7 @@ gtk-remove + False True True True @@ -537,6 +566,7 @@ gtk-go-up + False True True True @@ -551,6 +581,7 @@ gtk-go-down + False True True True @@ -565,6 +596,7 @@ gtk-clear + False True True True @@ -579,6 +611,7 @@ False + True 1 @@ -590,6 +623,7 @@ True + False Order @@ -599,34 +633,40 @@ + True + True 0 + False True - vertical 5 True - vertical + False + True + True 0 True + False 5 end gtk-cancel + False True True True @@ -641,6 +681,7 @@ gtk-save + False True True True @@ -654,12 +695,15 @@ + True + True 1 False + True 1 diff --git a/src/queryeditor.c b/src/queryeditor.c index 3a8021a..6103ba0 100644 --- a/src/queryeditor.c +++ b/src/queryeditor.c @@ -50,6 +50,13 @@ typedef enum GDAEX_QE_LINK_TYPE_OR } GdaExQueryEditorLinkType; +enum + { + GDAEX_QE_PAGE_SHOW, + GDAEX_QE_PAGE_WHERE, + GDAEX_QE_PAGE_ORDER + }; + static void gdaex_query_editor_class_init (GdaExQueryEditorClass *class); static void gdaex_query_editor_init (GdaExQueryEditor *gdaex_query_editor); @@ -155,6 +162,8 @@ struct _GdaExQueryEditorPrivate GtkBuilder *gtkbuilder; + GtkWidget *notebook; + GtkWidget *hpaned_main; GtkWidget *vbx_values_container; @@ -305,6 +314,8 @@ GdaExQueryEditor return NULL; } + priv->notebook = GTK_WIDGET (gtk_builder_get_object (priv->gtkbuilder, "notebook1")); + priv->tstore_fields = GTK_TREE_STORE (gtk_builder_get_object (priv->gtkbuilder, "tstore_fields")); priv->lstore_show = GTK_LIST_STORE (gtk_builder_get_object (priv->gtkbuilder, "lstore_show")); priv->tstore_where = GTK_TREE_STORE (gtk_builder_get_object (priv->gtkbuilder, "tstore_where")); @@ -393,6 +404,117 @@ GtkWidget return priv->hpaned_main; } +void +gdaex_query_editor_set_show_visibile (GdaExQueryEditor *qe, gboolean visibile) +{ + GdaExQueryEditorPrivate *priv; + + GtkWidget *wpage; + + g_return_if_fail (GDAEX_IS_QUERY_EDITOR (qe)); + + priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (qe); + + wpage = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), GDAEX_QE_PAGE_SHOW); + if (visibile) + { + gtk_widget_show_all (wpage); + } + else + { + gtk_widget_hide (wpage); + } +} + +void +gdaex_query_editor_set_where_visibile (GdaExQueryEditor *qe, gboolean visibile) +{ + GdaExQueryEditorPrivate *priv; + + GtkWidget *wpage; + + g_return_if_fail (GDAEX_IS_QUERY_EDITOR (qe)); + + priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (qe); + + wpage = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), GDAEX_QE_PAGE_WHERE); + if (visibile) + { + gtk_widget_show_all (wpage); + } + else + { + gtk_widget_hide (wpage); + } +} + +void +gdaex_query_editor_set_order_visibile (GdaExQueryEditor *qe, gboolean visibile) +{ + GdaExQueryEditorPrivate *priv; + + GtkWidget *wpage; + + g_return_if_fail (GDAEX_IS_QUERY_EDITOR (qe)); + + priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (qe); + + wpage = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), GDAEX_QE_PAGE_ORDER); + if (visibile) + { + gtk_widget_show_all (wpage); + } + else + { + gtk_widget_hide (wpage); + } +} + +gboolean +gdaex_query_editor_get_show_visible (GdaExQueryEditor *qe) +{ + GdaExQueryEditorPrivate *priv; + + GtkWidget *wpage; + + g_return_val_if_fail (GDAEX_IS_QUERY_EDITOR (qe), FALSE); + + priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (qe); + + wpage = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), GDAEX_QE_PAGE_SHOW); + return gtk_widget_get_visible (wpage); +} + +gboolean +gdaex_query_editor_get_where_visible (GdaExQueryEditor *qe) +{ + GdaExQueryEditorPrivate *priv; + + GtkWidget *wpage; + + g_return_val_if_fail (GDAEX_IS_QUERY_EDITOR (qe), FALSE); + + priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (qe); + + wpage = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), GDAEX_QE_PAGE_WHERE); + return gtk_widget_get_visible (wpage); +} + +gboolean +gdaex_query_editor_get_order_visible (GdaExQueryEditor *qe) +{ + GdaExQueryEditorPrivate *priv; + + GtkWidget *wpage; + + g_return_val_if_fail (GDAEX_IS_QUERY_EDITOR (qe), FALSE); + + priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (qe); + + wpage = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), GDAEX_QE_PAGE_ORDER); + return gtk_widget_get_visible (wpage); +} + gboolean gdaex_query_editor_add_table (GdaExQueryEditor *qe, const gchar *table_name, @@ -1424,7 +1546,6 @@ gdaex_query_editor_set_property (GObject *object, GParamSpec *pspec) { GdaExQueryEditor *gdaex_query_editor = (GdaExQueryEditor *)object; - GdaExQueryEditorPrivate *priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (gdaex_query_editor); switch (property_id) @@ -1442,7 +1563,6 @@ gdaex_query_editor_get_property (GObject *object, GParamSpec *pspec) { GdaExQueryEditor *gdaex_query_editor = (GdaExQueryEditor *)object; - GdaExQueryEditorPrivate *priv = GDAEX_QUERY_EDITOR_GET_PRIVATE (gdaex_query_editor); switch (property_id) @@ -1945,24 +2065,24 @@ gdaex_query_editor_on_trv_fields_row_activated (GtkTreeView *tree_view, return; } - page = gtk_notebook_get_current_page (GTK_NOTEBOOK (gtk_builder_get_object (priv->gtkbuilder, "notebook1"))); + page = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)); switch (page) { - case 0: /* show */ + case GDAEX_QE_PAGE_SHOW: if (gtk_widget_is_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->gtkbuilder, "button3")))) { gtk_button_clicked (GTK_BUTTON (gtk_builder_get_object (priv->gtkbuilder, "button3"))); } break; - case 1: /* where */ + case GDAEX_QE_PAGE_WHERE: if (gtk_widget_is_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->gtkbuilder, "button7")))) { gtk_button_clicked (GTK_BUTTON (gtk_builder_get_object (priv->gtkbuilder, "button7"))); } break; - case 2: /* order */ + case GDAEX_QE_PAGE_ORDER: if (gtk_widget_is_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->gtkbuilder, "button11")))) { gtk_button_clicked (GTK_BUTTON (gtk_builder_get_object (priv->gtkbuilder, "button11"))); diff --git a/src/queryeditor.h b/src/queryeditor.h index 48eb064..60bd9ae 100644 --- a/src/queryeditor.h +++ b/src/queryeditor.h @@ -57,6 +57,14 @@ GdaExQueryEditor *gdaex_query_editor_new (GdaEx *gdaex); GtkWidget *gdaex_query_editor_get_widget (GdaExQueryEditor *qe); +void gdaex_query_editor_set_show_visibile (GdaExQueryEditor *qe, gboolean visibile); +void gdaex_query_editor_set_where_visibile (GdaExQueryEditor *qe, gboolean visibile); +void gdaex_query_editor_set_order_visibile (GdaExQueryEditor *qe, gboolean visibile); + +gboolean gdaex_query_editor_get_show_visible (GdaExQueryEditor *qe); +gboolean gdaex_query_editor_get_where_visible (GdaExQueryEditor *qe); +gboolean gdaex_query_editor_get_order_visible (GdaExQueryEditor *qe); + typedef enum { GDAEX_QE_FIELD_TYPE_TEXT = 1, -- 2.49.0