qbanking.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: qbanking.h,v $
00003                              -------------------
00004     cvs         : $Id: qbanking.h,v 1.9 2006/02/14 02:11:53 aquamaniac Exp $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
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 /* QBANKING_BANKING_H */
00292 
00293 

Generated on Tue Apr 10 19:04:09 2007 for aqbanking by  doxygen 1.4.7