[Gnucash-changes] Get format provider working and tested.

Derek Atkins warlord at cvs.gnucash.org
Sat Apr 10 15:47:01 EDT 2004


Log Message:
-----------
Get format provider working and tested.

	* src/import-export/Makefile.am: add missing header file to noinst list
	* src/import-export/gnc-import-desc-format.[ch]: callbacks should
	  take a GNCImportFormatCB*.
	* src/import-export/gnc-import-format-gnome.c: fix a couple bugs.
	  - make sure we only include available choices.
	  - send the right callback.
	* src/import-export/gncmod-generic-import.c: register the format provider
	* src/import-export/qif-import/Makefile.am: include and link against
	  generic import library (for test druid)
	* src/import-export/qif-import/gnc-druid-test.c: add "format" provider
	  to druid test

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash:
        ChangeLog
    gnucash/src/import-export:
        Makefile.am
        gnc-import-desc-format.c
        gnc-import-desc-format.h
        gnc-import-format-gnome.c
        gncmod-generic-import.c
    gnucash/src/import-export/qif-import:
        Makefile.am
        gnc-druid-test.c

Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.119
retrieving revision 1.1487.2.120
diff -LChangeLog -LChangeLog -u -r1.1487.2.119 -r1.1487.2.120
--- ChangeLog
+++ ChangeLog
@@ -9,6 +9,18 @@
 	* src/import-export/import-provider-format.glade:  glade file
 	  for the format provider
 
+	* src/import-export/Makefile.am: add missing header file to noinst list
+	* src/import-export/gnc-import-desc-format.[ch]: callbacks should
+	  take a GNCImportFormatCB*.
+	* src/import-export/gnc-import-format-gnome.c: fix a couple bugs.
+	  - make sure we only include available choices.
+	  - send the right callback.
+	* src/import-export/gncmod-generic-import.c: register the format provider
+	* src/import-export/qif-import/Makefile.am: include and link against
+	  generic import library (for test druid)
+	* src/import-export/qif-import/gnc-druid-test.c: add "format" provider
+	  to druid test
+
 2004-03-05  Tomas Cernaj  <tcernaj at gmx.de>
 
 	* src/register/register-gnome/gnucash-grid.c:
Index: gnc-import-format-gnome.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/Attic/gnc-import-format-gnome.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/import-export/gnc-import-format-gnome.c -Lsrc/import-export/gnc-import-format-gnome.c -u -r1.1.2.1 -r1.1.2.2
--- src/import-export/gnc-import-format-gnome.c
+++ src/import-export/gnc-import-format-gnome.c
@@ -71,7 +71,7 @@
 }
 
 #define ADD_MENU_ITEM(str,op) { \
-	if (formats && op) { \
+	if (formats & op) { \
 	    item = add_menu_item(menu, prov_f, str, op); \
 	    if (!first) first = item; \
 	} \
@@ -85,8 +85,8 @@
   menu = gtk_menu_new();
 
   /* Numeric formats */
-  ADD_MENU_ITEM("1,000.00", GNCIF_NUM_PERIOD);
-  ADD_MENU_ITEM("1.000,00", GNCIF_NUM_COMMA);
+  ADD_MENU_ITEM(_("Period-as-decimal (1,000.00)"), GNCIF_NUM_PERIOD);
+  ADD_MENU_ITEM(_("Comma-as-decimal (1.000,00)"), GNCIF_NUM_COMMA);
 
   /* Date formats */
   ADD_MENU_ITEM(_("m-d-y"), GNCIF_DATE_MDY);
@@ -111,14 +111,14 @@
   const gchar* sample;
 
   /* See if we have anything to do. */
-  formats = desc_f->get_formats(prov->druid->be_ctx);
+  formats = desc_f->get_formats(prov_f->cb);
 
   /* If nothing to do, return NULL */
   if (formats == GNCIF_NONE)
     return NULL;
 
   /* Otherwise set up the menu and sample, then let the user at it */
-  sample = desc_f->get_sample(prov->druid->be_ctx);
+  sample = desc_f->get_sample(prov_f->cb);
 
   if (sample)
     gtk_label_set_text(prov_f->sample_label, sample);
Index: gnc-import-desc-format.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/Attic/gnc-import-desc-format.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/import-export/gnc-import-desc-format.c -Lsrc/import-export/gnc-import-desc-format.c -u -r1.1.2.1 -r1.1.2.2
--- src/import-export/gnc-import-desc-format.c
+++ src/import-export/gnc-import-desc-format.c
@@ -49,8 +49,8 @@
 gnc_import_desc_format_new_with_data(const gchar* title,
 				     const gchar* text,
 				     gboolean (*next_cb)(GNCDruidCB*),
-				     GncImportFormat (*get_formats)(GNCDruidCB*),
-				     const gchar* (*get_sample)(GNCDruidCB*))
+				     GncImportFormat (*get_formats)(GNCImportFormatCB*),
+				     const gchar* (*get_sample)(GNCImportFormatCB*))
 {
   GNCImportDescFormat* desc;
 
Index: gnc-import-desc-format.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/Attic/gnc-import-desc-format.h,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/import-export/gnc-import-desc-format.h -Lsrc/import-export/gnc-import-desc-format.h -u -r1.1.2.1 -r1.1.2.2
--- src/import-export/gnc-import-desc-format.h
+++ src/import-export/gnc-import-desc-format.h
@@ -20,6 +20,8 @@
 #include "gnc-druid.h"
 #include "import-parse.h"
 
+#include "gnc-import-format-cb.h"
+
 #define GNC_IMPORT_DESC_TYPE_FORMAT	"import:format"
 
 struct _GNCImportDescFormat
@@ -27,8 +29,8 @@
   GNCDruidProviderDesc parent;
 
   gchar* text;
-  GncImportFormat (*get_formats)(GNCDruidCB*);
-  const gchar* (*get_sample)(GNCDruidCB*);
+  GncImportFormat (*get_formats)(GNCImportFormatCB*);
+  const gchar* (*get_sample)(GNCImportFormatCB*);
 
 };
 
