Oh, I forgot the diff.
--
Daniel Wagner
email: [EMAIL PROTECTED]
GnuPG: 1024D/DCDE890A (public key available on any keyserver)
=== cd /usr/src/gnome/glade/glade/gnome-db/
=== cvs diff -u gnomedbbrowser.c
Index: gnomedbbrowser.c
===================================================================
RCS file: /cvs/gnome/glade/glade/gnome-db/gnomedbbrowser.c,v
retrieving revision 1.2
diff -u -r1.2 gnomedbbrowser.c
--- gnomedbbrowser.c 2000/08/03 11:46:47 1.2
+++ gnomedbbrowser.c 2001/02/18 18:38:50
@@ -30,6 +30,15 @@
*/
static GbWidget gbwidget;
+static gchar *GdaName = "GnomeDbBrowser::gda_name";
+static gchar *UserName = "GnomeDbBrowser::user_name";
+static gchar *Password = "GnomeDbBrowser::password";
+
+static void show_gnome_db_browser_dialog (GbWidgetNewData * data);
+static void on_gnome_db_browser_dialog_ok (GtkWidget * widget,
+ GbWidgetNewData * data);
+static void on_gnome_db_browser_dialog_destroy (GtkWidget * widget,
+ GbWidgetNewData * data);
/******
@@ -47,46 +56,118 @@
gb_gnome_db_browser_new (GbWidgetNewData *data)
{
GtkWidget *widget;
- GnomeDbBrowser *brw;
-
- widget = gnome_db_browser_new (NULL);
- brw = GNOME_DB_BROWSER (widget);
+
+ if (data->action == GB_LOADING)
+ {
+ widget = gnome_db_browser_new (NULL); /* FIX ME */
+ return widget;
+ }
+ else
+ {
+ show_gnome_db_browser_dialog (data);
+ return NULL;
+ }
+}
- /* Disconnect the toggle button signals, since they cause problems. */
- gtk_signal_disconnect_by_data (GTK_OBJECT (brw->tables_button), brw);
- gtk_signal_disconnect_by_data (GTK_OBJECT (brw->views_button), brw);
- gtk_signal_disconnect_by_data (GTK_OBJECT (brw->procs_button), brw);
- gtk_signal_disconnect_by_data (GTK_OBJECT (brw->types_button), brw);
+static void
+show_gnome_db_browser_dialog (GbWidgetNewData * data)
+{
+ GtkWidget *dialog, *vbox, *hbox, *login;
+
+ dialog = glade_util_create_dialog(_("New GnomeDb Browser"), data->parent,
+ on_gnome_db_browser_dialog_ok, data, &vbox);
+ gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
+ GTK_SIGNAL_FUNC (on_gnome_db_browser_dialog_destroy), data);
+
+ hbox = gtk_hbox_new (FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 5);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
+ gtk_widget_show (hbox);
+
+ login = gnome_db_login_new (NULL, NULL, NULL);
+
+ g_return_if_fail (login != NULL);
+ gtk_box_pack_start (GTK_BOX (hbox), login, TRUE, TRUE, 5);
+ gtk_widget_show (login);
- return widget;
+ gtk_widget_show (dialog);
+ gtk_grab_add (dialog);
}
+static void
+on_gnome_db_browser_dialog_ok (GtkWidget * widget, GbWidgetNewData * data)
+{
+ GtkWidget *new_widget, *window;
+ GnomeDbLogin *login;
+ GList *widget_list;
+ Gda_Connection *cnc;
+ window = gtk_widget_get_toplevel (widget);
+ if (gb_widget_can_finish_new (data))
+ {
+ for (widget_list = gtk_container_children(GTK_CONTAINER(widget));
+ widget_list != NULL; widget_list = widget_list->next)
+ {
+ if (GNOME_DB_IS_LOGIN(widget_list->data))
+ {
+ login = GNOME_DB_LOGIN(widget_list->data);
+ }
+ }
+ g_list_free(widget_list);
+
+ g_return_if_fail (login != NULL);
+
+ cnc = gda_connection_new(bonobo_orb());
+ g_return_if_fail (cnc != NULL);
+ gda_connection_open(cnc,
+ gnome_db_login_get_gda_name(login),
+ gnome_db_login_get_username(login),
+ gnome_db_login_get_password(login));
+
+ new_widget = gnome_db_browser_new (cnc);
+ gb_widget_initialize (new_widget, data);
+ (*data->callback) (new_widget, data);
+ }
+ gtk_widget_destroy (window);
+}
+
+static void
+on_gnome_db_browser_dialog_destroy (GtkWidget * widget,
+ GbWidgetNewData * data)
+{
+ gb_widget_free_new_data (data);
+ gtk_grab_remove (widget);
+}
+
/*
* Creates the components needed to edit the extra properties of this widget.
*/
-/*
static void
gb_gnome_db_browser_create_properties (GtkWidget * widget, GbWidgetCreateArgData * data)
{
-
+ property_add_string (GdaName, _("GDA Name"),
+ _("Name of the GDA connection"));
+ property_add_string (UserName, _("User Name"),
+ _("User name of the GDA connection"));
+ property_add_string (Password, _("Password"),
+ _("Password for the GDA connection"));
}
-*/
-
/*
* Gets the properties of the widget. This is used for both displaying the
* properties in the property editor, and also for saving the properties.
*/
-/*
static void
gb_gnome_db_browser_get_properties (GtkWidget *widget, GbWidgetGetArgData * data)
{
-
+ Gda_Connection *cnc;
+ cnc = gnome_db_browser_get_connection(GNOME_DB_BROWSER(widget));
+ gb_widget_output_string (data, GdaName, gda_connection_get_dsn (cnc));
+ gb_widget_output_string (data, UserName, gda_connection_get_user (cnc));
+ gb_widget_output_string (data, Password, gda_connection_get_password (cnc));
}
-*/
@@ -94,28 +175,26 @@
* Sets the properties of the widget. This is used for both applying the
* properties changed in the property editor, and also for loading.
*/
-/*
static void
gb_gnome_db_browser_set_properties (GtkWidget * widget, GbWidgetSetArgData * data)
{
+
}
-*/
+
/*
* Adds menu items to a context menu which is just about to appear!
* Add commands to aid in editing a GnomeDbBrowser, with signals pointing to
* other functions in this file.
*/
-/*
static void
gb_gnome_db_browser_create_popup_menu (GtkWidget * widget, GbWidgetCreateMenuData * data)
{
}
-*/
@@ -157,12 +236,10 @@
/* Fill in any functions that this GbWidget has */
gbwidget.gb_widget_new = gb_gnome_db_browser_new;
gbwidget.gb_widget_write_source = gb_gnome_db_browser_write_source;
-/*
gbwidget.gb_widget_create_properties = gb_gnome_db_browser_create_properties;
gbwidget.gb_widget_get_properties = gb_gnome_db_browser_get_properties;
gbwidget.gb_widget_set_properties = gb_gnome_db_browser_set_properties;
gbwidget.gb_widget_create_popup_menu = gb_gnome_db_browser_create_popup_menu;
-*/
return &gbwidget;
}
=== Exit status: 1