libgnomedb r1723 - in trunk: . data data/16x16 data/22x22 doc/C doc/C/images doc/C/tmpl extra/demos glade glade3 libgnomedb libgnomedb-extra libgnomedb-extra/data libgnomedb-graph libgnomedb/data-entries po testing



Author: vivien
Date: Wed May 14 19:54:09 2008
New Revision: 1723
URL: http://svn.gnome.org/viewvc/libgnomedb?rev=1723&view=rev

Log:
2008-05-14 Vivien Malerba <malerba gnome-db org>

        * adaptations to Libgda V4's API
        * renamed GnomeDbDataSourceSelector to GnomeDbDsnSelector
        * renamed GnomeDbDsnSpec to GnomeDbProviderSpecEditor



Added:
   trunk/data/16x16/widget-gnomedb-gnome-db-dsn-selector.png
      - copied unchanged from r1722, /trunk/data/16x16/widget-gnomedb-gnome-db-data-source-selector.png
   trunk/data/16x16/widget-gnomedb-gnome-db-provider-spec-editor.png
      - copied unchanged from r1722, /trunk/data/16x16/widget-gnomedb-gnome-db-dsn-spec.png
   trunk/data/22x22/widget-gnomedb-gnome-db-dsn-selector.png
      - copied unchanged from r1722, /trunk/data/22x22/widget-gnomedb-gnome-db-data-source-selector.png
   trunk/data/22x22/widget-gnomedb-gnome-db-provider-spec-editor.png
      - copied unchanged from r1722, /trunk/data/22x22/widget-gnomedb-gnome-db-dsn-spec.png
   trunk/doc/C/images/gnome-db-provider-spec-editor.png
   trunk/doc/C/tmpl/gnome-db-provider-editor.sgml
      - copied, changed from r1722, /trunk/doc/C/tmpl/gnome-db-dsn-spec.sgml
   trunk/libgnomedb/gnome-db-dsn-selector.c
      - copied, changed from r1722, /trunk/libgnomedb/gnome-db-data-source-selector.c
   trunk/libgnomedb/gnome-db-dsn-selector.h
      - copied, changed from r1722, /trunk/libgnomedb/gnome-db-data-source-selector.h
   trunk/libgnomedb/gnome-db-provider-spec-editor.c
      - copied, changed from r1722, /trunk/libgnomedb/gnome-db-dsn-spec.c
   trunk/libgnomedb/gnome-db-provider-spec-editor.h
      - copied, changed from r1722, /trunk/libgnomedb/gnome-db-dsn-spec.h
Removed:
   trunk/data/16x16/widget-gnomedb-gnome-db-data-source-selector.png
   trunk/data/16x16/widget-gnomedb-gnome-db-dsn-spec.png
   trunk/data/22x22/widget-gnomedb-gnome-db-data-source-selector.png
   trunk/data/22x22/widget-gnomedb-gnome-db-dsn-spec.png
   trunk/doc/C/tmpl/gnome-db-dsn-spec.sgml
   trunk/libgnomedb-extra/gnome-db-dbms-update-viewer.c
   trunk/libgnomedb-extra/gnome-db-dbms-update-viewer.h
   trunk/libgnomedb/gnome-db-data-source-selector.c
   trunk/libgnomedb/gnome-db-data-source-selector.h
   trunk/libgnomedb/gnome-db-dsn-spec.c
   trunk/libgnomedb/gnome-db-dsn-spec.h
Modified:
   trunk/ChangeLog
   trunk/Makefile.am
   trunk/NEWS
   trunk/data/16x16/Makefile.am
   trunk/data/22x22/Makefile.am
   trunk/data/Makefile.am
   trunk/doc/C/libgnomedb-4.0-docs.sgml
   trunk/doc/C/libgnomedb-4.0-sections.txt
   trunk/doc/C/libgnomedb-4.0.types
   trunk/doc/C/tmpl/gnome-db-data-source-selector.sgml
   trunk/doc/C/tmpl/gnome-db-provider-selector.sgml
   trunk/extra/demos/ddl_queries.c
   trunk/glade/glade-gnomedb.c
   trunk/glade3/gnomedb.xml.in
   trunk/libgnomedb-extra/data/Makefile.am
   trunk/libgnomedb-graph/Makefile.am
   trunk/libgnomedb/Makefile.am
   trunk/libgnomedb/data-entries/gnome-db-entry-combo.c
   trunk/libgnomedb/gnome-db-connection-properties.c
   trunk/libgnomedb/gnome-db-connection-properties.h
   trunk/libgnomedb/gnome-db-dsn-assistant.c
   trunk/libgnomedb/gnome-db-dsn-editor.c
   trunk/libgnomedb/gnome-db-login.c
   trunk/libgnomedb/gnome-db-provider-selector.c
   trunk/libgnomedb/gnome-db-provider-selector.h
   trunk/libgnomedb/gnome-db-transaction-status.c
   trunk/libgnomedb/libgnomedb.h.in
   trunk/po/POTFILES.in
   trunk/testing/test-dyn-widgets.c

Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am	(original)
+++ trunk/Makefile.am	Wed May 14 19:54:09 2008
@@ -26,21 +26,17 @@
 	libgnomedb-extra \
 	$(GRAPHLIB_DIRECTORY) \
 	$(LIBGLADE_DIRECTORY) \
+	$(GLADE3_DIRECTORY) \
 	control-center \
 	testing \
 	extra \
 	doc \
 	data
 
-#$(GLADE3_DIRECTORY) 
-
 example_files =\
 	samples/SALES.mysql5.sql \
-	samples/SALES.mysql5.xml \
 	samples/SALES.mysql.sql \
-	samples/SALES.mysql.xml \
 	samples/SALES.postgres.sql \
-	samples/SALES.postgres.xml \
 	samples/README \
 	samples/SimpleExample/example.c \
 	samples/SimpleExample/gladeui.glade \

Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS	(original)
+++ trunk/NEWS	Wed May 14 19:54:09 2008
@@ -1,3 +1,10 @@
+libgnomedb 3.99.3, 2008
+
+ Adaptations to Libgda's V4 API changes, and:
+ - removed support for the GnomeCanvas (now uses exclusively GooCanvas)
+ - reworked the login dialog to correctly handle connections which don't need authentication
+ - this release is API incompatible with the V3 versions
+
 libgnomedb 3.1.2, 2007-10-24
 
  - Filtering based on an SQL expression is now possible in the grid and form

Modified: trunk/data/16x16/Makefile.am
==============================================================================
--- trunk/data/16x16/Makefile.am	(original)
+++ trunk/data/16x16/Makefile.am	Wed May 14 19:54:09 2008
@@ -6,12 +6,12 @@
 	widget-gnomedb-gnome-db-combo.png \
 	widget-gnomedb-gnome-db-connection-properties.png\
 	widget-gnomedb-gnome-db-data-import.png \
-	widget-gnomedb-gnome-db-data-source-selector.png \
+	widget-gnomedb-gnome-db-dsn-selector.png \
 	widget-gnomedb-gnome-db-data-widget-info.png \
 	widget-gnomedb-gnome-db-dbms-update-viewer.png \
 	widget-gnomedb-gnome-db-dsn-assistant.png \
 	widget-gnomedb-gnome-db-dsn-editor.png \
-	widget-gnomedb-gnome-db-dsn-spec.png \
+	widget-gnomedb-gnome-db-provider-spec-editor.png \
 	widget-gnomedb-gnome-db-editor.png \
 	widget-gnomedb-gnome-db-entry-string.png \
         widget-gnomedb-gnome-db-entry-boolean.png \

Modified: trunk/data/22x22/Makefile.am
==============================================================================
--- trunk/data/22x22/Makefile.am	(original)
+++ trunk/data/22x22/Makefile.am	Wed May 14 19:54:09 2008
@@ -6,12 +6,12 @@
 	widget-gnomedb-gnome-db-combo.png \
 	widget-gnomedb-gnome-db-connection-properties.png\
 	widget-gnomedb-gnome-db-data-import.png \
-	widget-gnomedb-gnome-db-data-source-selector.png \
+	widget-gnomedb-gnome-db-dsn-selector.png \
 	widget-gnomedb-gnome-db-data-widget-info.png \
 	widget-gnomedb-gnome-db-dbms-update-viewer.png \
 	widget-gnomedb-gnome-db-dsn-assistant.png \
 	widget-gnomedb-gnome-db-dsn-editor.png \
-	widget-gnomedb-gnome-db-dsn-spec.png \
+	widget-gnomedb-gnome-db-provider-spec-editor.png \
 	widget-gnomedb-gnome-db-editor.png \
 	widget-gnomedb-gnome-db-entry-string.png \
 	widget-gnomedb-gnome-db-entry-boolean.png \

Modified: trunk/data/Makefile.am
==============================================================================
--- trunk/data/Makefile.am	(original)
+++ trunk/data/Makefile.am	Wed May 14 19:54:09 2008
@@ -86,4 +86,4 @@
 	import_encodings.xml \
 	server_operation.glade
 
-CLEANFILES = libgnomedb.keys 
+CLEANFILES = libgnomedb.keys libgnomedb-4.0.schemas

Added: trunk/doc/C/images/gnome-db-provider-spec-editor.png
==============================================================================
Binary files (empty file) and trunk/doc/C/images/gnome-db-provider-spec-editor.png	Wed May 14 19:54:09 2008 differ

Modified: trunk/doc/C/libgnomedb-4.0-docs.sgml
==============================================================================
--- trunk/doc/C/libgnomedb-4.0-docs.sgml	(original)
+++ trunk/doc/C/libgnomedb-4.0-docs.sgml	Wed May 14 19:54:09 2008
@@ -8,9 +8,9 @@
 <!ENTITY libgnomedb-init SYSTEM "xml/libgnomedb.xml">
 <!ENTITY libgnomedb-combo SYSTEM "xml/gnome-db-combo.xml">
 <!ENTITY libgnomedb-connection-properties SYSTEM "xml/gnome-db-connection-properties.xml">
-<!ENTITY libgnomedb-data-source-selector SYSTEM "xml/gnome-db-data-source-selector.xml">
+<!ENTITY libgnomedb-data-source-selector SYSTEM "xml/gnome-db-dsn-selector.xml">
 <!ENTITY libgnomedb-dsn-assistant SYSTEM "xml/gnome-db-dsn-assistant.xml">
-<!ENTITY libgnomedb-dsn-spec SYSTEM "xml/gnome-db-dsn-spec.xml">
+<!ENTITY libgnomedb-dsn-spec SYSTEM "xml/gnome-db-provider-spec-editor.xml">
 <!ENTITY libgnomedb-dsn-editor SYSTEM "xml/gnome-db-dsn-editor.xml">
 <!ENTITY libgnomedb-editor SYSTEM "xml/gnome-db-editor.xml">
 <!ENTITY libgnomedb-error-dialog SYSTEM "xml/gnome-db-error-dialog.xml">

Modified: trunk/doc/C/libgnomedb-4.0-sections.txt
==============================================================================
--- trunk/doc/C/libgnomedb-4.0-sections.txt	(original)
+++ trunk/doc/C/libgnomedb-4.0-sections.txt	Wed May 14 19:54:09 2008
@@ -214,21 +214,21 @@
 </SECTION>
 
 <SECTION>
-<FILE>gnome-db-data-source-selector</FILE>
-<TITLE>GnomeDbDataSourceSelector</TITLE>
-GnomeDbDataSourceSelector
-GnomeDbDataSourceSelectorClass
-GnomeDbDataSourceSelectorPrivate
-gnome_db_data_source_selector_new
-gnome_db_data_source_selector_get_dsn
-gnome_db_data_source_selector_set_dsn
-<SUBSECTION Standard>
-GNOME_DB_DATA_SOURCE_SELECTOR
-GNOME_DB_DATA_SOURCE_SELECTOR_CLASS
-GNOME_DB_IS_DATA_SOURCE_SELECTOR
-GNOME_DB_IS_DATA_SOURCE_SELECTOR_CLASS
-GNOME_DB_TYPE_DATA_SOURCE_SELECTOR
-gnome_db_data_source_selector_get_type
+<FILE>gnome-db-dsn-selector</FILE>
+<TITLE>GnomeDbDsnSelector</TITLE>
+GnomeDbDsnSelector
+GnomeDbDsnSelectorClass
+GnomeDbDsnSelectorPrivate
+gnome_db_dsn_selector_new
+gnome_db_dsn_selector_get_dsn
+gnome_db_dsn_selector_set_dsn
+<SUBSECTION Standard>
+GNOME_DB_DSN_SELECTOR
+GNOME_DB_DSN_SELECTOR_CLASS
+GNOME_DB_IS_DSN_SELECTOR
+GNOME_DB_IS_DSN_SELECTOR_CLASS
+GNOME_DB_TYPE_DSN_SELECTOR
+gnome_db_dsn_selector_get_type
 </SECTION>
 
 <SECTION>
@@ -267,23 +267,23 @@
 </SECTION>
 
 <SECTION>
-<FILE>gnome-db-dsn-spec</FILE>
-<TITLE>GnomeDbDsnSpec</TITLE>
-GnomeDbDsnSpec
-GnomeDbDsnSpecClass
-GnomeDbDsnSpecPrivate
-gnome_db_dsn_spec_new
-gnome_db_dsn_spec_set_provider
-gnome_db_dsn_spec_is_valid
-gnome_db_dsn_spec_get_specs
-gnome_db_dsn_spec_set_specs
-<SUBSECTION Standard>
-GNOME_DB_DSN_SPEC
-GNOME_DB_DSN_SPEC_CLASS
-GNOME_DB_IS_DSN_SPEC
-GNOME_DB_IS_DSN_SPEC_CLASS
-GNOME_DB_TYPE_DSN_SPEC
-gnome_db_dsn_spec_get_type
+<FILE>gnome-db-provider-spec-editor</FILE>
+<TITLE>GnomeDbProviderSpecEditor</TITLE>
+GnomeDbProviderSpecEditor
+GnomeDbProviderSpecEditorClass
+GnomeDbProviderSpecEditorPrivate
+gnome_db_provider_spec_editor_new
+gnome_db_provider_spec_editor_set_provider
+gnome_db_provider_spec_editor_is_valid
+gnome_db_provider_spec_editor_get_specs
+gnome_db_provider_spec_editor_set_specs
+<SUBSECTION Standard>
+GNOME_DB_PROVIDER_SPEC_EDITOR
+GNOME_DB_PROVIDER_SPEC_EDITOR_CLASS
+GNOME_DB_IS_PROVIDER_SPEC_EDITOR
+GNOME_DB_IS_PROVIDER_SPEC_EDITOR_CLASS
+GNOME_DB_TYPE_PROVIDER_SPEC_EDITOR
+gnome_db_provider_spec_editor_get_type
 </SECTION>
 
 <SECTION>

Modified: trunk/doc/C/libgnomedb-4.0.types
==============================================================================
--- trunk/doc/C/libgnomedb-4.0.types	(original)
+++ trunk/doc/C/libgnomedb-4.0.types	Wed May 14 19:54:09 2008
@@ -8,12 +8,12 @@
 gnome_db_data_cell_renderer_info_get_type
 gnome_db_data_cell_renderer_textual_get_type
 gnome_db_data_entry_get_type
-gnome_db_data_source_selector_get_type
+gnome_db_dsn_selector_get_type
 gnome_db_data_store_get_type
 gnome_db_data_widget_get_type
 gnome_db_data_widget_info_get_type
 gnome_db_dsn_editor_get_type
-gnome_db_dsn_spec_get_type
+gnome_db_provider_spec_editor_get_type
 gnome_db_editor_get_type
 gnome_db_entry_boolean_get_type
 gnome_db_entry_cidr_get_type

Modified: trunk/doc/C/tmpl/gnome-db-data-source-selector.sgml
==============================================================================
--- trunk/doc/C/tmpl/gnome-db-data-source-selector.sgml	(original)
+++ trunk/doc/C/tmpl/gnome-db-data-source-selector.sgml	Wed May 14 19:54:09 2008
@@ -1,5 +1,5 @@
 <!-- ##### SECTION Title ##### -->
-GnomeDbDataSourceSelector
+GnomeDbDsnSelector
 
 <!-- ##### SECTION Short_Description ##### -->
 A combo box style widget to select a data source
@@ -17,31 +17,31 @@
 <!-- ##### SECTION Stability_Level ##### -->
 
 
-<!-- ##### STRUCT GnomeDbDataSourceSelector ##### -->
+<!-- ##### STRUCT GnomeDbDsnSelector ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### ARG GnomeDbDataSourceSelector:source-name ##### -->
+<!-- ##### ARG GnomeDbDsnSelector:source-name ##### -->
 <para>
 
 </para>
 
-<!-- ##### STRUCT GnomeDbDataSourceSelectorClass ##### -->
+<!-- ##### STRUCT GnomeDbDsnSelectorClass ##### -->
 <para>
 
 </para>
 
 @parent_class: 
 
-<!-- ##### STRUCT GnomeDbDataSourceSelectorPrivate ##### -->
+<!-- ##### STRUCT GnomeDbDsnSelectorPrivate ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gnome_db_data_source_selector_new ##### -->
+<!-- ##### FUNCTION gnome_db_dsn_selector_new ##### -->
 <para>
 
 </para>
@@ -50,7 +50,7 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION gnome_db_data_source_selector_get_dsn ##### -->
+<!-- ##### FUNCTION gnome_db_dsn_selector_get_dsn ##### -->
 <para>
 
 </para>
@@ -59,7 +59,7 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION gnome_db_data_source_selector_set_dsn ##### -->
+<!-- ##### FUNCTION gnome_db_dsn_selector_set_dsn ##### -->
 <para>
 
 </para>

