Add support for upcoming libaqbanking-5 version.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19126 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Christian Stimming 2010-05-06 11:40:41 +00:00
parent 3d4ebd8338
commit d4419cfd14
9 changed files with 93 additions and 26 deletions

View File

@ -646,7 +646,11 @@ get_available_empty_job(AB_ACCOUNT *ab_acc, GncABTransType trans_type)
job = AB_JobSingleTransfer_new(ab_acc);
};
if (!job || AB_Job_CheckAvailability(job, 0))
if (!job || AB_Job_CheckAvailability(job
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
))
{
if (job) AB_Job_free(job);
return NULL;

View File

@ -174,7 +174,7 @@ dai_destroy_cb(GtkObject *object, gpointer user_data)
if (info->gnc_hash)
{
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineFini(info->api, 0);
#else
AB_Banking_OnlineFini(info->api);
@ -352,7 +352,7 @@ dai_match_page_prepare_cb(GnomeDruidPage *druid_page, GtkWidget *widget,
info->match_page_prepared = TRUE;
/* Load aqbanking accounts */
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineInit(info->api, 0);
#else
AB_Banking_OnlineInit(info->api);
@ -395,7 +395,7 @@ banking_has_accounts(AB_BANKING *banking)
g_return_val_if_fail(banking, FALSE);
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineInit(banking, 0);
#else
AB_Banking_OnlineInit(banking);
@ -410,7 +410,7 @@ banking_has_accounts(AB_BANKING *banking)
if (accl)
AB_Account_List2_free(accl);
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineFini(banking, 0);
#else
AB_Banking_OnlineFini(banking);

View File

@ -64,7 +64,7 @@ gnc_ab_getbalance(GtkWidget *parent, Account *gnc_acc)
return;
}
if (AB_Banking_OnlineInit(api
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
, 0
#endif
) != 0)
@ -84,7 +84,11 @@ gnc_ab_getbalance(GtkWidget *parent, Account *gnc_acc)
/* Get a GetBalance job and enqueue it */
job = AB_JobGetBalance_new(ab_acc);
if (!job || AB_Job_CheckAvailability(job, 0))
if (!job || AB_Job_CheckAvailability(job
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
))
{
g_warning("gnc_ab_getbalance: JobGetBalance not available for this "
"account");
@ -105,7 +109,11 @@ gnc_ab_getbalance(GtkWidget *parent, Account *gnc_acc)
context = AB_ImExporterContext_new();
/* Execute the job */
if (AB_Banking_ExecuteJobs(api, job_list, context, 0))
if (AB_Banking_ExecuteJobs(api, job_list, context
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
))
{
g_warning("gnc_ab_getbalance: Error on executing job");
goto cleanup;
@ -126,7 +134,7 @@ cleanup:
if (job)
AB_Job_free(job);
if (online)
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineFini(api, 0);
#else
AB_Banking_OnlineFini(api);

View File

@ -117,7 +117,7 @@ gnc_ab_gettrans(GtkWidget *parent, Account *gnc_acc)
return;
}
if (AB_Banking_OnlineInit(api
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
, 0
#endif
) != 0)
@ -146,7 +146,11 @@ gnc_ab_gettrans(GtkWidget *parent, Account *gnc_acc)
/* Get a GetTransactions job and enqueue it */
job = AB_JobGetTransactions_new(ab_acc);
if (!job || AB_Job_CheckAvailability(job, 0))
if (!job || AB_Job_CheckAvailability(job
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
))
{
g_warning("gnc_ab_gettrans: JobGetTransactions not available for this "
"account");
@ -169,7 +173,11 @@ gnc_ab_gettrans(GtkWidget *parent, Account *gnc_acc)
context = AB_ImExporterContext_new();
/* Execute the job */
if (AB_Banking_ExecuteJobs(api, job_list, context, 0))
if (AB_Banking_ExecuteJobs(api, job_list, context
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
))
{
g_warning("gnc_ab_gettrans: Error on executing job");
goto cleanup;
@ -212,7 +220,7 @@ cleanup:
if (from_date)
GWEN_Time_free(from_date);
if (online)
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineFini(api, 0);
#else
AB_Banking_OnlineFini(api);

View File

@ -100,7 +100,7 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
return;
}
if (AB_Banking_OnlineInit(api
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
, 0
#endif
) != 0)
@ -175,7 +175,11 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
/* Get a job and enqueue it */
ab_trans = gnc_ab_trans_dialog_get_ab_trans(td);
job = gnc_ab_trans_dialog_get_job(td);
if (!job || AB_Job_CheckAvailability(job, 0))
if (!job || AB_Job_CheckAvailability(job
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
))
{
if (!gnc_verify_dialog(
parent, FALSE, "%s",
@ -256,7 +260,11 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
}
/* Finally, execute the job */
AB_Banking_ExecuteJobs(api, job_list, context, 0);
AB_Banking_ExecuteJobs(api, job_list, context
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
);
/* Ignore the return value of AB_Banking_ExecuteJobs(), as the job's
* status always describes better whether the job was actually
@ -327,7 +335,7 @@ cleanup:
if (td)
gnc_ab_trans_dialog_free(td);
if (online)
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineFini(api, 0);
#else
AB_Banking_OnlineFini(api);

View File

@ -902,7 +902,11 @@ gnc_ab_get_permanent_certs(void)
g_return_val_if_fail(banking, NULL);
#ifdef AQBANKING_VERSION_4_PLUS
rv = AB_Banking_LoadSharedConfig(banking, "certs", &perm_certs, 0);
rv = AB_Banking_LoadSharedConfig(banking, "certs", &perm_certs
# ifndef AQBANKING_VERSION_5_PLUS
, 0
# endif
);
#else
/* FIXME: Add code for older AqBanking versions */
/* See QBankmanager 0.9.50 in src/kbanking/libs/kbanking.cpp lines 323ff

View File

@ -48,6 +48,17 @@ G_BEGIN_DECLS
# define AQBANKING_VERSION_4_PLUS
#endif
#if (AQBANKING_VERSION_MAJOR > 4) || \
((AQBANKING_VERSION_MAJOR == 4) && \
(AQBANKING_VERSION_MINOR >= 99))
/** Defined if libaqbanking5 as opposed to libaqbanking4 is being used */
# define AQBANKING_VERSION_5_PLUS
#endif
#if defined(AQBANKING_VERSION_4_PLUS) && !defined(AQBANKING_VERSION_5_PLUS)
# define AQBANKING_VERSION_4_EXACTLY
#endif
#define GCONF_SECTION_AQBANKING "dialogs/import/hbci"
#define KEY_FORMAT_SWIFT940 "format_swift_mt940"
#define KEY_FORMAT_SWIFT942 "format_swift_mt942"

View File

@ -36,12 +36,20 @@
#include <glib/gstdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <gwenhywfar/io_file.h>
#include <gwenhywfar/io_buffered.h>
#include <gwenhywfar/iomanager.h>
#include "gnc-ab-utils.h"
#ifdef AQBANKING_VERSION_5_PLUS
# include <gwenhywfar/syncio_file.h>
# include <gwenhywfar/syncio_buffered.h>
typedef GWEN_SYNCIO GWEN_IO_LAYER;
#else
# include <gwenhywfar/io_file.h>
# include <gwenhywfar/io_buffered.h>
# include <gwenhywfar/iomanager.h>
#endif
#include "dialog-ab-trans.h"
#include "gnc-ab-utils.h"
#include "gnc-file.h"
#include "gnc-file-aqb-import.h"
#include "gnc-gwen-gui.h"
@ -103,7 +111,7 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
goto cleanup;
}
if (AB_Banking_OnlineInit(api
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
, 0
#endif
) != 0)
@ -166,23 +174,36 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
context = AB_ImExporterContext_new();
/* Wrap file in buffered gwen io */
#ifdef AQBANKING_VERSION_5_PLUS
close(dtaus_fd);
io = GWEN_SyncIo_File_new(selected_filename, GWEN_SyncIo_File_CreationMode_OpenExisting);
#else
io = GWEN_Io_LayerFile_new(dtaus_fd, -1);
dtaus_fd = -1;
if (GWEN_Io_Manager_RegisterLayer(io))
{
g_warning("gnc_file_aqbanking_import: Failed to wrap file");
goto cleanup;
}
#endif
dtaus_fd = -1;
/* Run the import */
if (AB_ImExporter_Import(importer, context, io, db_profile, 0))
if (AB_ImExporter_Import(importer, context, io, db_profile
#ifndef AQBANKING_VERSION_5_PLUS
, 0
#endif
))
{
g_warning("gnc_file_aqbanking_import: Error on import");
goto cleanup;
}
/* Close the file */
#ifdef AQBANKING_VERSION_5_PLUS
GWEN_SyncIo_free(io);
#else
GWEN_Io_Layer_free(io);
#endif
/* Import the results */
ieci = gnc_ab_import_context(context, AWAIT_TRANSACTIONS,
@ -214,7 +235,7 @@ cleanup:
if (gui)
gnc_GWEN_Gui_release(gui);
if (online)
#ifdef AQBANKING_VERSION_4_PLUS
#ifdef AQBANKING_VERSION_4_EXACTLY
AB_Banking_OnlineFini(api, 0);
#else
AB_Banking_OnlineFini(api);

View File

@ -132,6 +132,9 @@ static gint setpasswordstatus_cb(GWEN_GUI *gwen_gui, const gchar *token,
GWEN_GUI_PASSWORD_STATUS status, guint32 guiid);
static gint loghook_cb(GWEN_GUI *gwen_gui, const gchar *log_domain,
GWEN_LOGGER_LEVEL priority, const gchar *text);
#ifdef AQBANKING_VERSION_5_PLUS
typedef GWEN_SYNCIO GWEN_IO_LAYER;
#endif
static gint checkcert_cb(GWEN_GUI *gwen_gui, const GWEN_SSLCERTDESCR *cert,
GWEN_IO_LAYER *io, guint32 guiid);