[libgda] UI improvements



commit 682445cce66895d1de03f5499024c04c6cf262a2
Author: Vivien Malerba <malerba gnome-db org>
Date:   Tue Jul 12 20:56:59 2011 +0200

    UI improvements

 libgda-ui/gdaui-rt-editor.c                     |    1 +
 tools/browser/common/widget-overlay.c           |    2 +-
 tools/browser/data-manager/data-source-editor.c |  115 +++++++----------------
 3 files changed, 38 insertions(+), 80 deletions(-)
---
diff --git a/libgda-ui/gdaui-rt-editor.c b/libgda-ui/gdaui-rt-editor.c
index f543499..48a3cd9 100644
--- a/libgda-ui/gdaui-rt-editor.c
+++ b/libgda-ui/gdaui-rt-editor.c
@@ -1904,6 +1904,7 @@ gdaui_rt_editor_set_editable (GdauiRtEditor *editor, gboolean editable)
 {
 	g_return_if_fail (GDAUI_IS_RT_EDITOR (editor));
 	gtk_text_view_set_editable (editor->priv->textview, editable);
+	gtk_text_view_set_cursor_visible (editor->priv->textview, editable);
 	show_hide_toolbar (editor);
 }
 
diff --git a/tools/browser/common/widget-overlay.c b/tools/browser/common/widget-overlay.c
index 9b27203..dc56405 100644
--- a/tools/browser/common/widget-overlay.c
+++ b/tools/browser/common/widget-overlay.c
@@ -450,7 +450,7 @@ widget_overlay_event (GtkWidget *widget, GdkEvent *event)
 		scale -= SCALE_STEP;
 	change_widget_scale (ovl, cd, scale);
 
-	return FALSE;
+	return TRUE;
 }
 
 static void
diff --git a/tools/browser/data-manager/data-source-editor.c b/tools/browser/data-manager/data-source-editor.c
index 3614180..161cb30 100644
--- a/tools/browser/data-manager/data-source-editor.c
+++ b/tools/browser/data-manager/data-source-editor.c
@@ -46,7 +46,6 @@ struct _DataSourceEditorPrivate {
 	DataSource *source;
         GdaSet *attributes;
 	GdauiBasicForm *form;
-	GtkTextBuffer *tbuffer;
 };
 
 GType
@@ -120,25 +119,31 @@ form_populate_popup_cb (GtkWidget *wid, GtkMenu *menu, WidgetOverlay *ovl)
 static void
 data_source_editor_init (DataSourceEditor *editor)
 {
-	GtkWidget *vbox, *ovl;
+	GtkWidget *ovl;
 
 	gtk_orientable_set_orientation (GTK_ORIENTABLE (editor), GTK_ORIENTATION_VERTICAL);
 
 	editor->priv = g_new0 (DataSourceEditorPrivate, 1);
-	editor->priv->attributes = gda_set_new_inline (4,
+	editor->priv->attributes = gda_set_new_inline (5,
 						       "id", G_TYPE_STRING, "",
 						       "descr", G_TYPE_STRING, "",
 						       "table", G_TYPE_STRING, "",
-						       "sql", G_TYPE_STRING, "");
+						       "sql", G_TYPE_STRING, "",
+						       "depend", G_TYPE_STRING, "");
 	g_signal_connect (editor->priv->attributes, "holder-changed",
 			  G_CALLBACK (attribute_changed_cb), editor);
 
 	ovl = widget_overlay_new ();
 	gtk_box_pack_start (GTK_BOX (editor), ovl, TRUE, TRUE, 0);
 
-	vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-	gtk_container_add (GTK_CONTAINER (ovl), vbox);
-	widget_overlay_set_child_props (WIDGET_OVERLAY (ovl), vbox,
+	GtkWidget *form;
+	form = gdaui_basic_form_new (editor->priv->attributes);
+	editor->priv->form = GDAUI_BASIC_FORM (form);
+	g_signal_connect (form, "populate-popup",
+			  G_CALLBACK (form_populate_popup_cb), ovl);
+
+	gtk_container_add (GTK_CONTAINER (ovl), form);
+	widget_overlay_set_child_props (WIDGET_OVERLAY (ovl), form,
 					WIDGET_OVERLAY_CHILD_VALIGN, WIDGET_OVERLAY_ALIGN_FILL,
 					WIDGET_OVERLAY_CHILD_HALIGN, WIDGET_OVERLAY_ALIGN_FILL,
 					WIDGET_OVERLAY_CHILD_SCALE, .9,
@@ -147,14 +152,6 @@ data_source_editor_init (DataSourceEditor *editor)
 	g_object_set (G_OBJECT (ovl), "add-scale", FALSE, NULL);
 	gtk_widget_show_all (ovl);
 
-	GtkWidget *form;
-	form = gdaui_basic_form_new (editor->priv->attributes);
-	editor->priv->form = GDAUI_BASIC_FORM (form);
-	gtk_box_pack_start (GTK_BOX (vbox), form, TRUE, TRUE, 0);
-	gtk_widget_show (form);
-	g_signal_connect (form, "populate-popup",
-			  G_CALLBACK (form_populate_popup_cb), ovl);
-
 	GdaHolder *holder;
 	GValue *value;
 	holder = gda_set_get_holder (editor->priv->attributes, "id");
@@ -181,41 +178,13 @@ data_source_editor_init (DataSourceEditor *editor)
         gda_holder_set_attribute_static (holder, GDAUI_ATTRIBUTE_PLUGIN, value);
         gda_value_free (value);
 
-#define SPACING 3
-	GtkWidget *hbox, *label, *sw, *text;
-	GtkSizeGroup *sg;
-	hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING);
-	gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
-
-	label = gtk_label_new (_("Dependencies:"));
-	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
-	sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
-	gtk_size_group_add_widget (sg, label);
-	gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (form), sg, GDAUI_BASIC_FORM_LABELS);
-	g_object_unref ((GObject*) sg);
-
-	sw = gtk_scrolled_window_new (NULL, NULL);
-        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC,
-                                        GTK_POLICY_AUTOMATIC);
-	gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_NONE);
-        gtk_box_pack_start (GTK_BOX (hbox), sw, TRUE, TRUE, 0);
-
-	editor->priv->tbuffer = gtk_text_buffer_new (NULL);
-	text = gtk_text_view_new_with_buffer (editor->priv->tbuffer);
-	sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
-	gtk_size_group_add_widget (sg, sw);
-	gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (form), sg, GDAUI_BASIC_FORM_ENTRIES);
-	g_object_unref ((GObject*) sg);
-
-	gtk_container_add (GTK_CONTAINER (sw), text);
-	gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text), GTK_WRAP_WORD);
-        gtk_text_view_set_editable (GTK_TEXT_VIEW (text), FALSE);
-        gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text), FALSE);
-	gtk_text_buffer_create_tag (editor->priv->tbuffer, "section",
-                                    "weight", PANGO_WEIGHT_BOLD, NULL);
-
-	gtk_widget_show_all (hbox);
+	holder = gda_set_get_holder (editor->priv->attributes, "depend");
+	g_object_set ((GObject*) holder, "name", _("Dependencies"),
+		      "description", _("Required and provided named parameters"), NULL);
+	gdaui_basic_form_entry_set_editable (GDAUI_BASIC_FORM (form), holder, FALSE);
+	value = gda_value_new_from_string ("rtext", G_TYPE_STRING);
+        gda_holder_set_attribute_static (holder, GDAUI_ATTRIBUTE_PLUGIN, value);
+        gda_value_free (value);
 }
 
 static void