Copied: trunk/doc/C/tmpl/gnome-db-provider-editor.sgml (from r1722, /trunk/doc/C/tmpl/gnome-db-dsn-spec.sgml)
==============================================================================
--- /trunk/doc/C/tmpl/gnome-db-dsn-spec.sgml	(original)
+++ trunk/doc/C/tmpl/gnome-db-provider-editor.sgml	Wed May 14 19:54:09 2008
@@ -1,12 +1,12 @@
 <!-- ##### SECTION Title ##### -->
-GnomeDbDsnSpec
+GnomeDbProviderSpecEditor
 
 <!-- ##### SECTION Short_Description ##### -->
 a form to enter information required to open a connection
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GnomeDbDsnSpec widget contains a form to display and edit
+The #GnomeDbProviderSpecEditor widget contains a form to display and edit
 the information required by a provider to open a connection.
 </para>
 
@@ -19,25 +19,25 @@
 <!-- ##### SECTION Stability_Level ##### -->
 
 
-<!-- ##### STRUCT GnomeDbDsnSpec ##### -->
+<!-- ##### STRUCT GnomeDbProviderSpecEditor ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### SIGNAL GnomeDbDsnSpec::changed ##### -->
+<!-- ##### SIGNAL GnomeDbProviderSpecEditor::changed ##### -->
 <para>
 
 </para>
 
 @dbdsnspec: the object which received the signal.
 
-<!-- ##### ARG GnomeDbDsnSpec:provider ##### -->
+<!-- ##### ARG GnomeDbProviderSpecEditor:provider ##### -->
 <para>
 
 </para>
 
-<!-- ##### STRUCT GnomeDbDsnSpecClass ##### -->
+<!-- ##### STRUCT GnomeDbProviderSpecEditorClass ##### -->
 <para>
 
 </para>
@@ -45,13 +45,13 @@
 @parent_class: 
 @changed: 
 
-<!-- ##### STRUCT GnomeDbDsnSpecPrivate ##### -->
+<!-- ##### STRUCT GnomeDbProviderSpecEditorPrivate ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gnome_db_dsn_spec_new ##### -->
+<!-- ##### FUNCTION gnome_db_provider_spec_editor_new ##### -->
 <para>
 
 </para>
@@ -60,7 +60,7 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION gnome_db_dsn_spec_set_provider ##### -->
+<!-- ##### FUNCTION gnome_db_provider_spec_editor_set_provider ##### -->
 <para>
 
 </para>
@@ -69,7 +69,7 @@
 @provider: 
 
 
-<!-- ##### FUNCTION gnome_db_dsn_spec_is_valid ##### -->
+<!-- ##### FUNCTION gnome_db_provider_spec_editor_is_valid ##### -->
 <para>
 
 </para>
@@ -78,7 +78,7 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION gnome_db_dsn_spec_get_specs ##### -->
+<!-- ##### FUNCTION gnome_db_provider_spec_editor_get_specs ##### -->
 <para>
 
 </para>
@@ -87,7 +87,7 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION gnome_db_dsn_spec_set_specs ##### -->
+<!-- ##### FUNCTION gnome_db_provider_spec_editor_set_specs ##### -->
 <para>
 
 </para>

Modified: trunk/doc/C/tmpl/gnome-db-provider-selector.sgml
==============================================================================
--- trunk/doc/C/tmpl/gnome-db-provider-selector.sgml	(original)
+++ trunk/doc/C/tmpl/gnome-db-provider-selector.sgml	Wed May 14 19:54:09 2008
@@ -44,31 +44,3 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION gnome_db_provider_selector_get_selected_provider ##### -->
-<para>
-
-</para>
-
- selector: 
- Returns: 
-
-
-<!-- ##### FUNCTION gnome_db_provider_selector_get_selected_provider_obj ##### -->
-<para>
-
-</para>
-
- selector: 
- Returns: 
-
-
-<!-- ##### FUNCTION gnome_db_provider_selector_set_selected_provider ##### -->
-<para>
-
-</para>
-
- selector: 
- provider: 
- Returns: 
-
-

Modified: trunk/extra/demos/ddl_queries.c
==============================================================================
--- trunk/extra/demos/ddl_queries.c	(original)
+++ trunk/extra/demos/ddl_queries.c	Wed May 14 19:54:09 2008
@@ -88,7 +88,7 @@
 		gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
 
 		wid = gnome_db_provider_selector_new ();
-		gnome_db_provider_selector_set_selected_provider (GNOME_DB_PROVIDER_SELECTOR (wid),
+		gnome_db_provider_selector_set_provider (GNOME_DB_PROVIDER_SELECTOR (wid),
 								  "SQLite");
 		gtk_table_attach (GTK_TABLE (table), wid, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
 		data->prov_sel = GNOME_DB_PROVIDER_SELECTOR (wid);
@@ -208,7 +208,7 @@
 		prov = data->prov;
 	else {
 		/* create the GdaServerProvider object */
-		data->prov = gnome_db_provider_selector_get_selected_provider_obj (data->prov_sel);
+		data->prov = gnome_db_provider_selector_get_provider_obj (data->prov_sel);
 		prov = data->prov;
 	}
 

Modified: trunk/glade/glade-gnomedb.c
==============================================================================
--- trunk/glade/glade-gnomedb.c	(original)
+++ trunk/glade/glade-gnomedb.c	Wed May 14 19:54:09 2008
@@ -58,7 +58,7 @@
 	glade_register_widget (GNOME_DB_TYPE_CONNECTION_PROPERTIES,
 			       glade_standard_build_widget,
 			       NULL, NULL);
-	glade_register_widget (GNOME_DB_TYPE_DATA_SOURCE_SELECTOR,
+	glade_register_widget (GNOME_DB_TYPE_DSN_SELECTOR,
 			       glade_standard_build_widget,
 			       NULL, NULL);
 #ifdef HAVE_GTKTWOTEN

Modified: trunk/glade3/gnomedb.xml.in
==============================================================================
--- trunk/glade3/gnomedb.xml.in	(original)
+++ trunk/glade3/gnomedb.xml.in	Wed May 14 19:54:09 2008
@@ -37,7 +37,7 @@
 
     <glade-widget-class name="GnomeDbDataImport" generic-name="gnome-db-data-import" title="Data Import" />
 
-    <glade-widget-class name="GnomeDbDataSourceSelector" generic-name="gnome-db-data-source-selector" title="DSN selector">
+    <glade-widget-class name="GnomeDbDsnSelector" generic-name="gnome-db-dsn-selector" title="DSN selector">
       <properties>
         <property id="layout_spec" ignore = "True" />
         <property id="items" disabled = "True" />
@@ -59,7 +59,7 @@
       </properties>
     </glade-widget-class>
 
-    <glade-widget-class name="GnomeDbDsnSpec" generic-name="gnome-db-dsn-spec" title="Connection specifics editor">
+    <glade-widget-class name="GnomeDbProviderSpecEditor" generic-name="gnome-db-provider-spec-editor" title="Connection specifics editor">
       <properties>
          <property id="size" disabled = "True" />
       </properties>
@@ -275,7 +275,7 @@
     <glade-widget-class-ref name="GnomeDbConnectionProperties"/>    
     <glade-widget-class-ref name="GnomeDbDsnAssistant"/>
     <glade-widget-class-ref name="GnomeDbDsnEditor"/>
-    <glade-widget-class-ref name="GnomeDbDsnSpec"/>
+    <glade-widget-class-ref name="GnomeDbProviderSpecEditor"/>
     <glade-widget-class-ref name="GnomeDbErrorDialog"/>
     <glade-widget-class-ref name="GnomeDbError"/>
     <glade-widget-class-ref name="GnomeDbReportEditor"/>

Modified: trunk/libgnomedb-extra/data/Makefile.am
==============================================================================
--- trunk/libgnomedb-extra/data/Makefile.am	(original)
+++ trunk/libgnomedb-extra/data/Makefile.am	Wed May 14 19:54:09 2008
@@ -30,3 +30,6 @@
 	UniqueConstraint.png \
 	View.png \
 	Views.png
+
+EXTRA_DIST = \
+	$(pixmap_DATA)

Modified: trunk/libgnomedb-graph/Makefile.am
==============================================================================
--- trunk/libgnomedb-graph/Makefile.am	(original)
+++ trunk/libgnomedb-graph/Makefile.am	Wed May 14 19:54:09 2008
@@ -20,6 +20,7 @@
 libgnomedb_graph_headers = \
 	$(global_header) \
 	gnome-db-canvas.h \
+	gnome-db-canvas-decl.h \
 	gnome-db-canvas-cursor.h \
 	gnome-db-canvas-db-relations.h \
 	gnome-db-canvas-table.h \

Modified: trunk/libgnomedb/Makefile.am
==============================================================================
--- trunk/libgnomedb/Makefile.am	(original)
+++ trunk/libgnomedb/Makefile.am	Wed May 14 19:54:09 2008
@@ -30,14 +30,15 @@
 	gnome-db-connection-properties.h \
 	gnome-db-data-entry.h \
 	gnome-db-data-import.h \
-	gnome-db-data-source-selector.h \
+	gnome-db-dsn-selector.h \
 	gnome-db-data-store.h \
 	gnome-db-data-widget.h \
 	gnome-db-data-widget-info.h \
 	gnome-db-data-widget-filter.h \
 	gnome-db-decl.h \
 	gnome-db-dsn-editor.h \
-	gnome-db-dsn-spec.h \
+	gnome-db-provider-auth-editor.h \
+	gnome-db-provider-spec-editor.h \
 	gnome-db-enum-types.h \
 	gnome-db-enums.h \
 	gnome-db-find-dialog.h \
@@ -73,13 +74,14 @@
 	gnome-db-connection-properties.c \
 	gnome-db-data-entry.c \
 	gnome-db-data-import.c \
-	gnome-db-data-source-selector.c \
+	gnome-db-dsn-selector.c \
 	gnome-db-data-store.c \
 	gnome-db-data-widget.c \
 	gnome-db-data-widget-info.c \
 	gnome-db-data-widget-filter.c \
 	gnome-db-dsn-editor.c \
-	gnome-db-dsn-spec.c \
+	gnome-db-provider-auth-editor.c \
+	gnome-db-provider-spec-editor.c \
 	gnome-db-find-dialog.c \
 	gnome-db-form.c \
 	gnome-db-grid.c \

Modified: trunk/libgnomedb/data-entries/gnome-db-entry-combo.c
==============================================================================
--- trunk/libgnomedb/data-entries/gnome-db-entry-combo.c	(original)
+++ trunk/libgnomedb/data-entries/gnome-db-entry-combo.c	Wed May 14 19:54:09 2008
@@ -566,7 +566,7 @@
 	g_return_val_if_fail (combo && GNOME_DB_IS_ENTRY_COMBO (combo), NULL);
 	g_return_val_if_fail (combo->priv, NULL);
 
-	return gnome_db_combo_get_values_ext (combo->priv->combo_entry, 0, NULL);
+	return gnome_db_combo_get_values_ext (GNOME_DB_COMBO (combo->priv->combo_entry), 0, NULL);
 }
 
 /**

Modified: trunk/libgnomedb/gnome-db-connection-properties.c
==============================================================================
--- trunk/libgnomedb/gnome-db-connection-properties.c	(original)
+++ trunk/libgnomedb/gnome-db-connection-properties.c	Wed May 14 19:54:09 2008
@@ -22,8 +22,10 @@
 
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
+#include <libgda/libgda.h>
 #include <libgnomedb/gnome-db-util.h>
 #include <libgnomedb/gnome-db-grid.h>
+#include <libgnomedb/gnome-db-transaction-status.h>
 #include "gnome-db-connection-properties.h"
 
 #define PARENT_TYPE GTK_TYPE_VBOX
@@ -32,10 +34,12 @@
 	GdaConnection *cnc;
 
 	/* widgets */
-	GtkWidget *connection_name;
-	GtkWidget *connection_string;
-	GtkWidget *connection_provider;
-	GtkWidget *connection_username;
+	GtkWidget *cnc_name;
+	GtkWidget *cnc_string;
+	GtkWidget *cnc_provider;
+	GtkWidget *cnc_username;
+	GtkWidget *cnc_status;
+	GtkWidget *cnc_trans;
 	GtkWidget *feature_list;
 };
 
@@ -61,24 +65,52 @@
 
 static GObjectClass *parent_class = NULL;
 
-/*
- * Private functions
- */
 
 static void
 refresh_widget (GnomeDbConnectionProperties *props)
 {
+	const gchar *cstr;
+	GdaQuarkList* ql;
+
 	g_return_if_fail (GNOME_DB_IS_CONNECTION_PROPERTIES (props));
 
-	gtk_entry_set_text (GTK_ENTRY (props->priv->connection_name),
-			    gda_connection_get_dsn (props->priv->cnc));
-	gtk_entry_set_text (GTK_ENTRY (props->priv->connection_string),
-			    gda_connection_get_cnc_string (props->priv->cnc));
-	gtk_entry_set_text (GTK_ENTRY (props->priv->connection_provider),
-			    gda_connection_get_provider_name (props->priv->cnc));
-	TO_IMPLEMENT;
-	/*gtk_entry_set_text (GTK_ENTRY (props->priv->connection_username),
-	  gda_connection_get_username (props->priv->cnc));*/
+	if (props->priv->cnc) {
+		cstr = gda_connection_get_dsn (props->priv->cnc);
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_name), cstr ? cstr : "");
+		cstr = gda_connection_get_cnc_string (props->priv->cnc);
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_string), cstr ? cstr : "");
+		cstr = gda_connection_get_provider_name (props->priv->cnc);
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_provider), cstr ? cstr : "");
+		
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_status), 
+				    gda_connection_is_opened (props->priv->cnc) ? _("Opened"): _("Closed"));
+		
+		/* only get USERNAME from the the authentication string */
+		cstr =  gda_connection_get_authentication (props->priv->cnc);
+		ql = gda_quark_list_new_from_string (cstr);
+		cstr = gda_quark_list_find (ql, "USERNAME");
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_username), cstr ? cstr : "");
+		gda_quark_list_free (ql);
+	}
+	else {
+		gtk_label_set_markup (GTK_LABEL (props->priv->cnc_name), "");
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_string), "");
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_provider), "");
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_status), "");
+		gtk_label_set_text (GTK_LABEL (props->priv->cnc_username), "");
+	}
+}
+
+static void
+cnc_status_changed_cb (GdaConnection *cnc, GnomeDbConnectionProperties *props)
+{
+	refresh_widget (props);
+}
+
+static void
+cnc_error_cb (GdaConnection *cnc, GdaConnectionEvent *event, GnomeDbConnectionProperties *props)
+{
+	refresh_widget (props);
 }
 
 /*
@@ -98,8 +130,47 @@
 
 	g_object_class_install_property (object_class, PROP_CNC,
 	                                 g_param_spec_object("connection", NULL, NULL,
-					                     GDA_TYPE_CONNECTION,
-							     G_PARAM_READWRITE));
+					                     GDA_TYPE_CONNECTION, G_PARAM_READWRITE));
+}
+
+static const gchar *
+get_feature_name (GdaConnectionFeature f)
+{
+	switch (f) {
+	case GDA_CONNECTION_FEATURE_AGGREGATES:
+		return _("Aggregates");
+	case GDA_CONNECTION_FEATURE_BLOBS:
+		return _("Blobs");
+	case GDA_CONNECTION_FEATURE_INDEXES:
+		return _("Indexes");
+	case GDA_CONNECTION_FEATURE_INHERITANCE:
+		return _("Inheritance");
+	case GDA_CONNECTION_FEATURE_NAMESPACES:
+		return _("Namespaces");
+	case GDA_CONNECTION_FEATURE_PROCEDURES:
+		return _("Procedures");
+	case GDA_CONNECTION_FEATURE_SEQUENCES:
+		return _("Sequences");
+	case GDA_CONNECTION_FEATURE_SQL:
+		return _("SQL");
+	case GDA_CONNECTION_FEATURE_TRANSACTIONS:
+		return _("Transactions");
+	case GDA_CONNECTION_FEATURE_SAVEPOINTS:
+		return _("Savepoints");
+	case GDA_CONNECTION_FEATURE_SAVEPOINTS_REMOVE:
+		return _("Savepoint removal");
+	case GDA_CONNECTION_FEATURE_TRIGGERS:
+		return _("Triggers");
+	case GDA_CONNECTION_FEATURE_UPDATABLE_CURSOR:
+		return _("Updatable cursors");
+	case GDA_CONNECTION_FEATURE_USERS:
+		return _("Users definition");
+	case GDA_CONNECTION_FEATURE_VIEWS:
+		return _("Views");
+	default:
+		g_warning ("Unknown GdaConnectionFeature %d", f);
+		return "Unknown feature";
+	}
 }
 
 static void
@@ -132,52 +203,116 @@
 	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
 	gtk_widget_show (label);
 
-	table = gnome_db_new_table_widget (6, 3, FALSE);
+	table = gtk_table_new (6, 2, FALSE);
 	gtk_box_pack_start (GTK_BOX (hbox), table, TRUE, TRUE, 0);	
 
-	label = gnome_db_new_label_widget (_("Data source name"));
+	label = gtk_label_new (_("Data source name:"));
+	gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 2, 2);
-	props->priv->connection_name = gnome_db_new_entry_widget (0, FALSE);
-	gtk_table_attach (GTK_TABLE (table), props->priv->connection_name,
+	props->priv->cnc_name = gtk_label_new ("");
+	gtk_misc_set_alignment (GTK_MISC (props->priv->cnc_name), 0., -1);
+	gtk_label_set_selectable (GTK_LABEL (props->priv->cnc_name), TRUE);
+	gtk_table_attach (GTK_TABLE (table), props->priv->cnc_name,
 			  1, 2, 0, 1, GTK_FILL, GTK_FILL, 2, 2);
 
-	label = gnome_db_new_label_widget (_("Connection string"));
+	label = gtk_label_new (_("Connection string:"));
+	gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 2, 2);
-	props->priv->connection_string = gnome_db_new_entry_widget (0, FALSE);
-	gtk_table_attach (GTK_TABLE (table), props->priv->connection_string,
+	props->priv->cnc_string = gtk_label_new ("");
+	gtk_misc_set_alignment (GTK_MISC (props->priv->cnc_string), 0., -1);
+	gtk_label_set_line_wrap (GTK_LABEL (props->priv->cnc_string), TRUE);
+	gtk_label_set_selectable (GTK_LABEL (props->priv->cnc_string), TRUE);
+	gtk_table_attach (GTK_TABLE (table), props->priv->cnc_string,
 			  1, 2, 1, 2, GTK_FILL, GTK_FILL, 2, 2);
 
-	label = gnome_db_new_label_widget (_("Provider"));
+	label = gtk_label_new (_("Provider:"));
+	gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 2, 2);
-	props->priv->connection_provider = gnome_db_new_entry_widget (0, FALSE);
-	gtk_table_attach (GTK_TABLE (table), props->priv->connection_provider,
+	props->priv->cnc_provider = gtk_label_new ("");
+	gtk_misc_set_alignment (GTK_MISC (props->priv->cnc_provider), 0., -1);
+	gtk_label_set_selectable (GTK_LABEL (props->priv->cnc_provider), TRUE);
+	gtk_table_attach (GTK_TABLE (table), props->priv->cnc_provider,
 			  1, 2, 2, 3, GTK_FILL, GTK_FILL, 2, 2);
 
-	label = gnome_db_new_label_widget (_("User name"));
+	label = gtk_label_new (_("User name:"));
+	gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL, GTK_FILL, 2, 2);
-	props->priv->connection_username = gnome_db_new_entry_widget (0, FALSE);
-	gtk_table_attach (GTK_TABLE (table), props->priv->connection_username,
+	props->priv->cnc_username = gtk_label_new ("");
+	gtk_misc_set_alignment (GTK_MISC (props->priv->cnc_username), 0., -1);
+	gtk_label_set_selectable (GTK_LABEL (props->priv->cnc_username), TRUE);
+	gtk_table_attach (GTK_TABLE (table), props->priv->cnc_username,
 			  1, 2, 3, 4, GTK_FILL, GTK_FILL, 2, 2);
 
+	label = gtk_label_new (_("Status:"));
+	gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
+	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5, GTK_FILL, GTK_FILL, 2, 2);
+	props->priv->cnc_status = gtk_label_new ("");
+	gtk_misc_set_alignment (GTK_MISC (props->priv->cnc_status), 0., -1);
+	gtk_label_set_selectable (GTK_LABEL (props->priv->cnc_status), TRUE);
+	gtk_table_attach (GTK_TABLE (table), props->priv->cnc_status,
+			  1, 2, 4, 5, GTK_FILL, GTK_FILL, 2, 2);
+
 	/* create feature list */
