00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef QBANKING_BANKING_H
00014 #define QBANKING_BANKING_H
00015
00016
00017 #define QBANKING_PM_CFGMODULE "qbanking_cfg_module"
00018 #define QBANKING_REGKEY_PATHS "Software\\QBanking\\Paths"
00019 #define QBANKING_REGKEY_CFGMODULEDIR "cfgmoduledir"
00020 #define QBANKING_CFGMODULEDIR "cfgmodules"
00021
00022
00023 #include <aqbanking/banking.h>
00024 #include <aqbanking/accstatus.h>
00025
00026 #include <qobject.h>
00027 #include <qdatetime.h>
00028 #include <qstring.h>
00029 #include <qstringlist.h>
00030 #include <qguardedptr.h>
00031
00032 #include <list>
00033
00034 class QTranslator;
00035
00036 class QBanking;
00037
00038 #include <qbanking/banking.h>
00039 #include <qbanking/qbflagstaff.h>
00040
00041 #include <gwenhywfar/plugin.h>
00042
00043
00044 class QBProgress;
00045 class QBSimpleBox;
00046 class QBWaitCallback;
00047 class QBCfgModule;
00048
00049
00050 class QBANKING_API QBanking: public Banking {
00051 friend class QBanking_Linker;
00052 private:
00053 QGuardedPtr<QWidget> _parentWidget;
00054 GWEN_TYPE_UINT32 _lastWidgetId;
00055 AB_BANKING_LOGLEVEL _logLevel;
00056 std::list<QBProgress*> _progressWidgets;
00057 std::list<QBSimpleBox*> _simpleBoxWidgets;
00058 QBFlagStaff *_flagStaff;
00059 QTranslator *_translator;
00060
00061 QBWaitCallback *_simpleCallback;
00062 QBWaitCallback *_fastCallback;
00063
00064 GWEN_PLUGIN_MANAGER *_pluginManagerCfgModules;
00065 QBCfgModule *_appCfgModule;
00066
00067 std::list<QBCfgModule*> _cfgModules;
00068
00069 QString _appHelpPath;
00070
00071 QBProgress *_findProgressWidget(GWEN_TYPE_UINT32 id);
00072 void _cleanupProgressWidgets();
00073
00074 AB_ACCOUNT *_getAccount(const char *accountId);
00075 static int _extractHTML(const char *text, GWEN_BUFFER *buf);
00076
00077 QBCfgModule *_findCfgModule(const char *modname);
00078 QBCfgModule *_loadCfgModule(const char *modname);
00079
00080 public:
00081 QBanking(const char *appname,
00082 const char *fname=0);
00083 virtual ~QBanking();
00084
00085 int init();
00086 int fini();
00087
00088 void setAppHelpPath(const QString &s);
00089
00090 virtual int messageBox(GWEN_TYPE_UINT32 flags,
00091 const char *title,
00092 const char *text,
00093 const char *b1,
00094 const char *b2,
00095 const char *b3);
00096
00097 virtual int inputBox(GWEN_TYPE_UINT32 flags,
00098 const char *title,
00099 const char *text,
00100 char *buffer,
00101 int minLen,
00102 int maxLen);
00103
00104 virtual GWEN_TYPE_UINT32 showBox(GWEN_TYPE_UINT32 flags,
00105 const char *title,
00106 const char *text);
00107 virtual void hideBox(GWEN_TYPE_UINT32 id);
00108
00109 virtual GWEN_TYPE_UINT32 progressStart(const char *title,
00110 const char *text,
00111 GWEN_TYPE_UINT32 total);
00112
00120 virtual int progressAdvance(GWEN_TYPE_UINT32 id,
00121 GWEN_TYPE_UINT32 progress);
00122 virtual int progressLog(GWEN_TYPE_UINT32 id,
00123 AB_BANKING_LOGLEVEL level,
00124 const char *text);
00125 virtual int progressEnd(GWEN_TYPE_UINT32 id);
00126
00134 virtual int print(const char *docTitle,
00135 const char *docType,
00136 const char *descr,
00137 const char *text);
00138
00139 virtual QBFlagStaff *flagStaff();
00140
00141 void setParentWidget(QWidget *w);
00142 QWidget *getParentWidget();
00143
00144 int enqueueJob(AB_JOB *j);
00145 int dequeueJob(AB_JOB *j);
00146 int executeQueue(AB_IMEXPORTER_CONTEXT *ctx);
00147
00148 void setAccountAlias(AB_ACCOUNT *a, const char *alias);
00149
00150 void accountsUpdated();
00151 void outboxCountChanged(int count);
00152 void statusMessage(const QString &s);
00153
00154 virtual void invokeHelp(const QString &context,
00155 const QString &subject);
00156
00157 virtual bool mapAccount(const AB_ACCOUNT *a);
00158
00159 bool askMapAccount(const char *id,
00160 const char *bankCode,
00161 const char *accountId);
00162
00163
00164 virtual bool addTransaction(const AB_ACCOUNT *a, const AB_TRANSACTION *t);
00165 virtual bool setAccountStatus(const AB_ACCOUNT *a,
00166 const AB_ACCOUNT_STATUS *ast);
00167
00168 bool requestBalance(const char *accountId);
00169 bool requestTransactions(const char *accountId,
00170 const QDate &fromDate,
00171 const QDate &toDate);
00172
00173 virtual bool importContext(AB_IMEXPORTER_CONTEXT *ctx,
00174 GWEN_TYPE_UINT32 flags);
00175
00176 virtual bool importAccountInfo(AB_IMEXPORTER_ACCOUNTINFO *ai,
00177 GWEN_TYPE_UINT32 flags);
00178
00179 virtual bool interactiveImport();
00180
00181
00182 virtual GWEN_TYPE_UINT32 showBox(GWEN_TYPE_UINT32 flags,
00183 const QString &title,
00184 const QString &text);
00185
00186
00187 virtual GWEN_TYPE_UINT32 progressStart(const QString &title,
00188 const QString &text,
00189 GWEN_TYPE_UINT32 total);
00190 virtual int progressLog(GWEN_TYPE_UINT32 id,
00191 AB_BANKING_LOGLEVEL level,
00192 const QString &text);
00193
00205 virtual int print(const QString &docTitle,
00206 const QString &docType,
00207 const QString &descr,
00208 const QString &text);
00209
00231 AB_BANKINFO *selectBank(QWidget* parent=0,
00232 const QString &title=QString(""),
00233 const QString &country=QString("de"),
00234 const QString &bankCode=QString(""),
00235 const QString &swiftCode=QString(""),
00236 const QString &bankName=QString(""),
00237 const QString &location=QString(""));
00238
00239 void setupDialog(QWidget *parent=0);
00240
00249 QBCfgModule *getConfigModule(const char *modname);
00250
00255 void setAppConfigModule(QBCfgModule *mod);
00256
00264 static QBANKING_API std::string QStringToUtf8String(const QString &qs);
00265
00276 static QBANKING_API std::string guiString(const char *s);
00277
00284 static QBANKING_API bool isPure7BitAscii(const QString &s);
00285
00286 };
00287
00288
00289
00290
00291 #endif
00292
00293