@@ -43,8 +45,8 @@
 gnc_import_desc_format_new_with_data(const gchar* title,
 				     const gchar* text,
 				     gboolean (*next_cb)(GNCDruidCB*),
-				     GncImportFormat (*get_formats)(GNCDruidCB*),
-				     const gchar* (*get_sample)(GNCDruidCB*));
+				     GncImportFormat (*get_formats)(GNCImportFormatCB*),
+				     const gchar* (*get_sample)(GNCImportFormatCB*));
 
 void	gnc_import_desc_format_set_text(GNCImportDescFormat*,
 					       const gchar* text);
Index: gncmod-generic-import.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/gncmod-generic-import.c,v
retrieving revision 1.7.4.1
retrieving revision 1.7.4.2
diff -Lsrc/import-export/gncmod-generic-import.c -Lsrc/import-export/gncmod-generic-import.c -u -r1.7.4.1 -r1.7.4.2
--- src/import-export/gncmod-generic-import.c
+++ src/import-export/gncmod-generic-import.c
@@ -8,6 +8,8 @@
 #include <glib.h>
 #include <libguile.h>
 
+#include "gnc-import-format-gnome.h"
+
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 /* version of the gnc module system interface we require */
@@ -53,6 +55,11 @@
     return FALSE;
   }
   scm_c_eval_string("(load-from-path \"generic-import/generic-import.scm\")");
+
+  if (!refcount) {
+    gnc_import_format_gnome_register();
+  }
+
   return TRUE;
 }
 
Index: Makefile.am
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/Makefile.am,v
retrieving revision 1.25.4.8
retrieving revision 1.25.4.9
diff -Lsrc/import-export/Makefile.am -Lsrc/import-export/Makefile.am -u -r1.25.4.8 -r1.25.4.9
--- src/import-export/Makefile.am
+++ src/import-export/Makefile.am
@@ -34,7 +34,8 @@
   import-match-map.h \
   import-match-picker.h \
   import-settings.h \
-  import-utilities.h 
+  import-utilities.h \
+  gnc-import-format-gnome.h
 
 libgncmod_generic_import_la_LDFLAGS = -module
 
Index: Makefile.am
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/qif-import/Makefile.am,v
retrieving revision 1.21.4.5
retrieving revision 1.21.4.6
diff -Lsrc/import-export/qif-import/Makefile.am -Lsrc/import-export/qif-import/Makefile.am -u -r1.21.4.5 -r1.21.4.6
--- src/import-export/qif-import/Makefile.am
+++ src/import-export/qif-import/Makefile.am
@@ -18,6 +18,7 @@
 libgncmod_qif_import_la_LDFLAGS = -module 
 
 libgncmod_qif_import_la_LIBADD = \
+  ${top_builddir}/src/import-export/libgncmod-generic-import.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-file/libgncmod-app-file.la \
   ${top_builddir}/src/gnc-module/libgncmodule.la \
@@ -55,6 +56,7 @@
   -I${top_srcdir}/src/app-file \
   -I${top_srcdir}/src/gnome \
   -I${top_srcdir}/src/gnome-utils \
+  -I${top_srcdir}/src/import-export \
   -I${top_srcdir}/lib/egg \
   ${G_WRAP_COMPILE_ARGS} \
   ${GUILE_INCS} \
Index: gnc-druid-test.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/qif-import/Attic/gnc-druid-test.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -Lsrc/import-export/qif-import/gnc-druid-test.c -Lsrc/import-export/qif-import/gnc-druid-test.c -u -r1.1.2.3 -r1.1.2.4
--- src/import-export/qif-import/gnc-druid-test.c
+++ src/import-export/qif-import/gnc-druid-test.c
@@ -4,6 +4,7 @@
 #include "gnc-druid-provider-desc-edge.h"
 #include "gnc-druid-provider-desc-file.h"
 #include "gnc-druid-provider-desc-multifile.h"
+#include "gnc-import-desc-format.h"
 #include "gnc-druid-test.h"
 
 #include <stdio.h>
@@ -52,6 +53,26 @@
   return TRUE;
 }
 
+static GncImportFormat
+gnc_dt_test_get_formats(GNCImportFormatCB *cb)
+{
+  return GNCIF_DATE_YMD|GNCIF_DATE_YDM;
+}
+
+static const gchar *
+gnc_dt_test_get_sample(GNCImportFormatCB *cb)
+{
+  return "2004-10-11";
+}
+
+static gboolean
+gnc_dt_test_formats_done(GNCDruidCB *cb)
+{
+  GNCImportFormatCB *cb_f = GNC_IMPORT_FORMAT_CB(cb);
+  fprintf(stderr, "User selected format: %d\n", cb_f->format);
+  return TRUE;
+}
+
 static GList *
 gnc_dt_test_build_providers(void)
 {
@@ -85,6 +106,13 @@
   desc_file->multifile_provider = desc_multifile;
 
   list = g_list_prepend(list, desc_multifile);
+  list = g_list_prepend(list,
+			gnc_import_desc_format_new_with_data("Formats are Ambiguous",
+							     "Choose your format!",
+							     gnc_dt_test_formats_done,
+							     gnc_dt_test_get_formats,
+							     gnc_dt_test_get_sample));
+
   list = g_list_prepend(list, desc_file);
   list =
     g_list_prepend(list,


More information about the Gnucash-changes mailing list