+	GtkWidget *exp;
+
+	exp = gtk_expander_new ("");
 	str = g_strdup_printf ("<b>%s:</b>", _("Features"));
 	label = gtk_label_new ("");
 	gtk_label_set_markup (GTK_LABEL (label), str);
 	gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
 	g_free (str);
-	gtk_box_pack_start (GTK_BOX (props), label, FALSE, TRUE, 2);
+	gtk_expander_set_label_widget (GTK_EXPANDER (exp), label);
+	
+	gtk_box_pack_start (GTK_BOX (props), exp, FALSE, FALSE, 2);
 
 	hbox = gtk_hbox_new (FALSE, 0); /* HIG */
-	gtk_box_pack_start (GTK_BOX (props), hbox, FALSE, FALSE, 0);
+	gtk_container_add (GTK_CONTAINER (exp), hbox);
 	gtk_widget_show (hbox);
 	label = gtk_label_new ("    ");
 	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
 	gtk_widget_show (label);
 
-	/* props->priv->feature_list = gnome_db_new_grid_widget (NULL); */
-	/* gnome_db_grid_set_show_title (GNOME_DB_GRID (props->priv->feature_list), FALSE); */
-	props->priv->feature_list = gtk_label_new ("Not yet implemented");
-	gtk_box_pack_start (GTK_BOX (hbox), props->priv->feature_list, TRUE, TRUE, 0);	
+	GdaConnectionFeature f;
+	props->priv->feature_list = gtk_table_new (GDA_CONNECTION_FEATURE_LAST, 2, FALSE);
+	gtk_table_set_row_spacings (GTK_TABLE (props->priv->feature_list), 6);
+        gtk_table_set_col_spacings (GTK_TABLE (props->priv->feature_list), 6);
+	for (f = 0; f < GDA_CONNECTION_FEATURE_LAST; f++) {
+		gchar *str;
+		label = gtk_label_new (get_feature_name (f));
+		gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
+		gtk_table_attach (GTK_TABLE (props->priv->feature_list), label, 0, 1, f, f+1, GTK_FILL, GTK_FILL, 0, 0);
+		label = gtk_label_new ("");
+		gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
+		gtk_table_attach (GTK_TABLE (props->priv->feature_list), label, 1, 2, f, f+1, GTK_FILL, GTK_FILL, 0, 0);
+		str = g_strdup_printf ("_f%d", f);
+		g_object_set_data (G_OBJECT (props->priv->feature_list), str, label);
+		g_free (str);
+	}
+	gtk_box_pack_start (GTK_BOX (hbox), props->priv->feature_list, TRUE, TRUE, 0);
+
+	/* transaction status */
+	exp = gtk_expander_new ("");
+	str = g_strdup_printf ("<b>%s:</b>", _("Transaction status"));
+	label = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (label), str);
+	gtk_misc_set_alignment (GTK_MISC (label), 0., -1);
+	g_free (str);
+	gtk_expander_set_label_widget (GTK_EXPANDER (exp), label);
+	
+	gtk_box_pack_start (GTK_BOX (props), exp, FALSE, FALSE, 2);
+
+	hbox = gtk_hbox_new (FALSE, 0); /* HIG */
+	gtk_container_add (GTK_CONTAINER (exp), hbox);
+	gtk_widget_show (hbox);
+	label = gtk_label_new ("    ");
+	gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+	gtk_widget_show (label);
+
+	props->priv->cnc_trans = gnome_db_transaction_status_new (NULL);
+	gtk_box_pack_start (GTK_BOX (hbox), props->priv->cnc_trans, TRUE, TRUE, 0);
+
+	gtk_widget_show_all ((GtkWidget*) props);
+	gtk_widget_hide ((GtkWidget*) props);
 }
 
 static void
@@ -189,6 +324,10 @@
 
 	/* free memory */
 	if (GDA_IS_CONNECTION (props->priv->cnc)) {
+		g_signal_handlers_disconnect_by_func (props->priv->cnc,
+						      G_CALLBACK (cnc_status_changed_cb), props);
+		g_signal_handlers_disconnect_by_func (props->priv->cnc,
+						      G_CALLBACK (cnc_error_cb), props);
 		g_object_unref (G_OBJECT (props->priv->cnc));
 		props->priv->cnc = NULL;
 	}
@@ -200,10 +339,11 @@
 	parent_class->finalize (object);
 }
 
-static void gnome_db_connection_properties_set_property (GObject *object,
-                                                         guint param_id,
-                                                         const GValue *value,
-                                                         GParamSpec *pspec)
+static void
+gnome_db_connection_properties_set_property (GObject *object,
+					     guint param_id,
+					     const GValue *value,
+					     GParamSpec *pspec)
 {
 	GnomeDbConnectionProperties *properties;
 	GdaConnection *cnc;
@@ -213,16 +353,17 @@
 	switch (param_id)
 	{
 	case PROP_CNC:
-		cnc = GDA_CONNECTION (g_value_get_object (value));
+		cnc = (GdaConnection*) g_value_get_object (value);
 		gnome_db_connection_properties_set_connection (properties, cnc);
 		break;
 	}
 }
 
-static void gnome_db_connection_properties_get_property (GObject* object,
-                                                         guint param_id,
-                                                         GValue *value,
-                                                         GParamSpec *pspec)
+static void
+gnome_db_connection_properties_get_property (GObject* object,
+					     guint param_id,
+					     GValue *value,
+					     GParamSpec *pspec)
 {
 	GnomeDbConnectionProperties *properties;
 
@@ -299,19 +440,48 @@
  *
  */
 void
-gnome_db_connection_properties_set_connection (GnomeDbConnectionProperties *props,
-					       GdaConnection *cnc)
+gnome_db_connection_properties_set_connection (GnomeDbConnectionProperties *props, GdaConnection *cnc)
 {
+	GdaConnectionFeature f;
+
 	g_return_if_fail (GNOME_DB_IS_CONNECTION_PROPERTIES (props));
+	g_return_if_fail (!cnc || GDA_IS_CONNECTION (cnc));
 
-	if (GDA_IS_CONNECTION (props->priv->cnc))
+	if (GDA_IS_CONNECTION (props->priv->cnc)) {
+		g_signal_handlers_disconnect_by_func (props->priv->cnc,
+						      G_CALLBACK (cnc_status_changed_cb), props);
+		g_signal_handlers_disconnect_by_func (props->priv->cnc,
+						      G_CALLBACK (cnc_error_cb), props);
 		g_object_unref (G_OBJECT (props->priv->cnc));
+	}
 
 	props->priv->cnc = cnc;
-	if (GDA_IS_CONNECTION (props->priv->cnc)) {
+	for (f = 0; f < GDA_CONNECTION_FEATURE_LAST; f++) {
+		gchar *str;
+		GtkWidget *label;
+		str = g_strdup_printf ("_f%d", f);
+		label = g_object_get_data (G_OBJECT (props->priv->feature_list), str);
+		g_free (str);
+		if (cnc && gda_connection_supports_feature (cnc, f))
+			gtk_label_set_text (GTK_LABEL (label), _("Yes"));
+		else
+			gtk_label_set_text (GTK_LABEL (label), _("No"));
+	}
+
+	if (props->priv->cnc) {
 		g_object_ref (G_OBJECT (props->priv->cnc));
 		refresh_widget (props);
+		g_signal_connect (G_OBJECT (props->priv->cnc), "conn-closed",
+				  G_CALLBACK (cnc_status_changed_cb), props);
+		g_signal_connect (G_OBJECT (props->priv->cnc), "conn-opened",
+				  G_CALLBACK (cnc_status_changed_cb), props);
+		g_signal_connect (G_OBJECT (props->priv->cnc), "dsn-changed",
+				  G_CALLBACK (cnc_status_changed_cb), props);
+		g_signal_connect (G_OBJECT (props->priv->cnc), "error",
+				  G_CALLBACK (cnc_error_cb), props);
 	}
 
+	g_object_set (G_OBJECT (props->priv->cnc_trans), "connection", props->priv->cnc, NULL);
+
 	g_object_notify (G_OBJECT (props), "connection");
 }

Modified: trunk/libgnomedb/gnome-db-connection-properties.h
==============================================================================
--- trunk/libgnomedb/gnome-db-connection-properties.h	(original)
+++ trunk/libgnomedb/gnome-db-connection-properties.h	Wed May 14 19:54:09 2008
@@ -1,5 +1,5 @@
 /* GNOME DB library
- * Copyright (C) 1999-2002 The GNOME Foundation.
+ * Copyright (C) 1999 - 2008 The GNOME Foundation.
  *
  * AUTHORS:
  *	Rodrigo Moya <rodrigo gnome-db org>
@@ -47,8 +47,8 @@
 	GtkVBoxClass parent_class;
 };
 
-GType          gnome_db_connection_properties_get_type (void) G_GNUC_CONST;
-GtkWidget     *gnome_db_connection_properties_new (GdaConnection *cnc);
+GType          gnome_db_connection_properties_get_type       (void) G_GNUC_CONST;
+GtkWidget     *gnome_db_connection_properties_new            (GdaConnection *cnc);
 GdaConnection *gnome_db_connection_properties_get_connection (GnomeDbConnectionProperties *props);
 void           gnome_db_connection_properties_set_connection (GnomeDbConnectionProperties *props,
 							      GdaConnection *cnc);

Modified: trunk/libgnomedb/gnome-db-dsn-assistant.c
==============================================================================
--- trunk/libgnomedb/gnome-db-dsn-assistant.c	(original)
+++ trunk/libgnomedb/gnome-db-dsn-assistant.c	Wed May 14 19:54:09 2008
@@ -27,7 +27,8 @@
 #include <libgda/gda-holder.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <libgnomedb/gnome-db-dsn-assistant.h>
-#include <libgnomedb/gnome-db-dsn-spec.h>
+#include <libgnomedb/gnome-db-provider-spec-editor.h>
+#include <libgnomedb/gnome-db-provider-auth-editor.h>
 #include <libgnomedb/gnome-db-provider-selector.h>
 #include <libgnomedb/gnome-db-util.h>
 #include <libgnomedb/gnome-db-server-operation.h>
@@ -43,7 +44,8 @@
 	PAGE_OPT_CREATE_DB   = 2,
 	PAGE_CREATE_DB_INFO  = 3,
 	PAGE_CONNECT_INFO    = 4,
-	PAGE_LAST            = 5
+	PAGE_AUTH_INFO       = 5,
+	PAGE_LAST            = 6
 };
 
 struct _GnomeDbDsnAssistantPrivate {
@@ -57,8 +59,6 @@
 	GtkWidget *general_name;
 	GtkWidget *general_provider;
 	GtkWidget *general_description;
-	GtkWidget *general_username;
-	GtkWidget *general_password;
 	GtkWidget *general_is_system;
 
 	GtkWidget *choose_toggle;
@@ -69,6 +69,10 @@
 	GtkWidget *cnc_params_page;
 	GtkWidget *provider_container;
 	GtkWidget *provider_detail;
+
+	GtkWidget *cnc_auth_page;
+	GtkWidget *auth_container;
+	GtkWidget *auth_detail;
 };
 
 static void gnome_db_dsn_assistant_class_init (GnomeDbDsnAssistantClass *klass);
@@ -146,7 +150,7 @@
 			}
 			
 			/* make the connection string for the data source */
-			prov_info = gda_config_get_provider_info (gnome_db_provider_selector_get_selected_provider 
+			prov_info = gda_config_get_provider_info (gnome_db_provider_selector_get_provider 
 								  (GNOME_DB_PROVIDER_SELECTOR (assistant->priv->general_provider)));
 			g_return_if_fail (prov_info);
 			for (dsn_params = prov_info->dsn_params->holders; dsn_params; dsn_params = dsn_params->next) {
@@ -181,15 +185,15 @@
 		assistant->priv->dsn_info = g_new0 (GdaDataSourceInfo, 1);
 		assistant->priv->dsn_info->name = g_strdup (gtk_entry_get_text (GTK_ENTRY (assistant->priv->general_name)));
 		assistant->priv->dsn_info->provider = g_strdup (
-					 gnome_db_provider_selector_get_selected_provider (
+					 gnome_db_provider_selector_get_provider (
 					 GNOME_DB_PROVIDER_SELECTOR (assistant->priv->general_provider)));
 		if (cnc_string) {
 			assistant->priv->dsn_info->cnc_string = cnc_string->str;
 			g_string_free (cnc_string, FALSE);
 		}
 		else
-			assistant->priv->dsn_info->cnc_string = gnome_db_dsn_spec_get_specs 
-				(GNOME_DB_DSN_SPEC (assistant->priv->provider_detail));
+			assistant->priv->dsn_info->cnc_string = gnome_db_provider_spec_editor_get_specs 
+				(GNOME_DB_PROVIDER_SPEC_EDITOR (assistant->priv->provider_detail));
 		assistant->priv->dsn_info->description =
 			g_strdup (gtk_entry_get_text (GTK_ENTRY (assistant->priv->general_description)));
 		assistant->priv->dsn_info->auth_string = NULL; TO_IMPLEMENT;
@@ -209,7 +213,7 @@
 {
 	if (! assistant->priv->create_db_op) 
 		assistant->priv->create_db_op = 
-			gda_prepare_create_database (gnome_db_provider_selector_get_selected_provider (
+			gda_prepare_create_database (gnome_db_provider_selector_get_provider (
 						     GNOME_DB_PROVIDER_SELECTOR (assistant->priv->general_provider)),
 						     NULL, NULL);
 
@@ -217,11 +221,19 @@
 }
 
 static void
-dsn_spec_changed_cb (GnomeDbDsnSpec *spec, GnomeDbDsnAssistant *assistant)
+dsn_spec_changed_cb (GnomeDbProviderSpecEditor *spec, GnomeDbDsnAssistant *assistant)
 {
 	gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant),
 					 assistant->priv->cnc_params_page,
-					 gnome_db_dsn_spec_is_valid (spec));
+					 gnome_db_provider_spec_editor_is_valid (spec));
+}
+
+static void
+dsn_auth_changed_cb (GnomeDbProviderAuthEditor *auth, GnomeDbDsnAssistant *assistant)
+{
+	gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant),
+					 assistant->priv->cnc_auth_page,
+					 gnome_db_provider_auth_editor_is_valid (auth));
 }
 
 static void
@@ -244,7 +256,6 @@
 	/* is the database creation supported by the chosen provider? */
 	op = get_specs_database_creation (assistant);
 	if (op) {
-		/*assistant->priv->newdb_params = gnome_db_server_operation_new (op);*/
 		assistant->priv->newdb_params = g_object_new (GNOME_DB_TYPE_SERVER_OPERATION, 
 							      "opt_header", TRUE, "server_operation", op, NULL);
 		gtk_widget_show (assistant->priv->newdb_params);
@@ -257,11 +268,10 @@
 		gtk_widget_set_sensitive (assistant->priv->choose_toggle, FALSE);
 
 	/* dsn spec for the selected provider */
-	provider = gnome_db_provider_selector_get_selected_provider (
-			     GNOME_DB_PROVIDER_SELECTOR (assistant->priv->general_provider));
+	provider = gnome_db_provider_selector_get_provider (GNOME_DB_PROVIDER_SELECTOR (assistant->priv->general_provider));
 	g_assert (provider);
 	if (!assistant->priv->provider_detail) {
-		assistant->priv->provider_detail = gnome_db_dsn_spec_new (provider);
+		assistant->priv->provider_detail = gnome_db_provider_spec_editor_new (provider);
 		gtk_box_pack_start (GTK_BOX (assistant->priv->provider_container),
 				    assistant->priv->provider_detail, TRUE, TRUE, 0);
 		gtk_widget_show (assistant->priv->provider_detail);
@@ -269,7 +279,19 @@
 				  G_CALLBACK (dsn_spec_changed_cb), assistant);
 	}
 	else
-		gnome_db_dsn_spec_set_provider (GNOME_DB_DSN_SPEC (assistant->priv->provider_detail), provider);
+		gnome_db_provider_spec_editor_set_provider (GNOME_DB_PROVIDER_SPEC_EDITOR (assistant->priv->provider_detail), provider);
+
+	/* dsn authentication for the selected provider */
+	if (!assistant->priv->auth_detail) {
+		assistant->priv->auth_detail = gnome_db_provider_auth_editor_new (provider);
+		gtk_box_pack_start (GTK_BOX (assistant->priv->auth_container),
+				    assistant->priv->auth_detail, TRUE, TRUE, 0);
+		gtk_widget_show (assistant->priv->auth_detail);
+		g_signal_connect (assistant->priv->auth_detail, "changed",
+				  G_CALLBACK (dsn_auth_changed_cb), assistant);
+	}
+	else
+		gnome_db_provider_auth_editor_set_provider (GNOME_DB_PROVIDER_AUTH_EDITOR (assistant->priv->auth_detail), provider);
 }
 
 static void
@@ -349,7 +371,19 @@
 			return PAGE_CONNECT_INFO;
 	case PAGE_CREATE_DB_INFO:
 		return PAGE_LAST;
-	case PAGE_CONNECT_INFO:
+	case PAGE_CONNECT_INFO: {
+		GdaProviderInfo *pinfo;
+		const gchar *provider;
+		provider = gnome_db_provider_selector_get_provider (GNOME_DB_PROVIDER_SELECTOR (assistant->priv->general_provider));
+		g_assert (provider);
+		pinfo = gda_config_get_provider_info (provider);
+		g_assert (pinfo);
+		if (pinfo->auth_params && pinfo->auth_params->holders) 
+			return PAGE_AUTH_INFO;
+		else
+			return PAGE_LAST;
+	}
+	case PAGE_AUTH_INFO:
 		return PAGE_LAST;
 	case PAGE_LAST:
 		break;
@@ -409,7 +443,7 @@
 	 */
 	vbox = gtk_vbox_new (FALSE, 5);
 
-	table = gtk_table_new (7, 2, FALSE);
+	table = gtk_table_new (5, 2, FALSE);
 	gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
 	gtk_container_set_border_width (GTK_CONTAINER (table), 10);
 	gtk_table_set_row_spacings (GTK_TABLE (table), 3);
@@ -466,20 +500,6 @@
 	
 	assistant->priv->general_description = gnome_db_new_entry_widget (0, TRUE);
 	gtk_table_attach_defaults (GTK_TABLE (table), assistant->priv->general_description, 1, 2, 4, 5);
-
-	label = gtk_label_new (_("Username:"));
-	gtk_misc_set_alignment (GTK_MISC (label), 0., 0.);
-	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 5, 6, GTK_FILL, 0, 0, 0);
-	
-	assistant->priv->general_username = gnome_db_new_entry_widget (0, TRUE);
-	gtk_table_attach_defaults (GTK_TABLE (table), assistant->priv->general_username, 1, 2, 5, 6);
-
-	label = gtk_label_new (_("Password:"));
-	gtk_misc_set_alignment (GTK_MISC (label), 0., 0.);
-	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 6, 7, GTK_FILL, 0, 0, 0);
-	
-	assistant->priv->general_password = gnome_db_new_entry_widget (0, TRUE);
-	gtk_table_attach_defaults (GTK_TABLE (table), assistant->priv->general_password, 1, 2, 6, 7);
 	
 	gtk_widget_show_all (vbox);
 