@@ -228,8 +197,6 @@ data_source_editor_dispose (GObject *object)
 
 	editor = DATA_SOURCE_EDITOR (object);
 	if (editor->priv) {
-		if (editor->priv->tbuffer)
-			g_object_unref ((GObject*) editor->priv->tbuffer);
 		if (editor->priv->source)
 			g_object_unref (editor->priv->source);
 		if (editor->priv->attributes) {
@@ -267,51 +234,41 @@ data_source_editor_new (void)
 static void
 update_dependencies_display (DataSourceEditor *editor)
 {
-	GtkTextIter start, end;
-	GtkTextBuffer *tbuffer;
-
-	tbuffer = editor->priv->tbuffer;
-        gtk_text_buffer_get_start_iter (tbuffer, &start);
-        gtk_text_buffer_get_end_iter (tbuffer, &end);
-        gtk_text_buffer_delete (tbuffer, &start, &end);
-	gtk_text_buffer_get_start_iter (tbuffer, &start);
+	GString *string;
 
+	string = g_string_new ("");
 	if (editor->priv->source) {
 		GdaSet *import;
 		import = data_source_get_import ( editor->priv->source);
-		gtk_text_buffer_insert_with_tags_by_name (tbuffer, &start,
-							  _("Requires:"), -1,
-							  "section", NULL);
-		gtk_text_buffer_insert (tbuffer, &start, "\n", -1);
+		g_string_append_printf (string, "**%s**\n", _("Requires:"));
 		if (import && import->holders) {
 			GSList *list;
-			for (list = import->holders; list; list = list->next) {
-				gtk_text_buffer_insert (tbuffer, &start,
-							gda_holder_get_id (GDA_HOLDER (list->data)), -1);
-				gtk_text_buffer_insert (tbuffer, &start, "\n", -1);
-			}
+			for (list = import->holders; list; list = list->next)
+				g_string_append_printf (string, "%s\n",
+							gda_holder_get_id (GDA_HOLDER (list->data)));
 		}
-		else 
-			gtk_text_buffer_insert (tbuffer, &start, "--\n", -1);
+		else
+			g_string_append (string, "--\n");
 
 		GArray *export;
 		export = data_source_get_export_names ( editor->priv->source);
-		gtk_text_buffer_insert_with_tags_by_name (tbuffer, &start,
-							  _("Exports:"), -1,
-							  "section", NULL);
-		gtk_text_buffer_insert (tbuffer, &start, "\n", -1);
+		g_string_append_printf (string, "\n**%s**\n", _("Exports:"));
 		if (export) {
 			gsize i;
 			for (i = 0; i < export->len ; i++) {
 				gchar *tmp;
 				tmp = g_array_index (export, gchar *, i);
-				gtk_text_buffer_insert (tbuffer, &start, tmp, -1);
-				gtk_text_buffer_insert (tbuffer, &start, "\n", -1);
+				g_string_append_printf (string, "%s\n", tmp);
 			}
 		}
 		else
-			gtk_text_buffer_insert (tbuffer, &start, "--\n", -1);
+			g_string_append (string, "--\n");
 	}
+
+	GdaHolder *holder;
+	holder = gda_set_get_holder (editor->priv->attributes, "depend");
+	g_assert (gda_holder_set_value_str (holder, NULL, string->str, NULL));
+	g_string_free (string, TRUE);
 }
 
 /**
@@ -451,7 +408,7 @@ attribute_changed_cb (G_GNUC_UNUSED GdaSet *set, GdaHolder *holder, DataSourceEd
 		data_source_set_query (editor->priv->source, str, NULL);
 		update_dependencies_display (editor);
 	}
-	else
+	else if (strcmp (id, "depend"))
 		g_assert_not_reached ();
 
 	g_signal_handlers_unblock_by_func (editor->priv->attributes,



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