diff options
Diffstat (limited to 'kmymoney2/converter/imymoneyreader.h')
-rw-r--r-- | kmymoney2/converter/imymoneyreader.h | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/kmymoney2/converter/imymoneyreader.h b/kmymoney2/converter/imymoneyreader.h new file mode 100644 index 0000000..6222af5 --- /dev/null +++ b/kmymoney2/converter/imymoneyreader.h @@ -0,0 +1,135 @@ + /*************************************************************************** + imymoneyreader.h - description + ------------------- + begin : Wed Feb 25 2004 + copyright : (C) 2000-2004 by Michael Edwardes + email : [email protected] + Javier Campos Morales <[email protected]> + Felix Rodriguez <[email protected]> + John C <[email protected]> + Thomas Baumgart <[email protected]> + Kevin Tambascio <[email protected]> + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef IMYMONEYREADER_H +#define IMYMONEYREADER_H + +// ---------------------------------------------------------------------------- +// QT Headers + +#include <qobject.h> +#include <qstring.h> +#include <qstringlist.h> + +// ---------------------------------------------------------------------------- +// KDE Headers + +#include <ktempfile.h> +#include <kprocess.h> + +// ---------------------------------------------------------------------------- +// Project Headers + +#include "../mymoney/mymoneyaccount.h" + +/** + * @author Kevin Tambascio + */ + +class IMyMoneyReader : public QObject +{ +public: + IMyMoneyReader() {} + virtual ~IMyMoneyReader() {} + + Q_OBJECT + + /** + * This method is used to store the filename into the object. + * The file should exist. If it does and an external filter + * program is specified with the current selected profile, + * the file is send through this filter and the result + * is stored in the m_tempFile file. + * + * @param name path and name of the file to be imported + */ + virtual void setFilename(const QString& name)=0; + + /** + * This method is used to store the name of the profile into the object. + * The selected profile will be loaded if it exists. If an external + * filter program is specified with the current selected profile, + * the file is send through this filter and the result + * is stored in the m_tempFile file. + * + * @param name QString reference to the name of the profile + */ + virtual void setProfile(const QString& name)=0; + + /** + * This method actually starts the import of data from the selected file + * into the MyMoney engine. + * + * This method also starts the user defined import filter program + * defined in the QIF profile(when a QIF file is selected). If none is + * defined, the file is read as is (actually the UNIX command + * 'cat -' is used as the filter). + * + * If data from the filter program is available, the slot + * slotReceivedDataFromFilter() will be called. + * + * Make sure to connect the signal importFinished() to detect when + * the import actually ended. Call the method finishImport() to clean + * things up and get the overall result of the import. + * + * @retval true the import was started successfully + * @retval false the import could not be started. + */ + virtual const bool startImport(void)=0; + + /** + * This method must be called once the signal importFinished() has + * been emitted. It will clean up the reader state and determines + * the actual return code of the import. + * + * @retval true Import was successful. + * @retval false Import failed because the filter program terminated + * abnormally or the user aborted the import process. + */ + virtual const bool finishImport(void)=0; + + /** + * This method is used to modify the auto payee creation flag. + * If this flag is set, records for payees that are not currently + * found in the engine will be automatically created with no + * further user interaction required. If this flag is no set, + * the user will be asked if the payee should be created or not. + * If the MyMoneyQifReader object is created auto payee creation + * is turned off. + * + * @param create flag if this feature should be turned on (@p true) + * or turned off (@p false) + */ + virtual void setAutoCreatePayee(const bool create)=0; + virtual void setAskPayeeCategory(const bool ask)=0; + + virtual const MyMoneyAccount& account() const { return m_account; }; + virtual void setProgressCallback(void(*callback)(int, int, const QString&)) { m_progressCallback = callback; } + +private: + MyMoneyAccount m_account; + void (*m_progressCallback)(int, int, const QString&); + QString m_filename; + +}; + +#endif |