@@ -585,6 +605,30 @@
 	assistant->priv->cnc_params_page = vbox;
 
 	/* 
+	 * authentication page 
+	 */
+	vbox = gtk_vbox_new (FALSE, 5);
+	gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
+	
+	label = gnome_db_new_label_widget (NULL);
+	gtk_label_set_markup (GTK_LABEL (label),
+			      _("The following fields represent the authentication information needed "
+				"to open a connection."));
+	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+	gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+	assistant->priv->auth_container = gnome_db_new_vbox_widget (FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (vbox), assistant->priv->auth_container, TRUE, TRUE, 0);
+
+	gtk_widget_show_all (vbox);
+
+	gtk_assistant_append_page (assist, vbox);
+	gtk_assistant_set_page_title (assist, vbox, _("Authentication parameters"));
+	gtk_assistant_set_page_header_image (assist, vbox, assistant->priv->logo);
+	gtk_assistant_set_page_type (assist, vbox, GTK_ASSISTANT_PAGE_CONTENT);
+	assistant->priv->cnc_auth_page = vbox;
+
+	/* 
 	 * end page 
 	 */
 	vbox = gtk_vbox_new (FALSE, 5);

Modified: trunk/libgnomedb/gnome-db-dsn-editor.c
==============================================================================
--- trunk/libgnomedb/gnome-db-dsn-editor.c	(original)
+++ trunk/libgnomedb/gnome-db-dsn-editor.c	Wed May 14 19:54:09 2008
@@ -30,7 +30,8 @@
 #include <libgnomedb/gnome-db-util.h>
 #include <libgnomedb/gnome-db-basic-form.h>
 #include <glib/gi18n-lib.h>
-#include "gnome-db-dsn-spec.h"
+#include "gnome-db-provider-spec-editor.h"
+#include "gnome-db-provider-auth-editor.h"
 
 #define PARENT_TYPE GTK_TYPE_VBOX
 
@@ -38,12 +39,14 @@
 	GtkWidget *wname;
 	GtkWidget *wprovider;
 	GtkWidget *wdesc;
-	GtkWidget *wauth;
 	GtkWidget *is_system;
 
-	GtkWidget *expander;
+	GtkWidget *dsn_spec_expander;
 	GtkWidget *dsn_spec;
 
+	GtkWidget *dsn_auth_expander;
+	GtkWidget *dsn_auth;	
+
 	GdaDataSourceInfo *dsn_info;
 };
 
@@ -90,8 +93,8 @@
 {
 	if (widget == config->priv->wprovider) 
 		/* replace the expander's contents */
-		gnome_db_dsn_spec_set_provider (GNOME_DB_DSN_SPEC (config->priv->dsn_spec),
-						gnome_db_provider_selector_get_selected_provider 
+		gnome_db_provider_spec_editor_set_provider (GNOME_DB_PROVIDER_SPEC_EDITOR (config->priv->dsn_spec),
+						gnome_db_provider_selector_get_provider 
 						(GNOME_DB_PROVIDER_SELECTOR (config->priv->wprovider)));
 
 	g_signal_emit (config, gnome_db_dsn_editor_signals[CHANGED], 0, NULL);
@@ -118,7 +121,7 @@
 	config->priv->dsn_info = g_new0 (GdaDataSourceInfo, 1);
 
 	/* set up widgets */
-	table = gnome_db_new_table_widget (7, 3, FALSE);
+	table = gnome_db_new_table_widget (8, 3, FALSE);
 	gtk_box_pack_start (GTK_BOX (config), table, TRUE, TRUE, 0);
 
 	str = g_strdup_printf ("%s <span foreground='red' weight='bold'>*</span>", _("Data source _name:"));
@@ -175,29 +178,32 @@
 	gtk_table_attach (GTK_TABLE (table), config->priv->wdesc, 1, 2, 3, 4,
 			  GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0);
 
-	TO_IMPLEMENT; /* handle correctly authentification */
-	label = gnome_db_new_label_widget (_("_Authentification:"));
-	gtk_widget_show (label);
-	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5, GTK_FILL, GTK_FILL, 0, 0);
-	config->priv->wauth = gnome_db_new_entry_widget (0, TRUE);
-	gtk_label_set_mnemonic_widget (GTK_LABEL (label), config->priv->wauth);
-	gtk_widget_show (config->priv->wauth);
-	g_signal_connect (G_OBJECT (config->priv->wauth), "changed",
-			  G_CALLBACK (field_changed_cb), config);
-	gtk_table_attach (GTK_TABLE (table), config->priv->wauth, 1, 2, 4, 5,
+	/* connection's spec */
+	exp = gtk_expander_new (_("Connection's parameters"));
+	config->priv->dsn_spec_expander = exp;
+	gtk_widget_show (exp);
+	gtk_table_attach (GTK_TABLE (table), config->priv->dsn_spec_expander, 0, 2, 6, 7,
 			  GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0);
+	config->priv->dsn_spec = gnome_db_provider_spec_editor_new (gnome_db_provider_selector_get_provider 
+							(GNOME_DB_PROVIDER_SELECTOR (config->priv->wprovider)));
+	g_signal_connect (G_OBJECT (config->priv->dsn_spec), "changed",
+			  G_CALLBACK (field_changed_cb), config);
+	gtk_container_add (GTK_CONTAINER (config->priv->dsn_spec_expander), config->priv->dsn_spec);
+	gtk_widget_show (config->priv->dsn_spec);
 
-	exp = gtk_expander_new (_("Connection's specific parameters"));
-	config->priv->expander = exp;
+	/* connection's authentication */
+	exp = gtk_expander_new (_("Authentication"));
+	config->priv->dsn_auth_expander = exp;
 	gtk_widget_show (exp);
-	gtk_table_attach (GTK_TABLE (table), config->priv->expander, 0, 2, 6, 7,
+	gtk_table_attach (GTK_TABLE (table), config->priv->dsn_auth_expander, 0, 2, 7, 8,
 			  GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0);
-	config->priv->dsn_spec = gnome_db_dsn_spec_new (gnome_db_provider_selector_get_selected_provider 
+	config->priv->dsn_auth = gnome_db_provider_auth_editor_new (gnome_db_provider_selector_get_provider 
 							(GNOME_DB_PROVIDER_SELECTOR (config->priv->wprovider)));
-	g_signal_connect (G_OBJECT (config->priv->dsn_spec), "changed",
+	g_signal_connect (G_OBJECT (config->priv->dsn_auth), "changed",
 			  G_CALLBACK (field_changed_cb), config);
-	gtk_container_add (GTK_CONTAINER (config->priv->expander), config->priv->dsn_spec);
+	gtk_container_add (GTK_CONTAINER (config->priv->dsn_auth_expander), config->priv->dsn_auth);
 	gtk_widget_show (config->priv->dsn_spec);
+
 }
 
 static void
@@ -280,11 +286,11 @@
 	g_free (dsn_info->description); dsn_info->description = NULL;
 	g_free (dsn_info->auth_string); dsn_info->auth_string = NULL;
 	dsn_info->name = g_strdup (gtk_entry_get_text (GTK_ENTRY (config->priv->wname)));
-	dsn_info->provider = g_strdup (gnome_db_provider_selector_get_selected_provider 
+	dsn_info->provider = g_strdup (gnome_db_provider_selector_get_provider 
 				       (GNOME_DB_PROVIDER_SELECTOR (config->priv->wprovider)));
-	dsn_info->cnc_string = gnome_db_dsn_spec_get_specs (GNOME_DB_DSN_SPEC (config->priv->dsn_spec));
+	dsn_info->cnc_string = gnome_db_provider_spec_editor_get_specs (GNOME_DB_PROVIDER_SPEC_EDITOR (config->priv->dsn_spec));
 	dsn_info->description = g_strdup (gtk_entry_get_text (GTK_ENTRY (config->priv->wdesc)));
-	dsn_info->auth_string = g_strdup (gtk_entry_get_text (GTK_ENTRY (config->priv->wauth)));
+	dsn_info->auth_string = gnome_db_provider_auth_editor_get_auth (GNOME_DB_PROVIDER_AUTH_EDITOR (config->priv->dsn_auth));
 	dsn_info->is_system = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (config->priv->is_system));
 
 	return dsn_info;
@@ -292,30 +298,66 @@
 
 /**
  * gnome_db_dsn_editor_set_dsn
- * @config:
- * @dsn_info:
+ * @editor: a #GnomeDbDsnEditor widget
+ * @dsn_info: a #GdaDataSourceInfo pointer or %NULL
+ *
  *
+ * Requests that @editor update its contents with @dsn_info's contents
  */
 void
-gnome_db_dsn_editor_set_dsn (GnomeDbDsnEditor *config, const GdaDataSourceInfo *dsn_info)
+gnome_db_dsn_editor_set_dsn (GnomeDbDsnEditor *editor, const GdaDataSourceInfo *dsn_info)
 {
-	g_return_if_fail (GNOME_DB_IS_DSN_EDITOR (config));
-	g_return_if_fail (dsn_info != NULL);
-
-	gtk_entry_set_text (GTK_ENTRY (config->priv->wname), dsn_info->name);
-	gnome_db_provider_selector_set_selected_provider (GNOME_DB_PROVIDER_SELECTOR (config->priv->wprovider), 
-							  dsn_info->provider);
-	gnome_db_dsn_spec_set_specs (GNOME_DB_DSN_SPEC (config->priv->dsn_spec), dsn_info->cnc_string);
-	gtk_entry_set_text (GTK_ENTRY (config->priv->wdesc), dsn_info->description ? dsn_info->description : "");
-	gtk_entry_set_text (GTK_ENTRY (config->priv->wauth), dsn_info->auth_string ? dsn_info->auth_string : "");
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config->priv->is_system), dsn_info->is_system);
+	g_return_if_fail (GNOME_DB_IS_DSN_EDITOR (editor));
 
-	if (dsn_info->is_system && !gda_config_can_modify_system_config ())
-		gtk_widget_set_sensitive (GTK_WIDGET (config), FALSE);
+	if (dsn_info) {
+		gtk_entry_set_text (GTK_ENTRY (editor->priv->wname), dsn_info->name);
+		gnome_db_provider_selector_set_provider (GNOME_DB_PROVIDER_SELECTOR (editor->priv->wprovider), 
+							 dsn_info->provider);
+		gnome_db_provider_spec_editor_set_provider (GNOME_DB_PROVIDER_SPEC_EDITOR (editor->priv->dsn_spec), dsn_info->provider);
+		gnome_db_provider_spec_editor_set_specs (GNOME_DB_PROVIDER_SPEC_EDITOR (editor->priv->dsn_spec), dsn_info->cnc_string);
+		gtk_entry_set_text (GTK_ENTRY (editor->priv->wdesc), dsn_info->description ? dsn_info->description : "");
+		gnome_db_provider_auth_editor_set_provider (GNOME_DB_PROVIDER_AUTH_EDITOR (editor->priv->dsn_auth), dsn_info->provider);
+		gnome_db_provider_auth_editor_set_auth (GNOME_DB_PROVIDER_AUTH_EDITOR (editor->priv->dsn_auth), dsn_info->auth_string);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->is_system), dsn_info->is_system);
+		
+		if (dsn_info->is_system && !gda_config_can_modify_system_config ()) {
+			gtk_widget_set_sensitive (editor->priv->wname, FALSE);
+			gtk_widget_set_sensitive (editor->priv->wprovider, FALSE);
+			gtk_widget_set_sensitive (editor->priv->wdesc, FALSE);
+			gtk_widget_set_sensitive (editor->priv->dsn_spec, FALSE);
+			gtk_widget_set_sensitive (editor->priv->dsn_auth, FALSE);
+			gtk_widget_set_sensitive (editor->priv->is_system, FALSE);
+		}
+		else {
+			gtk_widget_set_sensitive (editor->priv->wname, FALSE);
+			gtk_widget_set_sensitive (editor->priv->wprovider, TRUE);
+			gtk_widget_set_sensitive (editor->priv->wdesc, TRUE);
+			gtk_widget_set_sensitive (editor->priv->dsn_spec, TRUE);
+			gtk_widget_set_sensitive (editor->priv->dsn_auth, TRUE);
+			gtk_widget_set_sensitive (editor->priv->is_system, gda_config_can_modify_system_config ());
+		}
+		gtk_widget_show (editor->priv->dsn_spec_expander);
+		if (gda_config_dsn_needs_authentication (dsn_info->name))
+			gtk_widget_show (editor->priv->dsn_auth_expander);
+		else
+			gtk_widget_hide (editor->priv->dsn_auth_expander);
+	}
 	else {
-		gtk_widget_set_sensitive (GTK_WIDGET (config), TRUE);
-		gtk_widget_set_sensitive (config->priv->wname, FALSE); /* FIXME */
-		gtk_widget_set_sensitive (config->priv->is_system, 
-					  gda_config_can_modify_system_config ());
+		gtk_entry_set_text (GTK_ENTRY (editor->priv->wname), "");
+		gnome_db_provider_selector_set_provider (GNOME_DB_PROVIDER_SELECTOR (editor->priv->wprovider), NULL);
+		gnome_db_provider_spec_editor_set_provider (GNOME_DB_PROVIDER_SPEC_EDITOR (editor->priv->dsn_spec), NULL);
+		gtk_entry_set_text (GTK_ENTRY (editor->priv->wdesc), "");
+		gnome_db_provider_auth_editor_set_provider (GNOME_DB_PROVIDER_AUTH_EDITOR (editor->priv->dsn_auth), NULL);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->is_system), FALSE);
+		
+		gtk_widget_set_sensitive (editor->priv->wname, FALSE);
+		gtk_widget_set_sensitive (editor->priv->wprovider, FALSE);
+		gtk_widget_set_sensitive (editor->priv->wdesc, FALSE);
+		gtk_widget_set_sensitive (editor->priv->dsn_spec, FALSE);
+		gtk_widget_set_sensitive (editor->priv->dsn_auth, FALSE);
+		gtk_widget_set_sensitive (editor->priv->is_system, FALSE);
+
+		gtk_widget_hide (editor->priv->dsn_spec_expander);
+		gtk_widget_hide (editor->priv->dsn_auth_expander);
 	}
 }

