[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