Copied: trunk/libgnomedb/gnome-db-dsn-selector.c (from r1722, /trunk/libgnomedb/gnome-db-data-source-selector.c)
==============================================================================
--- /trunk/libgnomedb/gnome-db-data-source-selector.c	(original)
+++ trunk/libgnomedb/gnome-db-dsn-selector.c	Wed May 14 19:54:09 2008
@@ -24,25 +24,25 @@
 
 #include <string.h>
 #include <libgda/gda-config.h>
-#include <libgnomedb/gnome-db-data-source-selector.h>
+#include <libgnomedb/gnome-db-dsn-selector.h>
 #include <libgnomedb/gnome-db-util.h>
 #include <gtk/gtkcelllayout.h>
 #include <gtk/gtkcellrenderer.h>
 #include <gtk/gtkcellrenderertext.h>
 
-struct _GnomeDbDataSourceSelectorPrivate {
+struct _GnomeDbDsnSelectorPrivate {
 };
 
-static void gnome_db_data_source_selector_class_init (GnomeDbDataSourceSelectorClass *klass);
-static void gnome_db_data_source_selector_init       (GnomeDbDataSourceSelector *selector,
-						      GnomeDbDataSourceSelectorClass *klass);
-static void gnome_db_data_source_selector_finalize   (GObject *object);
+static void gnome_db_dsn_selector_class_init (GnomeDbDsnSelectorClass *klass);
+static void gnome_db_dsn_selector_init       (GnomeDbDsnSelector *selector,
+						      GnomeDbDsnSelectorClass *klass);
+static void gnome_db_dsn_selector_finalize   (GObject *object);
 
-static void gnome_db_data_source_selector_set_property(GObject *object,
+static void gnome_db_dsn_selector_set_property(GObject *object,
                                                        guint param_id,
                                                        const GValue *value,
                                                        GParamSpec *pspec);
-static void gnome_db_data_source_selector_get_property(GObject *object,
+static void gnome_db_dsn_selector_get_property(GObject *object,
                                                        guint param_id,
                                                        GValue *value,
                                                        GParamSpec *pspec);
@@ -57,19 +57,19 @@
 static GObjectClass *parent_class = NULL;
 
 /*
- * GnomeDbDataSourceSelector class implementation
+ * GnomeDbDsnSelector class implementation
  */
 
 static void
-gnome_db_data_source_selector_class_init (GnomeDbDataSourceSelectorClass *klass)
+gnome_db_dsn_selector_class_init (GnomeDbDsnSelectorClass *klass)
 {
 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
 	parent_class = g_type_class_peek_parent (klass);
 
-	object_class->finalize = gnome_db_data_source_selector_finalize;
-	object_class->set_property = gnome_db_data_source_selector_set_property;
-	object_class->get_property = gnome_db_data_source_selector_get_property;
+	object_class->finalize = gnome_db_dsn_selector_finalize;
+	object_class->set_property = gnome_db_dsn_selector_set_property;
+	object_class->get_property = gnome_db_dsn_selector_get_property;
 
 	g_object_class_install_property (object_class, PROP_SOURCE_NAME,
 	                                 g_param_spec_string ("source-name", NULL, NULL, NULL,
@@ -78,15 +78,15 @@
 
 
 static void
-gnome_db_data_source_selector_init (GnomeDbDataSourceSelector *selector,
-				    GnomeDbDataSourceSelectorClass *klass)
+gnome_db_dsn_selector_init (GnomeDbDsnSelector *selector,
+				    GnomeDbDsnSelectorClass *klass)
 {
 	GdaDataModel *model;
 	gint cols_index[] = {0};
 
-	g_return_if_fail (GNOME_DB_IS_DATA_SOURCE_SELECTOR (selector));
+	g_return_if_fail (GNOME_DB_IS_DSN_SELECTOR (selector));
 
-	selector->priv = g_new0 (GnomeDbDataSourceSelectorPrivate, 1);
+	selector->priv = g_new0 (GnomeDbDsnSelectorPrivate, 1);
 
 	model = gda_config_list_dsn ();
 	gnome_db_combo_set_model (GNOME_DB_COMBO (selector), model, 1, cols_index);
@@ -94,11 +94,11 @@
 }
 
 static void
-gnome_db_data_source_selector_finalize (GObject *object)
+gnome_db_dsn_selector_finalize (GObject *object)
 {
-	GnomeDbDataSourceSelector *selector = (GnomeDbDataSourceSelector *) object;
+	GnomeDbDsnSelector *selector = (GnomeDbDsnSelector *) object;
 
-	g_return_if_fail (GNOME_DB_IS_DATA_SOURCE_SELECTOR (selector));
+	g_return_if_fail (GNOME_DB_IS_DSN_SELECTOR (selector));
 
 
 	g_free (selector->priv);
@@ -107,15 +107,16 @@
 	parent_class->finalize (object);
 }
 
-static void gnome_db_data_source_selector_set_property(GObject *object,
-                                                       guint param_id,
-                                                       const GValue *value,
-                                                       GParamSpec *pspec)
+static void
+gnome_db_dsn_selector_set_property(GObject *object,
+				   guint param_id,
+				   const GValue *value,
+				   GParamSpec *pspec)
 {
-	GnomeDbDataSourceSelector *selector;
+	GnomeDbDsnSelector *selector;
 	GSList *list;
 	gint cols_index[] = {0};
-	selector = GNOME_DB_DATA_SOURCE_SELECTOR (object);
+	selector = GNOME_DB_DSN_SELECTOR (object);
 
 	switch (param_id) {
 	case PROP_SOURCE_NAME:
@@ -126,20 +127,21 @@
 	}
 }
 
-static void gnome_db_data_source_selector_get_property (GObject *object,
-							guint param_id,
-							GValue *value,
-							GParamSpec *pspec)
+static void
+gnome_db_dsn_selector_get_property (GObject *object,
+				    guint param_id,
+				    GValue *value,
+				    GParamSpec *pspec)
 {
-	GnomeDbDataSourceSelector *selector;
+	GnomeDbDsnSelector *selector;
 	GSList *list;
 	gint cols_index[] = {0};
-	selector = GNOME_DB_DATA_SOURCE_SELECTOR (object);
+	selector = GNOME_DB_DSN_SELECTOR (object);
 
 	switch (param_id) {
 	case PROP_SOURCE_NAME:
 		list = gnome_db_combo_get_values_ext (GNOME_DB_COMBO (selector), 1, cols_index);
-		if (list) {
+		if (list && list->data) {
 			g_value_set_string (value, g_value_get_string ((GValue*) list->data));
 			g_slist_free (list);
 		}
@@ -150,34 +152,33 @@
 }
 
 GType
-gnome_db_data_source_selector_get_type (void)
+gnome_db_dsn_selector_get_type (void)
 {
 	static GType type = 0;
 
 	if (G_UNLIKELY (type == 0)) {
 		static const GTypeInfo info = {
-			sizeof (GnomeDbDataSourceSelectorClass),
+			sizeof (GnomeDbDsnSelectorClass),
 			(GBaseInitFunc) NULL,
 			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) gnome_db_data_source_selector_class_init,
+			(GClassInitFunc) gnome_db_dsn_selector_class_init,
 			NULL,
 			NULL,
-			sizeof (GnomeDbDataSourceSelector),
+			sizeof (GnomeDbDsnSelector),
 			0,
-			(GInstanceInitFunc) gnome_db_data_source_selector_init
+			(GInstanceInitFunc) gnome_db_dsn_selector_init
 		};
 		type = g_type_register_static (GNOME_DB_TYPE_COMBO,
-					       "GnomeDbDataSourceSelector",
+					       "GnomeDbDsnSelector",
 					       &info, 0);
 	}
 	return type;
 }
 
 /**
- * gnome_db_data_source_selector_new
- * @name: name of data source to display.
+ * gnome_db_dsn_selector_new
  *
- * Create a new #GnomeDbDataSourceSelector, which is just a #GtkComboBox
+ * Create a new #GnomeDbDsnSelector, which is just a #GtkComboBox
  * which displays, as its items, all the data sources currently
  * configured in the system. It is useful for connection and configuration
  * screens, where the user has to choose a data source to work with.
@@ -185,26 +186,21 @@
  * Returns: the newly created widget.
  */
 GtkWidget *
-gnome_db_data_source_selector_new (const gchar *name)
+gnome_db_dsn_selector_new (void)
 {
-	GnomeDbDataSourceSelector *selector;
-
-	selector = g_object_new (GNOME_DB_TYPE_DATA_SOURCE_SELECTOR,
-	                         "source-name", name, NULL);
-
-	return GTK_WIDGET (selector);
+	return (GtkWidget*) g_object_new (GNOME_DB_TYPE_DSN_SELECTOR, NULL);
 }
 
 /**
- * gnome_db_data_source_selector_get_dsn
+ * gnome_db_dsn_selector_get_dsn
  * @name: name of data source to display.
  *
- * Get the Data Source Name (DSN) actualy selected in the #GnomeDbDataSourceSelector.
+ * Get the Data Source Name (DSN) actualy selected in the #GnomeDbDsnSelector.
  *
  * Returns: the DSN name actualy selected as a new string.
  */
 gchar *
-gnome_db_data_source_selector_get_dsn (GnomeDbDataSourceSelector *selector)
+gnome_db_dsn_selector_get_dsn (GnomeDbDsnSelector *selector)
 {
 	gchar *dsn;
 
@@ -214,14 +210,14 @@
 }
 
 /**
- * gnome_db_data_source_selector_set_dsn
+ * gnome_db_dsn_selector_set_dsn
  * @name: name of data source to display.
  *
- * Set the selected Data Source Name (DSN) in the #GnomeDbDataSourceSelector.
+ * Set the selected Data Source Name (DSN) in the #GnomeDbDsnSelector.
  *
  */
 void
-gnome_db_data_source_selector_set_dsn (GnomeDbDataSourceSelector *selector, const gchar *dsn)
+gnome_db_dsn_selector_set_dsn (GnomeDbDsnSelector *selector, const gchar *dsn)
 {
 	g_object_set (G_OBJECT (selector), "source-name", dsn, NULL);
 }

Copied: trunk/libgnomedb/gnome-db-dsn-selector.h (from r1722, /trunk/libgnomedb/gnome-db-data-source-selector.h)
==============================================================================
--- /trunk/libgnomedb/gnome-db-data-source-selector.h	(original)
+++ trunk/libgnomedb/gnome-db-dsn-selector.h	Wed May 14 19:54:09 2008
@@ -1,5 +1,5 @@
 /* GNOME DB library
- * Copyright (C) 1999 - 2007 The GNOME Foundation.
+ * Copyright (C) 1999 - 2008 The GNOME Foundation.
  *
  * AUTHORS:
  *      Rodrigo Moya <rodrigo gnome-db org>
@@ -21,36 +21,36 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#ifndef __GNOME_DB_DATA_SOURCE_SELECTOR_H__
-#define __GNOME_DB_DATA_SOURCE_SELECTOR_H__
+#ifndef __GNOME_DB_DSN_SELECTOR_H__
+#define __GNOME_DB_DSN_SELECTOR_H__
 
 #include <libgnomedb/gnome-db-combo.h>
 
 G_BEGIN_DECLS
 
-#define GNOME_DB_TYPE_DATA_SOURCE_SELECTOR            (gnome_db_data_source_selector_get_type())
-#define GNOME_DB_DATA_SOURCE_SELECTOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, GNOME_DB_TYPE_DATA_SOURCE_SELECTOR, GnomeDbDataSourceSelector))
-#define GNOME_DB_DATA_SOURCE_SELECTOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST (klass, GNOME_DB_TYPE_DATA_SOURCE_SELECTOR, GnomeDbDataSourceSelectorClass))
-#define GNOME_DB_IS_DATA_SOURCE_SELECTOR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, GNOME_DB_TYPE_DATA_SOURCE_SELECTOR))
-#define GNOME_DB_IS_DATA_SOURCE_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_DB_TYPE_DATA_SOURCE_SELECTOR))
-
-typedef struct _GnomeDbDataSourceSelector        GnomeDbDataSourceSelector;
-typedef struct _GnomeDbDataSourceSelectorClass   GnomeDbDataSourceSelectorClass;
-typedef struct _GnomeDbDataSourceSelectorPrivate GnomeDbDataSourceSelectorPrivate;
+#define GNOME_DB_TYPE_DSN_SELECTOR            (gnome_db_dsn_selector_get_type())
+#define GNOME_DB_DSN_SELECTOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, GNOME_DB_TYPE_DSN_SELECTOR, GnomeDbDsnSelector))
+#define GNOME_DB_DSN_SELECTOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST (klass, GNOME_DB_TYPE_DSN_SELECTOR, GnomeDbDsnSelectorClass))
+#define GNOME_DB_IS_DSN_SELECTOR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, GNOME_DB_TYPE_DSN_SELECTOR))
+#define GNOME_DB_IS_DSN_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_DB_TYPE_DSN_SELECTOR))
+
+typedef struct _GnomeDbDsnSelector        GnomeDbDsnSelector;
+typedef struct _GnomeDbDsnSelectorClass   GnomeDbDsnSelectorClass;
+typedef struct _GnomeDbDsnSelectorPrivate GnomeDbDsnSelectorPrivate;
 
-struct _GnomeDbDataSourceSelector {
+struct _GnomeDbDsnSelector {
 	GnomeDbCombo                      combo;
-	GnomeDbDataSourceSelectorPrivate *priv;
+	GnomeDbDsnSelectorPrivate *priv;
 };
 
-struct _GnomeDbDataSourceSelectorClass {
+struct _GnomeDbDsnSelectorClass {
 	GnomeDbComboClass                 parent_class;
 };
 
-GType      gnome_db_data_source_selector_get_type (void) G_GNUC_CONST;
-GtkWidget *gnome_db_data_source_selector_new      (const gchar *name);
-gchar     *gnome_db_data_source_selector_get_dsn  (GnomeDbDataSourceSelector *selector);
-void       gnome_db_data_source_selector_set_dsn  (GnomeDbDataSourceSelector *selector, const gchar *dsn);
+GType      gnome_db_dsn_selector_get_type (void) G_GNUC_CONST;
+GtkWidget *gnome_db_dsn_selector_new      (void);
+gchar     *gnome_db_dsn_selector_get_dsn  (GnomeDbDsnSelector *selector);
+void       gnome_db_dsn_selector_set_dsn  (GnomeDbDsnSelector *selector, const gchar *dsn);
 
 G_END_DECLS
 

Modified: trunk/libgnomedb/gnome-db-login.c
==============================================================================
--- trunk/libgnomedb/gnome-db-login.c	(original)
+++ trunk/libgnomedb/gnome-db-login.c	Wed May 14 19:54:09 2008
@@ -23,7 +23,7 @@
 
 #include "gnome-db-decl.h"
 #include <libgda/gda-config.h>
-#include <libgnomedb/gnome-db-data-source-selector.h>
+#include <libgnomedb/gnome-db-dsn-selector.h>
 #ifdef HAVE_GTKTWOTEN
 #include <libgnomedb/gnome-db-dsn-assistant.h>
 #endif
@@ -87,7 +87,7 @@
 add_dsn_cb (GtkButton *button, GnomeDbLogin *login);
 #endif
 static void
-dsn_entry_changed_cb (GnomeDbDataSourceSelector *sel, GnomeDbLogin *login);
+dsn_entry_changed_cb (GnomeDbDsnSelector *sel, GnomeDbLogin *login);
 
 /*
  * GnomeDbLogin class implementation
@@ -161,7 +161,8 @@
 	login->priv->dsn_label = label;
 	
 	/* Create the DSN selector*/
-	login->priv->dsn_entry = gnome_db_data_source_selector_new (login->priv->dsn_name);
+	login->priv->dsn_entry = gnome_db_dsn_selector_new ();
+	gnome_db_dsn_selector_set_dsn (GNOME_DB_DSN_SELECTOR (login->priv->dsn_entry), login->priv->dsn_name);
 	gtk_widget_show (login->priv->dsn_entry); /* Show the DSN selector */
 	gtk_table_attach (GTK_TABLE (table), login->priv->dsn_entry, 1, 2, 0, 1,
 			  GTK_FILL | GTK_EXPAND | GTK_SHRINK, GTK_FILL, 0, 0);
@@ -329,12 +330,12 @@
 #endif
 
 static void
-dsn_entry_changed_cb (GnomeDbDataSourceSelector *sel, GnomeDbLogin *login)
+dsn_entry_changed_cb (GnomeDbDsnSelector *sel, GnomeDbLogin *login)
 {
 	gchar *dsn;
 	GdaDataSourceInfo *info = NULL;
         
-        dsn = gnome_db_data_source_selector_get_dsn (sel);
+        dsn = gnome_db_dsn_selector_get_dsn (sel);
         
 	info = gda_config_get_dsn (dsn);
 
@@ -379,7 +380,7 @@
 	if (login->priv->dsn_name)
 		return (const gchar *) login->priv->dsn_name;
 
-	return gnome_db_data_source_selector_get_dsn (GNOME_DB_DATA_SOURCE_SELECTOR (login->priv->dsn_entry));
+	return gnome_db_dsn_selector_get_dsn (GNOME_DB_DSN_SELECTOR (login->priv->dsn_entry));
 }
 
 /**
@@ -399,7 +400,7 @@
 	if (!src)
 		g_warning (_("Datasource '%s' is not declared"), dsn);
 	else {
-		gnome_db_data_source_selector_set_dsn (GNOME_DB_DATA_SOURCE_SELECTOR (login->priv->dsn_entry), 
+		gnome_db_dsn_selector_set_dsn (GNOME_DB_DSN_SELECTOR (login->priv->dsn_entry), 
 						       dsn);
 
 		if (login->priv->auth_widget) {

Modified: trunk/libgnomedb/gnome-db-provider-selector.c
==============================================================================
--- trunk/libgnomedb/gnome-db-provider-selector.c	(original)
+++ trunk/libgnomedb/gnome-db-provider-selector.c	Wed May 14 19:54:09 2008
@@ -1,5 +1,5 @@
 /* GNOME DB library
- * Copyright (C) 1999 - 2006 The GNOME Foundation.
+ * Copyright (C) 1999 - 2008 The GNOME Foundation.
  *
  * AUTHORS:
  *      Rodrigo Moya <rodrigo gnome-db org>
@@ -142,7 +142,7 @@
 }
 
 /**
- * gnome_db_provider_selector_get_selected_provider
+ * gnome_db_provider_selector_get_provider
  * @selector: a #GnomeDbProviderSelector widget
  *
  * Get the selected provider.
@@ -150,14 +150,14 @@
  * Returns: the selected provider
  */
 const gchar *
-gnome_db_provider_selector_get_selected_provider (GnomeDbProviderSelector *selector)
+gnome_db_provider_selector_get_provider (GnomeDbProviderSelector *selector)
 {
 	GSList *list;
 	const gchar *str;
 
 	g_return_val_if_fail (GNOME_DB_IS_PROVIDER_SELECTOR (selector), NULL);
 	list = gnome_db_combo_get_values (GNOME_DB_COMBO (selector));
-	if (list) {
+	if (list && list->data) {
 		str = g_value_get_string ((GValue *)(list->data));
 		g_slist_free (list);
 		return str;
@@ -167,17 +167,16 @@
 }
 
 /**
- * gnome_db_provider_selector_set_selected_provider
+ * gnome_db_provider_selector_set_provider
  * @selector: a #GnomeDbProviderSelector widget
- * @provider: the provider to be selected
+ * @provider: the provider to be selected, or %NULL for the default (SQLite)
  *
  * Forces @selector to be set on @provider
  *
  * Returns: TRUE if @provider has been selected
  */
 gboolean
-gnome_db_provider_selector_set_selected_provider (GnomeDbProviderSelector *selector, 
-						  const gchar *provider)
+gnome_db_provider_selector_set_provider (GnomeDbProviderSelector *selector, const gchar *provider)
 {
 	GSList *list;
 	gboolean retval;
@@ -187,7 +186,7 @@
 
 	if (provider && *provider)
 		g_value_set_string (tmpval = gda_value_new (G_TYPE_STRING), provider);
-	else
+	else 
 		g_value_set_string (tmpval = gda_value_new (G_TYPE_STRING), "SQLite");
 
 	list = g_slist_append (NULL, tmpval);
@@ -199,7 +198,7 @@
 }
 
 /**
- * gnome_db_provider_selector_get_selected_provider_obj
+ * gnome_db_provider_selector_get_provider_obj
  * @selector: a #GnomeDbProviderSelector widget
  *
  * Get the selected provider as a #GdaServerProvider object
@@ -207,13 +206,16 @@
  * Returns: a new #GdaServerProvider or %NULL if an error occurred
  */
 GdaServerProvider *
-gnome_db_provider_selector_get_selected_provider_obj (GnomeDbProviderSelector *selector)
+gnome_db_provider_selector_get_provider_obj (GnomeDbProviderSelector *selector)
 {
 	GdaServerProvider *prov;
 	const gchar *pname;
 	
 	g_return_val_if_fail (GNOME_DB_IS_PROVIDER_SELECTOR (selector), NULL);
 
-	pname = gnome_db_provider_selector_get_selected_provider (selector);
-	return gda_config_get_provider_object (pname, NULL);
+	pname = gnome_db_provider_selector_get_provider (selector);
+	if (pname)
+		return gda_config_get_provider_object (pname, NULL);
+	else
+		return NULL;
 }

Modified: trunk/libgnomedb/gnome-db-provider-selector.h
==============================================================================
--- trunk/libgnomedb/gnome-db-provider-selector.h	(original)
+++ trunk/libgnomedb/gnome-db-provider-selector.h	Wed May 14 19:54:09 2008
@@ -1,5 +1,5 @@
 /* GNOME DB library
- * Copyright (C) 1999 - 2005 The GNOME Foundation.
+ * Copyright (C) 1999 - 2008 The GNOME Foundation.
  *
  * AUTHORS:
  *      Rodrigo Moya <rodrigo gnome-db org>
@@ -21,8 +21,8 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#if !defined(__gnome_db_provider_selector_h__)
-#  define __gnome_db_provider_selector_h__
+#ifndef __GNOME_DB_PROVIDER_SELECTOR_H__
+#define __GNOME_DB_PROVIDER_SELECTOR_H__
 
 #include <libgnomedb/gnome-db-combo.h>
 
@@ -47,12 +47,12 @@
 	GnomeDbComboClass               parent_class;
 };
 
-GType              gnome_db_provider_selector_get_type                  (void) G_GNUC_CONST;
-GtkWidget         *gnome_db_provider_selector_new                       (void);
-GdaServerProvider *gnome_db_provider_selector_get_selected_provider_obj (GnomeDbProviderSelector *selector);
-const gchar       *gnome_db_provider_selector_get_selected_provider     (GnomeDbProviderSelector *selector);
-gboolean           gnome_db_provider_selector_set_selected_provider     (GnomeDbProviderSelector *selector, 
-									 const gchar *provider);
+GType              gnome_db_provider_selector_get_type         (void) G_GNUC_CONST;
+GtkWidget         *gnome_db_provider_selector_new              (void);
+
+GdaServerProvider *gnome_db_provider_selector_get_provider_obj (GnomeDbProviderSelector *selector);
+const gchar       *gnome_db_provider_selector_get_provider     (GnomeDbProviderSelector *selector);
+gboolean           gnome_db_provider_selector_set_provider     (GnomeDbProviderSelector *selector, const gchar *provider);
 
 G_END_DECLS
 

Copied: trunk/libgnomedb/gnome-db-provider-spec-editor.c (from r1722, /trunk/libgnomedb/gnome-db-dsn-spec.c)
==============================================================================
--- /trunk/libgnomedb/gnome-db-dsn-spec.c	(original)
+++ trunk/libgnomedb/gnome-db-provider-spec-editor.c	Wed May 14 19:54:09 2008
@@ -24,22 +24,17 @@
 #include <gtk/gtklabel.h>
 #include <gtk/gtktable.h>
 #include <libgda/libgda.h>
-#include <libgnomedb/gnome-db-dsn-spec.h>
-#include <libgnomedb/gnome-db-provider-selector.h>
+#include <libgnomedb/gnome-db-provider-spec-editor.h>
 #include <libgnomedb/gnome-db-util.h>
 #include <libgnomedb/gnome-db-basic-form.h>
 #include <glib/gi18n-lib.h>
 
-#define PARENT_TYPE GTK_TYPE_VBOX
-
 typedef enum {
 	NO_PROVIDER,
-	RAW_CNC_STRING,
-	PROVIDER_FORM,
-	PROVIDER_ERROR
+	PROVIDER_FORM
 } WidgetType;
 
-struct _GnomeDbDsnSpecPrivate {
+struct _GnomeDbProviderSpecEditorPrivate {
 	gchar       *provider;
 
 	WidgetType   type;
@@ -47,17 +42,17 @@
 	gchar       *cnc_string; /* as it was last updated */
 };
 
-static void gnome_db_dsn_spec_class_init (GnomeDbDsnSpecClass *klass);
-static void gnome_db_dsn_spec_init       (GnomeDbDsnSpec *spec,
-					  GnomeDbDsnSpecClass *klass);
-static void gnome_db_dsn_spec_finalize   (GObject *object);
-static void gnome_db_dsn_spec_dispose    (GObject *object);
+static void gnome_db_provider_spec_editor_class_init (GnomeDbProviderSpecEditorClass *klass);
+static void gnome_db_provider_spec_editor_init       (GnomeDbProviderSpecEditor *spec,
+					  GnomeDbProviderSpecEditorClass *klass);
+static void gnome_db_provider_spec_editor_finalize   (GObject *object);
+static void gnome_db_provider_spec_editor_dispose    (GObject *object);
 
-static void gnome_db_dsn_spec_set_property (GObject *object,
+static void gnome_db_provider_spec_editor_set_property (GObject *object,
                                             guint param_id,
                                             const GValue *value,
                                             GParamSpec *pspec);
-static void gnome_db_dsn_spec_get_property (GObject *object,
+static void gnome_db_provider_spec_editor_get_property (GObject *object,
                                             guint param_id,
                                             GValue *value,
                                             GParamSpec *pspec);
@@ -73,24 +68,24 @@
 };
 
 
-static gint gnome_db_dsn_spec_signals[LAST_SIGNAL] = { 0 };
+static gint gnome_db_provider_spec_editor_signals[LAST_SIGNAL] = { 0 };
 static GObjectClass *parent_class = NULL;
 
 /*
- * GnomeDbDsnSpec class implementation
+ * GnomeDbProviderSpecEditor class implementation
  */
 
 static void
-gnome_db_dsn_spec_class_init (GnomeDbDsnSpecClass *klass)
+gnome_db_provider_spec_editor_class_init (GnomeDbProviderSpecEditorClass *klass)
 {
 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
 	parent_class = g_type_class_peek_parent (klass);
 
-	object_class->dispose = gnome_db_dsn_spec_dispose;
-	object_class->finalize = gnome_db_dsn_spec_finalize;
-	object_class->set_property = gnome_db_dsn_spec_set_property;
-	object_class->get_property = gnome_db_dsn_spec_get_property;
+	object_class->dispose = gnome_db_provider_spec_editor_dispose;
+	object_class->finalize = gnome_db_provider_spec_editor_finalize;
+	object_class->set_property = gnome_db_provider_spec_editor_set_property;
+	object_class->get_property = gnome_db_provider_spec_editor_get_property;
 	klass->changed = NULL;
 
 	g_object_class_install_property (object_class, PROP_PROVIDER,
@@ -98,26 +93,21 @@
 					                      G_PARAM_READWRITE));
 
 	/* add class signals */
-	gnome_db_dsn_spec_signals[CHANGED] =
+	gnome_db_provider_spec_editor_signals[CHANGED] =
 		g_signal_new ("changed",
 			      G_TYPE_FROM_CLASS (object_class),
 			      G_SIGNAL_RUN_LAST,
-			      G_STRUCT_OFFSET (GnomeDbDsnSpecClass, changed),
+			      G_STRUCT_OFFSET (GnomeDbProviderSpecEditorClass, changed),
 			      NULL, NULL,
 			      g_cclosure_marshal_VOID__VOID,
 			      G_TYPE_NONE, 0);
 }
 
 static void
-update_form_contents (GnomeDbDsnSpec *spec)
+update_form_contents (GnomeDbProviderSpecEditor *spec)
 {
 	/*g_print ("DSN: %s\n", spec->priv->cnc_string);*/
 	switch (spec->priv->type) {
-	case RAW_CNC_STRING:
-		g_assert (spec->priv->form);
-		gtk_entry_set_text (GTK_ENTRY (spec->priv->form), 
-				    spec->priv->cnc_string ? spec->priv->cnc_string : "");
-		break;
 	case PROVIDER_FORM: {
 		/* update data set in form */
 		GdaSet *dset;
@@ -178,22 +168,16 @@
 }
 
 static void
-dsn_form_changed (GnomeDbBasicForm *form, GdaHolder *param, gboolean is_user_modif, GnomeDbDsnSpec *spec)
+dsn_form_changed (GnomeDbBasicForm *form, GdaHolder *param, gboolean is_user_modif, GnomeDbProviderSpecEditor *spec)
 {
 	if (! is_user_modif)
 		return;
 
-	g_signal_emit (spec, gnome_db_dsn_spec_signals[CHANGED], 0, NULL);
+	g_signal_emit (spec, gnome_db_provider_spec_editor_signals[CHANGED], 0, NULL);
 }
 
 static void
-dsn_entry_changed (GtkEntry *entry, GnomeDbDsnSpec *spec)
-{
-	g_signal_emit (spec, gnome_db_dsn_spec_signals[CHANGED], 0, NULL);
-}
-
-static void
-adapt_form_widget (GnomeDbDsnSpec *spec)
+adapt_form_widget (GnomeDbProviderSpecEditor *spec)
 {
 	/* destroy any previous widget */
 	if (spec->priv->form) {
@@ -240,20 +224,20 @@
 
 
 static void
-gnome_db_dsn_spec_init (GnomeDbDsnSpec *spec, GnomeDbDsnSpecClass *klass)
+gnome_db_provider_spec_editor_init (GnomeDbProviderSpecEditor *spec, GnomeDbProviderSpecEditorClass *klass)
 {
-	g_return_if_fail (GNOME_DB_IS_DSN_SPEC (spec));
+	g_return_if_fail (GNOME_DB_IS_PROVIDER_SPEC_EDITOR (spec));
 
-	spec->priv = g_new0 (GnomeDbDsnSpecPrivate, 1);
+	spec->priv = g_new0 (GnomeDbProviderSpecEditorPrivate, 1);
 	spec->priv->type = NO_PROVIDER;
 }
 
 static void
-gnome_db_dsn_spec_dispose (GObject *object)
+gnome_db_provider_spec_editor_dispose (GObject *object)
 {
-	GnomeDbDsnSpec *spec = (GnomeDbDsnSpec *) object;
+	GnomeDbProviderSpecEditor *spec = (GnomeDbProviderSpecEditor *) object;
 
-	g_return_if_fail (GNOME_DB_IS_DSN_SPEC (spec));
+	g_return_if_fail (GNOME_DB_IS_PROVIDER_SPEC_EDITOR (spec));
 
 	/* free memory */
 
@@ -262,11 +246,11 @@
 }
 
 static void
-gnome_db_dsn_spec_finalize (GObject *object)
+gnome_db_provider_spec_editor_finalize (GObject *object)
 {
-	GnomeDbDsnSpec *spec = (GnomeDbDsnSpec *) object;
+	GnomeDbProviderSpecEditor *spec = (GnomeDbProviderSpecEditor *) object;
 
-	g_return_if_fail (GNOME_DB_IS_DSN_SPEC (spec));
+	g_return_if_fail (GNOME_DB_IS_PROVIDER_SPEC_EDITOR (spec));
 
 	/* free memory */
 	if (spec->priv->cnc_string)
@@ -281,29 +265,31 @@
 	parent_class->finalize (object);
 }
 
-static void gnome_db_dsn_spec_set_property (GObject *object,
+static void
+gnome_db_provider_spec_editor_set_property (GObject *object,
                                             guint param_id,
                                             const GValue *value,
                                             GParamSpec *pspec)
 {
-	GnomeDbDsnSpec *spec;
-	spec = GNOME_DB_DSN_SPEC (object);
+	GnomeDbProviderSpecEditor *spec;
+	spec = GNOME_DB_PROVIDER_SPEC_EDITOR (object);
 
 	switch(param_id) {
 	case PROP_PROVIDER:
-		gnome_db_dsn_spec_set_provider (spec,
+		gnome_db_provider_spec_editor_set_provider (spec,
 		                                g_value_get_string (value));
 		break;
 	}
 }
 
-static void gnome_db_dsn_spec_get_property (GObject *object,
+static void
+gnome_db_provider_spec_editor_get_property (GObject *object,
                                             guint param_id,
                                             GValue *value,
                                             GParamSpec *pspec)
 {
-	GnomeDbDsnSpec *spec;
-	spec = GNOME_DB_DSN_SPEC (object);
+	GnomeDbProviderSpecEditor *spec;
+	spec = GNOME_DB_PROVIDER_SPEC_EDITOR (object);
 
 	switch (param_id) {
 	case PROP_PROVIDER:
@@ -313,49 +299,49 @@
 }
 
 GType
-gnome_db_dsn_spec_get_type (void)
+gnome_db_provider_spec_editor_get_type (void)
 {
 	static GType type = 0;
 
 	if (G_UNLIKELY (type == 0)) {
 		static const GTypeInfo info = {
-			sizeof (GnomeDbDsnSpecClass),
+			sizeof (GnomeDbProviderSpecEditorClass),
 			(GBaseInitFunc) NULL,
 			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) gnome_db_dsn_spec_class_init,
+			(GClassInitFunc) gnome_db_provider_spec_editor_class_init,
 			NULL,
 			NULL,
-			sizeof (GnomeDbDsnSpec),
+			sizeof (GnomeDbProviderSpecEditor),
 			0,
-			(GInstanceInitFunc) gnome_db_dsn_spec_init
+			(GInstanceInitFunc) gnome_db_provider_spec_editor_init
 		};
-		type = g_type_register_static (PARENT_TYPE, "GnomeDbDsnSpec",
+		type = g_type_register_static (GTK_TYPE_VBOX, "GnomeDbProviderSpecEditor",
 					       &info, 0);
 	}
 	return type;
 }
 
 /**
- * gnome_db_dsn_spec_new
+ * gnome_db_provider_spec_editor_new
  * @provider: the provider to be used 
  *
- * Creates a new #GnomeDbDsnSpec widget
+ * Creates a new #GnomeDbProviderSpecEditor widget
  *
  * Returns:
  */
 GtkWidget *
-gnome_db_dsn_spec_new (const gchar *provider)
+gnome_db_provider_spec_editor_new (const gchar *provider)
 {
-	GnomeDbDsnSpec *spec;
+	GnomeDbProviderSpecEditor *spec;
 
-	spec = g_object_new (GNOME_DB_TYPE_DSN_SPEC,
+	spec = g_object_new (GNOME_DB_TYPE_PROVIDER_SPEC_EDITOR,
 	                     "provider", provider, NULL);
 
 	return GTK_WIDGET (spec);
 }
 
 static gchar *
-params_to_string (GnomeDbDsnSpec *spec)
+params_to_string (GnomeDbProviderSpecEditor *spec)
 {
 	GString *string = NULL;
 	gchar *str;
@@ -406,8 +392,8 @@
 }
 
 /**
- * gnome_db_dsn_spec_set_provider
- * @spec: a #GnomeDbDsnSpec widget
+ * gnome_db_provider_spec_editor_set_provider
+ * @spec: a #GnomeDbProviderSpecEditor widget
  * @provider: the provider to be used 
  *
  * Updates the displayed fields in @spec to represent the required
@@ -415,9 +401,9 @@
  * @provider would require
  */
 void
-gnome_db_dsn_spec_set_provider (GnomeDbDsnSpec *spec, const gchar *provider)
+gnome_db_provider_spec_editor_set_provider (GnomeDbProviderSpecEditor *spec, const gchar *provider)
 {
-	g_return_if_fail (GNOME_DB_IS_DSN_SPEC (spec));
+	g_return_if_fail (GNOME_DB_IS_PROVIDER_SPEC_EDITOR (spec));
 	g_return_if_fail (spec->priv);
 
 	if (spec->priv->provider)
@@ -430,8 +416,8 @@
 }
 
 /**
- * gnome_db_dsn_spec_is_valid
- * @spec: a #GnomeDbDsnSpec widget
+ * gnome_db_provider_spec_editor_is_valid
+ * @spec: a #GnomeDbProviderSpecEditor widget
  * 
  * Tells if the current information displayed in @spec respects the
  * provider's specifications (about non NULL values for example)
@@ -439,14 +425,12 @@
  * Returns:
  */
 gboolean
-gnome_db_dsn_spec_is_valid (GnomeDbDsnSpec *spec)
+gnome_db_provider_spec_editor_is_valid (GnomeDbProviderSpecEditor *spec)
 {
-	g_return_val_if_fail (GNOME_DB_IS_DSN_SPEC (spec), FALSE);
+	g_return_val_if_fail (GNOME_DB_IS_PROVIDER_SPEC_EDITOR (spec), FALSE);
 	g_return_val_if_fail (spec->priv, FALSE);
 
 	switch (spec->priv->type) {
-	case RAW_CNC_STRING:
-		return TRUE;
 	case PROVIDER_FORM: 
 		g_assert (spec->priv->form);
 		return gnome_db_basic_form_is_valid (GNOME_DB_BASIC_FORM (spec->priv->form));
@@ -456,8 +440,8 @@
 }
 
 /**
- * gnome_db_dsn_spec_get_specs
- * @spec: a #GnomeDbDsnSpec widget
+ * gnome_db_provider_spec_editor_get_specs
+ * @spec: a #GnomeDbProviderSpecEditor widget
  *
  * Get the currently displayed provider's specific
  * connection string
@@ -465,14 +449,12 @@
  * Returns: a new string, or %NULL if no provider have been specified
  */
 gchar *
-gnome_db_dsn_spec_get_specs (GnomeDbDsnSpec *spec)
+gnome_db_provider_spec_editor_get_specs (GnomeDbProviderSpecEditor *spec)
 {
-	g_return_val_if_fail (GNOME_DB_IS_DSN_SPEC (spec), NULL);
+	g_return_val_if_fail (GNOME_DB_IS_PROVIDER_SPEC_EDITOR (spec), NULL);
 	g_return_val_if_fail (spec->priv, NULL);
 
 	switch (spec->priv->type) {
-	case RAW_CNC_STRING:
-		return g_strdup (gtk_entry_get_text (GTK_ENTRY (spec->priv->form)));
 	case PROVIDER_FORM:
 		return params_to_string (spec);
 	default:
@@ -481,16 +463,16 @@
 }
 
 /**
- * gnome_db_dsn_spec_set_specs
- * @spec: a #GnomeDbDsnSpec widget
- * @specs: 
+ * gnome_db_provider_spec_editor_set_specs
+ * @spec: a #GnomeDbProviderSpecEditor widget
+ * @specs_string: 
  *
  * Sets the connection string to be displayed in the widget
  */
 void
-gnome_db_dsn_spec_set_specs (GnomeDbDsnSpec *spec, const gchar *specs_string)
+gnome_db_provider_spec_editor_set_specs (GnomeDbProviderSpecEditor *spec, const gchar *specs_string)
 {
-	g_return_if_fail (GNOME_DB_IS_DSN_SPEC (spec));
+	g_return_if_fail (GNOME_DB_IS_PROVIDER_SPEC_EDITOR (spec));
 	g_return_if_fail (spec->priv);
 
 	/* save DSN string */

Copied: trunk/libgnomedb/gnome-db-provider-spec-editor.h (from r1722, /trunk/libgnomedb/gnome-db-dsn-spec.h)
==============================================================================
--- /trunk/libgnomedb/gnome-db-dsn-spec.h	(original)
+++ trunk/libgnomedb/gnome-db-provider-spec-editor.h	Wed May 14 19:54:09 2008
@@ -1,5 +1,5 @@
 /* GNOME DB library
- * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2005 - 2008 The GNOME Foundation
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome_db org>
@@ -20,42 +20,42 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#ifndef __GNOME_DB_DSN_SPEC_H__
-#define __GNOME_DB_DSN_SPEC_H__
+#ifndef __GNOME_DB_PROVIDER_SPEC_EDITOR_H__
+#define __GNOME_DB_PROVIDER_SPEC_EDITOR_H__
 
 #include <gtk/gtkvbox.h>
 
 G_BEGIN_DECLS
 
-#define GNOME_DB_TYPE_DSN_SPEC            (gnome_db_dsn_spec_get_type())
-#define GNOME_DB_DSN_SPEC(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, GNOME_DB_TYPE_DSN_SPEC, GnomeDbDsnSpec))
-#define GNOME_DB_DSN_SPEC_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST (klass, GNOME_DB_TYPE_DSN_SPEC, GnomeDbDsnSpecClass))
-#define GNOME_DB_IS_DSN_SPEC(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, GNOME_DB_TYPE_DSN_SPEC))
-#define GNOME_DB_IS_DSN_SPEC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_DB_TYPE_DSN_SPEC))
-
-typedef struct _GnomeDbDsnSpec        GnomeDbDsnSpec;
-typedef struct _GnomeDbDsnSpecClass   GnomeDbDsnSpecClass;
-typedef struct _GnomeDbDsnSpecPrivate GnomeDbDsnSpecPrivate;
+#define GNOME_DB_TYPE_PROVIDER_SPEC_EDITOR            (gnome_db_provider_spec_editor_get_type())
+#define GNOME_DB_PROVIDER_SPEC_EDITOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, GNOME_DB_TYPE_PROVIDER_SPEC_EDITOR, GnomeDbProviderSpecEditor))
+#define GNOME_DB_PROVIDER_SPEC_EDITOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST (klass, GNOME_DB_TYPE_PROVIDER_SPEC_EDITOR, GnomeDbProviderSpecEditorClass))
+#define GNOME_DB_IS_PROVIDER_SPEC_EDITOR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, GNOME_DB_TYPE_PROVIDER_SPEC_EDITOR))
+#define GNOME_DB_IS_PROVIDER_SPEC_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_DB_TYPE_PROVIDER_SPEC_EDITOR))
+
+typedef struct _GnomeDbProviderSpecEditor        GnomeDbProviderSpecEditor;
+typedef struct _GnomeDbProviderSpecEditorClass   GnomeDbProviderSpecEditorClass;
+typedef struct _GnomeDbProviderSpecEditorPrivate GnomeDbProviderSpecEditorPrivate;
 
-struct _GnomeDbDsnSpec {
+struct _GnomeDbProviderSpecEditor {
 	GtkVBox                box;
-	GnomeDbDsnSpecPrivate *priv;
+	GnomeDbProviderSpecEditorPrivate *priv;
 };
 
-struct _GnomeDbDsnSpecClass {
+struct _GnomeDbProviderSpecEditorClass {
 	GtkVBoxClass           parent_class;
 
 	/* signals */
-	void                (* changed) (GnomeDbDsnSpec *spec);
+	void                (* changed) (GnomeDbProviderSpecEditor *spec);
 };
 
-GType       gnome_db_dsn_spec_get_type     (void) G_GNUC_CONST;
-GtkWidget  *gnome_db_dsn_spec_new          (const gchar *provider);
+GType       gnome_db_provider_spec_editor_get_type     (void) G_GNUC_CONST;
+GtkWidget  *gnome_db_provider_spec_editor_new          (const gchar *provider);
 
-void        gnome_db_dsn_spec_set_provider (GnomeDbDsnSpec *spec, const gchar *provider);
-gboolean    gnome_db_dsn_spec_is_valid     (GnomeDbDsnSpec *spec);
-gchar      *gnome_db_dsn_spec_get_specs    (GnomeDbDsnSpec *spec);
-void        gnome_db_dsn_spec_set_specs    (GnomeDbDsnSpec *spec, const gchar *specs_string);
+void        gnome_db_provider_spec_editor_set_provider (GnomeDbProviderSpecEditor *spec, const gchar *provider);
+gboolean    gnome_db_provider_spec_editor_is_valid     (GnomeDbProviderSpecEditor *spec);
+gchar      *gnome_db_provider_spec_editor_get_specs    (GnomeDbProviderSpecEditor *spec);
+void        gnome_db_provider_spec_editor_set_specs    (GnomeDbProviderSpecEditor *spec, const gchar *specs_string);
 
 G_END_DECLS
 

Modified: trunk/libgnomedb/gnome-db-transaction-status.c
==============================================================================
--- trunk/libgnomedb/gnome-db-transaction-status.c	(original)
+++ trunk/libgnomedb/gnome-db-transaction-status.c	Wed May 14 19:54:09 2008
@@ -1,6 +1,6 @@
 /* gnome-db-transaction-status.c
  *
- * Copyright (C) 2002 - 2007 Vivien Malerba
+ * Copyright (C) 2002 - 2008 Vivien Malerba
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -28,13 +28,13 @@
 static void gnome_db_transaction_status_dispose (GObject *object);
 
 static void gnome_db_transaction_status_set_property (GObject *object,
-                                              guint param_id,
-                                              const GValue *value,
-                                              GParamSpec *pspec);
+						      guint param_id,
+						      const GValue *value,
+						      GParamSpec *pspec);
 static void gnome_db_transaction_status_get_property (GObject *object,
-                                              guint param_id,
-                                              GValue *value,
-                                              GParamSpec *pspec);
+						      guint param_id,
+						      GValue *value,
+						      GParamSpec *pspec);
 
 static void gnome_db_transaction_status_refresh (GnomeDbTransactionStatus *status);
 static void gnome_db_transaction_status_clean (GnomeDbTransactionStatus *status);
@@ -126,13 +126,9 @@
 GtkWidget *
 gnome_db_transaction_status_new (GdaConnection *cnc)
 {
-	GObject *obj;
-	
-	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
-
-	obj = g_object_new (GNOME_DB_TYPE_TRANSACTION_STATUS, "connection", cnc, NULL);
+	g_return_val_if_fail (!cnc || GDA_IS_CONNECTION (cnc), NULL);
 
-	return (GtkWidget *) obj;
+	return (GtkWidget *) g_object_new (GNOME_DB_TYPE_TRANSACTION_STATUS, "connection", cnc, NULL);
 }
 
 static void
@@ -250,7 +246,7 @@
 		switch (ev->type) {
 		case GDA_TRANSACTION_STATUS_EVENT_SAVEPOINT:
 		case GDA_TRANSACTION_STATUS_EVENT_SQL:
-			*length++;
+			(*length)++;
 			break;
 		case GDA_TRANSACTION_STATUS_EVENT_SUB_TRANSACTION: {
 			gint ldepth, llength;

Modified: trunk/libgnomedb/libgnomedb.h.in
==============================================================================
--- trunk/libgnomedb/libgnomedb.h.in	(original)
+++ trunk/libgnomedb/libgnomedb.h.in	Wed May 14 19:54:09 2008
@@ -54,13 +54,16 @@
 #include <libgnomedb/gnome-db-basic-form.h>
 #include <libgnomedb/gnome-db-combo.h>
 #include <libgnomedb/gnome-db-connection-properties.h>
-#include <libgnomedb/gnome-db-data-source-selector.h>
 #include <libgnomedb/gnome-db-data-store.h>
 #include <libgnomedb/gnome-db-form.h>
 #include <libgnomedb/gnome-db-data-import.h>
 #include <libgnomedb/gnome-db-data-widget-info.h>
+#include <libgnomedb/gnome-db-dsn-selector.h>
 #include <libgnomedb/gnome-db-dsn-editor.h>
-#include <libgnomedb/gnome-db-dsn-spec.h>
+#include <libgnomedb/gnome-db-dsn-assistant.h>
+#include <libgnomedb/gnome-db-provider-selector.h>
+#include <libgnomedb/gnome-db-provider-spec-editor.h>
+#include <libgnomedb/gnome-db-provider-auth-editor.h>
 #include <libgnomedb/gnome-db-raw-form.h>
 #include <libgnomedb/gnome-db-raw-grid.h>
 #include <libgnomedb/gnome-db-grid.h>

Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in	(original)
+++ trunk/po/POTFILES.in	Wed May 14 19:54:09 2008
@@ -1,13 +1,13 @@
 [encoding: UTF-8]
 # List of source files containing translatable strings.
 # Please keep this list in alphabetical order.
-control-center/database-properties-3.0.desktop.in
+control-center/database-properties-4.0.desktop.in
 control-center/dsn-config.c
 control-center/dsn-properties-dialog.c
 control-center/main.c
 control-center/provider-config.c
 data/libgnomedb.keys.in
-data/libgnomedb-3.0.schemas.in
+data/libgnomedb-4.0.schemas.in
 data/server_operation.glade
 extra/gnome-db-browser.c
 extra/demos/main.c
@@ -29,15 +29,17 @@
 libgnomedb/gnome-db-data-import.c
 libgnomedb/gnome-db-data-store.c
 libgnomedb/gnome-db-data-widget-filter.c
+libgnomedb/gnome-db-data-widget-info.c
 libgnomedb/gnome-db-dsn-assistant.c
 libgnomedb/gnome-db-dsn-editor.c
-libgnomedb/gnome-db-dsn-spec.c
 libgnomedb/gnome-db-find-dialog.c
 libgnomedb/gnome-db-form.c
 libgnomedb/gnome-db-grid.c
 libgnomedb/gnome-db-init.c
-libgnomedb/gnome-db-login-dialog.c
 libgnomedb/gnome-db-login.c
+libgnomedb/gnome-db-login-dialog.c
+libgnomedb/gnome-db-provider-auth-editor.c
+libgnomedb/gnome-db-provider-spec-editor.c
 libgnomedb/gnome-db-raw-form.c
 libgnomedb/gnome-db-raw-grid.c
 libgnomedb/gnome-db-server-operation.c
@@ -58,44 +60,24 @@
 libgnomedb/plugins/gnome-db-entry-pict.c
 libgnomedb/plugins/gnome-db-entry-pict-spec_string.xml.in
 libgnomedb/plugins/gnome-db-entry-pict-spec.xml.in
-libgnomedb-extra/gnome-db-dbms-update-viewer.c
-libgnomedb-extra/gnome-db-error-dialog.c
 libgnomedb-extra/gnome-db-error.c
+libgnomedb-extra/gnome-db-error-dialog.c
 libgnomedb-extra/gnome-db-selector.c
-libgnomedb-extra/sel-aggregates.c
-libgnomedb-extra/sel-data-types.c
-libgnomedb-extra/sel-functions.c
-libgnomedb-extra/sel-graphs.c
-libgnomedb-extra/sel-onequery.c
-libgnomedb-extra/sel-onetable.c
-libgnomedb-extra/sel-onetarget.c
-libgnomedb-extra/sel-queries.c
-libgnomedb-extra/sel-tables.c
+libgnomedb-extra/gnome-db-selector-meta.c
+libgnomedb-extra/gnome-db-selector-part.c
+libgnomedb-extra/gnome-db-selector-schema.c
+libgnomedb-extra/gnome-db-selector-table.c
+libgnomedb-extra/gnome-db-selector-view.c
 libgnomedb-extra/gnome-db-sql-console.c
+libgnomedb-graph/gnome-db-canvas.c
+libgnomedb-graph/gnome-db-canvas-column.c
 libgnomedb-graph/gnome-db-canvas-db-relations.c
-libgnomedb-graph/gnome-db-canvas-field.c
-libgnomedb-graph/gnome-db-canvas-fkconstraint.c
-libgnomedb-graph/gnome-db-canvas-join.c
-libgnomedb-graph/gnome-db-canvas-query-struct.c
+libgnomedb-graph/gnome-db-canvas-fkey.c
+libgnomedb-graph/gnome-db-canvas-print.c
+libgnomedb-graph/gnome-db-canvas-table.c
+libgnomedb-graph/gnome-db-graph.c
+libgnomedb-graph/gnome-db-graph-item.c
 libgnomedb/utility.c
-libgnomedb-graph/gnome-db-canvas-db-relations.c
-libgnomedb-graph/gnome-db-canvas-cursor.c
-libgnomedb-graph/gnome-db-canvas-entity.c
-libgnomedb-graph/gnome-db-canvas-field.c
-libgnomedb-graph/gnome-db-canvas-fkconstraint.c
-libgnomedb-graph/gnome-db-canvas-item.c
-libgnomedb-graph/gnome-db-canvas-join.c
-libgnomedb-graph/gnome-db-canvas-query-struct.c
-libgnomedb-graph/gnome-db-canvas-text.c
-libgnomedb-graph/gnome-db-canvas-tip.c
-libgnomedb-goo/gnome-db-goo-db-relations.c
-libgnomedb-goo/gnome-db-goo-entity.c
-libgnomedb-goo/gnome-db-goo-field.c
-libgnomedb-goo/gnome-db-goo-fkconstraint.c
-libgnomedb-goo/gnome-db-goo-join.c
-libgnomedb-goo/gnome-db-goo-print.c
-libgnomedb-goo/gnome-db-goo-query-struct.c
-libgnomedb-goo/gnome-db-goo.c
 samples/SimpleExample/gladeui.glade
 testing/test-dyn-widgets.c
 testing/test-handlers.c

Modified: trunk/testing/test-dyn-widgets.c
==============================================================================
--- trunk/testing/test-dyn-widgets.c	(original)
+++ trunk/testing/test-dyn-widgets.c	Wed May 14 19:54:09 2008
@@ -76,7 +76,6 @@
  * list of tests' functions
  */
 static GtkWidget *editor_test_make   (MainConfig *config);
-static GtkWidget *dsn_selector_test_make   (MainConfig *config);
 
 static GtkWidget *combo_test_make (MainConfig *config);
 static void       combo_test_clean (MainConfig *config, GtkWidget *test_widget);
@@ -94,6 +93,17 @@
 
 static GtkWidget *format_entry_test_make   (MainConfig *config);
 
+static GtkWidget *dsn_selector_test_make   (MainConfig *config);
+static GtkWidget *dsn_editor_test_make   (MainConfig *config);
+static GtkWidget *dsn_assistant_test_make   (MainConfig *config);
+
+static GtkWidget *provider_selector_test_make   (MainConfig *config);
+static GtkWidget *provider_spec_editor_test_make   (MainConfig *config);
+static GtkWidget *provider_auth_editor_test_make   (MainConfig *config);
+
+static GtkWidget *connection_properties_test_make (MainConfig *config);
+
+
 /*
  * tests decalaration
  */
@@ -112,15 +122,6 @@
 	test->signal_conn_changed = NULL;
 	list = g_slist_append (list, test);
 
-	/* GnomeDbDataSourceSelector test */
-	test = g_new0 (ATest, 1);
-	test->test_name = "GnomeDbDataSourceSelector";
-	test->test_descr = "";
-	test->make_test_widget = dsn_selector_test_make;
-	test->clean_data = NULL;
-	test->signal_conn_changed = NULL;
-	list = g_slist_append (list, test);
-
 	/* GnomeDbEditor test */
 	test = g_new0 (ATest, 1);
 	test->test_name = "GnomeDbEditor";
@@ -175,6 +176,69 @@
 	test->signal_conn_changed = NULL;
 	list = g_slist_append (list, test);
 
+	/* GnomeDbDsnSelector test */
+	test = g_new0 (ATest, 1);
+	test->test_name = "GnomeDbDsnSelector";
+	test->test_descr = "";
+	test->make_test_widget = dsn_selector_test_make;
+	test->clean_data = NULL;
+	test->signal_conn_changed = NULL;
+	list = g_slist_append (list, test);
+
+	/* GnomeDbDsnEditor test */
+	test = g_new0 (ATest, 1);
+	test->test_name = "GnomeDbDsnEditor";
+	test->test_descr = "";
+	test->make_test_widget = dsn_editor_test_make;
+	test->clean_data = NULL;
+	test->signal_conn_changed = NULL;
+	list = g_slist_append (list, test);
+
+	/* GnomeDbDsnAssistant test */
+	test = g_new0 (ATest, 1);
+	test->test_name = "GnomeDbDsnAssistant";
+	test->test_descr = "";
+	test->make_test_widget = dsn_assistant_test_make;
+	test->clean_data = NULL;
+	test->signal_conn_changed = NULL;
+	list = g_slist_append (list, test);
+
+	/* GnomeDbProviderSelector test */
+	test = g_new0 (ATest, 1);
+	test->test_name = "GnomeDbProviderSelector";
+	test->test_descr = "";
+	test->make_test_widget = provider_selector_test_make;
+	test->clean_data = NULL;
+	test->signal_conn_changed = NULL;
+	list = g_slist_append (list, test);
+
+	/* GnomeDbProviderSpecEditor test */
+	test = g_new0 (ATest, 1);
+	test->test_name = "GnomeDbProviderSpecEditor";
+	test->test_descr = "";
+	test->make_test_widget = provider_spec_editor_test_make;
+	test->clean_data = NULL;
+	test->signal_conn_changed = NULL;
+	list = g_slist_append (list, test);
+
+	/* GnomeDbProviderAuthEditor test */
+	test = g_new0 (ATest, 1);
+	test->test_name = "GnomeDbProviderAuthEditor";
+	test->test_descr = "";
+	test->make_test_widget = provider_auth_editor_test_make;
+	test->clean_data = NULL;
+	test->signal_conn_changed = NULL;
+	list = g_slist_append (list, test);
+
+	/* GnomeDbConnectionProperties test */
+	test = g_new0 (ATest, 1);
+	test->test_name = "GnomeDbConnectionProperties";
+	test->test_descr = "";
+	test->make_test_widget = connection_properties_test_make;
+	test->clean_data = NULL;
+	test->signal_conn_changed = NULL;
+	list = g_slist_append (list, test);
+
 	config->tests = list;
 }
 
@@ -196,6 +260,7 @@
 /*
  * MAIN
  */
+static void add_test_page (MainConfig *config, ATest *test);
 static void open_connection (MainConfig *config, const gchar *string);
 static void destroy (GtkWidget *widget, gpointer data);
 static gboolean delete_event (GtkWidget *widget, GdkEvent  *event, gpointer data);
@@ -286,6 +351,13 @@
 		open_connection (config, str);
 		g_free (str);
 	}
+
+	/* start with the first test */
+	ATest *test;
+	test = g_slist_nth_data (config->tests, test_number);
+	if (!test)
+		test = config->tests->data;
+	add_test_page (config, test);
 	
 	gtk_main ();
 
@@ -509,7 +581,6 @@
 	return menubar1;
 }
 
-static void add_test_page (MainConfig *config, ATest *test);
 static void
 add_test_cb (GtkWidget *wid, MainConfig *config)
 {
@@ -560,7 +631,6 @@
 {
 	GtkWidget *wid, *label, *paned, *vb, *bb, *button, *nb;
 	gchar *str;
-	ATest *test;
 
 	paned = gtk_hpaned_new ();
 	gtk_container_set_border_width (GTK_CONTAINER (paned), 5);
@@ -632,12 +702,6 @@
 	g_signal_connect (G_OBJECT (button), "clicked",
 			  G_CALLBACK (right_del_clicked_cb), config);
 
-	/* start with the first test */
-	test = g_slist_nth_data (config->tests, test_number);
-	if (!test)
-		test = config->tests->data;
-	add_test_page (config, test);
-
 	return paned;
 }
 
@@ -786,23 +850,6 @@
 
 
 /*
- * GnomeDbDataSourceSelector test
- */
-static GtkWidget *
-dsn_selector_test_make (MainConfig *config)
-{
-	GtkWidget *ret, *wid;
-	
-	ret = gtk_table_new (3, 3, FALSE);
-	wid = gnome_db_data_source_selector_new (NULL);
-	gtk_table_attach (GTK_TABLE (ret), wid, 1, 2, 1, 2, 0, 0, 0, 0);
-	gtk_widget_show (wid);
-
-	return ret;
-}
-
-
-/*
  * GnomeDbEditor test
  */
 static GtkWidget *
@@ -1247,6 +1294,7 @@
 	gtk_container_add (GTK_CONTAINER (sw), console);
 	gtk_widget_show (console);
 	gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
+	gtk_widget_show (sw);
 
 	g_signal_connect (G_OBJECT (console), "sql_entered",
 			  G_CALLBACK (transaction_status_test_sql_entered_cb), data);
@@ -1274,11 +1322,53 @@
 static gchar *
 transaction_status_test_sql_entered_cb (GnomeDbSqlConsole *console, const gchar *sql, TestData11 *data)
 {
-	/*gda_connection_internal_treat_sql (data->config->cnc, sql, NULL);*/
-	TO_IMPLEMENT;
-	return g_strdup ("WARNING: this SQL is not run by the connection,"
-			 "\nbut just used as a shortcut to stimulate GdaConnection's\n"
-			 "transaction status tracking.");
+	static GdaSqlParser *parser = NULL;
+	GdaStatement *stmt;
+	GError *error = NULL;
+	const gchar *remain;
+	if (!parser) {
+		parser = gda_connection_create_parser (data->config->cnc);
+		if (!parser)
+			parser = gda_sql_parser_new ();
+	}
+	stmt = gda_sql_parser_parse_string (parser, sql, &remain, &error);
+	if (!stmt) {
+		gchar *ret = g_strdup (error && error->message ? error->message : "No detail");
+		if (error)
+			g_error_free (error);
+		return ret;
+	}
+
+	if (remain) {
+		gchar *ret = g_strdup_printf ("Remains: %s\n", remain); 
+		g_object_unref (stmt);
+		return ret;
+	}
+
+	GObject *obj;
+	obj = gda_connection_statement_execute (data->config->cnc, stmt, NULL, GDA_STATEMENT_MODEL_RANDOM_ACCESS, NULL, &error);
+	g_object_unref (stmt);
+	if (!obj) {
+		gchar *ret = g_strdup (error && error->message ? error->message : "No detail");
+		if (error)
+			g_error_free (error);
+		return ret;
+	}
+	else if (GDA_IS_DATA_MODEL (obj)) {
+		gchar *ret = gda_data_model_dump_as_string (GDA_DATA_MODEL (obj));
+		g_object_unref (obj);
+		return ret;
+	}
+	else if (GDA_IS_SET (obj)) {
+		gchar *ret = g_strdup ("Ok\n");
+		g_object_unref (obj);
+		return ret;
+	}
+	else {
+		gchar *ret = g_strdup ("???\n");
+		g_object_unref (obj);
+		return ret;
+	}
 }
 
 /*
@@ -1610,3 +1700,211 @@
 {
 	gtk_entry_set_text (GTK_ENTRY (data->entry), gtk_entry_get_text (GTK_ENTRY (data->set_text)));
 }
+
+/*
+ * GnomeDbDsnSelector test
+ */
+static GtkWidget *
+dsn_selector_test_make (MainConfig *config)
+{
+	GtkWidget *ret, *wid, *dsnsel;
+	
+	ret = gtk_table_new (2, 2, FALSE);
+	gtk_table_set_row_spacings (GTK_TABLE (ret), 5);
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>DSN:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+
+	dsnsel = gnome_db_dsn_selector_new ();
+	gtk_table_attach (GTK_TABLE (ret), dsnsel, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+
+	gtk_widget_show_all (ret);
+
+	return ret;
+}
+
+
+/*
+ * GnomeDbDsnEditor test
+ */
+
+static void 
+dsn_editor_dsn_changed_cb (GnomeDbDsnSelector *dsel, GnomeDbDsnEditor *editor)
+{
+	GdaDataSourceInfo *info;
+	const gchar *dsn;
+	dsn = gnome_db_dsn_selector_get_dsn (GNOME_DB_DSN_SELECTOR (dsel));
+	info = gda_config_get_dsn (dsn);
+	gnome_db_dsn_editor_set_dsn (GNOME_DB_DSN_EDITOR (editor), info);
+}
+
+static GtkWidget *
+dsn_editor_test_make (MainConfig *config)
+{
+	GtkWidget *ret, *wid, *dsel;
+	
+	ret = gtk_table_new (2, 2, FALSE);
+	gtk_table_set_row_spacings (GTK_TABLE (ret), 5);
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>DSN:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+
+	dsel = gnome_db_dsn_selector_new ();
+	gnome_db_combo_add_undef_choice (GNOME_DB_COMBO (dsel), TRUE);
+	gtk_table_attach (GTK_TABLE (ret), dsel, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>DSN editor:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+
+	wid = gnome_db_dsn_editor_new ();
+	gtk_table_attach_defaults (GTK_TABLE (ret), wid, 1, 2, 1, 2);
+	g_signal_connect (dsel, "changed", G_CALLBACK (dsn_editor_dsn_changed_cb), wid);
+
+	dsn_editor_dsn_changed_cb (GNOME_DB_DSN_SELECTOR (dsel), GNOME_DB_DSN_EDITOR (wid));
+
+	gtk_widget_show_all (ret);
+
+	return ret;
+}
+
+/*
+ * GnomeDbDsnAssistant test
+ */
+static GtkWidget *
+dsn_assistant_test_make (MainConfig *config)
+{
+	GtkWidget *ret, *wid;
+	
+	ret = gtk_table_new (3, 3, FALSE);
+	wid = gnome_db_dsn_assistant_new ();
+	gtk_widget_show (wid);
+
+	return ret;
+}
+
+/*
+ * GnomeDbProviderSelector test
+ */
+static GtkWidget *
+provider_selector_test_make (MainConfig *config)
+{
+	GtkWidget *ret, *wid, *psel;
+	
+	ret = gtk_table_new (2, 2, FALSE);
+	gtk_table_set_row_spacings (GTK_TABLE (ret), 5);
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>Provider:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+
+	psel = gnome_db_provider_selector_new ();
+	gtk_table_attach (GTK_TABLE (ret), psel, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+
+	gtk_widget_show_all (ret);
+
+	return ret;
+}
+
+/*
+ * GnomeDbProviderSpecEditor test
+ */
+static void
+provider_spec_prov_changed_cb (GnomeDbProviderSelector *prov_sel, GnomeDbProviderSpecEditor *editor)
+{
+	gnome_db_provider_spec_editor_set_provider (GNOME_DB_PROVIDER_SPEC_EDITOR (editor), 
+						    gnome_db_provider_selector_get_provider (GNOME_DB_PROVIDER_SELECTOR (prov_sel)));
+}
+
+static GtkWidget *
+provider_spec_editor_test_make (MainConfig *config)
+{
+	GtkWidget *ret, *wid, *psel;
+	
+	ret = gtk_table_new (2, 2, FALSE);
+	gtk_table_set_row_spacings (GTK_TABLE (ret), 5);
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>Provider:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+
+	psel = gnome_db_provider_selector_new ();
+	gnome_db_combo_add_undef_choice (GNOME_DB_COMBO (psel), TRUE);
+	gtk_table_attach (GTK_TABLE (ret), psel, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>Spec editor:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+
+	wid = gnome_db_provider_spec_editor_new (NULL);
+	gtk_table_attach_defaults (GTK_TABLE (ret), wid, 1, 2, 1, 2);
+	g_signal_connect (psel, "changed", G_CALLBACK (provider_spec_prov_changed_cb), wid);
+
+	provider_spec_prov_changed_cb (GNOME_DB_PROVIDER_SELECTOR (psel), GNOME_DB_PROVIDER_SPEC_EDITOR (wid));
+
+	gtk_widget_show_all (ret);
+
+	return ret;
+}
+
+/*
+ * GnomeDbProviderAuthEditor test
+ */
+static void
+provider_auth_prov_changed_cb (GnomeDbProviderSelector *prov_sel, GnomeDbProviderAuthEditor *editor)
+{
+	gnome_db_provider_auth_editor_set_provider (GNOME_DB_PROVIDER_AUTH_EDITOR (editor), 
+						    gnome_db_provider_selector_get_provider (GNOME_DB_PROVIDER_SELECTOR (prov_sel)));
+}
+
+static GtkWidget *
+provider_auth_editor_test_make (MainConfig *config)
+{
+	GtkWidget *ret, *wid, *psel;
+	
+	ret = gtk_table_new (2, 2, FALSE);
+	gtk_table_set_row_spacings (GTK_TABLE (ret), 5);
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>Provider:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+
+	psel = gnome_db_provider_selector_new ();
+	gnome_db_combo_add_undef_choice (GNOME_DB_COMBO (psel), TRUE);
+	gtk_table_attach (GTK_TABLE (ret), psel, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+
+	wid = gtk_label_new ("");
+	gtk_label_set_markup (GTK_LABEL (wid), "<b>Authentication editor:</b>");
+	gtk_misc_set_alignment (GTK_MISC (wid), 0., 0.);
+	gtk_table_attach (GTK_TABLE (ret), wid, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+
+	wid = gnome_db_provider_auth_editor_new (NULL);
+	gtk_table_attach_defaults (GTK_TABLE (ret), wid, 1, 2, 1, 2);
+	g_signal_connect (psel, "changed", G_CALLBACK (provider_auth_prov_changed_cb), wid);
+
+	provider_auth_prov_changed_cb (GNOME_DB_PROVIDER_SELECTOR (psel), GNOME_DB_PROVIDER_AUTH_EDITOR (wid));
+
+	gtk_widget_show_all (ret);
+
+	return ret;
+}
+
+/*
+ * GnomeDbConnectionProperties test
+ */
+static GtkWidget *
+connection_properties_test_make (MainConfig *config)
+{
+	GtkWidget *vbox, *wid;
+	
+	vbox = gtk_vbox_new (FALSE, 5);
+	wid = gnome_db_connection_properties_new (config->cnc);
+	gtk_box_pack_start (GTK_BOX (vbox), wid, TRUE, TRUE, 0);
+	gtk_widget_show (wid);
+
+	return vbox;
+}



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