You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmymoney/kmymoney2/converter/mymoneyqifprofile.h

146 lines
5.3 KiB

/***************************************************************************
mymoneyqifprofile.h - description
-------------------
begin : Tue Dec 24 2002
copyright : (C) 2002 by Thomas Baumgart
email : thb@net-bembel.de
***************************************************************************/
/***************************************************************************
* *
* 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 MYMONEYTQIFPROFILE_H
#define MYMONEYTQIFPROFILE_H
// ----------------------------------------------------------------------------
// QT Includes
#include <tqobject.h>
#include <tqstring.h>
class TQDate;
// ----------------------------------------------------------------------------
// KDE Includes
// ----------------------------------------------------------------------------
// Project Includes
class MyMoneyMoney;
/**
* @author Thomas Baumgart
*/
class MyMoneyQifProfile : public TQObject
{
Q_OBJECT
TQ_OBJECT
public:
MyMoneyQifProfile();
MyMoneyQifProfile(const TQString& name);
~MyMoneyQifProfile();
const TQString& profileName(void) const { return m_profileName; }
void setProfileName(const TQString& name);
void loadProfile(const TQString& name);
void saveProfile(void);
const TQDate date(const TQString& datein) const;
TQString date(const TQDate& datein) const;
MyMoneyMoney value(const TQChar& def, const TQString& valuein) const;
TQString value(const TQChar& def, const MyMoneyMoney& valuein) const;
const TQString& outputDateFormat(void) const { return m_dateFormat; }
TQString inputDateFormat(void) const;
const TQString& apostropheFormat(void) const { return m_apostropheFormat; }
TQChar amountDecimal(const TQChar& def) const;
TQChar amountThousands(const TQChar& def) const;
const TQString& profileDescription(void) const { return m_profileDescription; }
const TQString& profileType(void) const { return m_profileType; }
const TQString& openingBalanceText(void) const { return m_openingBalanceText; }
TQString accountDelimiter(void) const;
const TQString& voidMark(void) const { return m_voidMark; }
const TQString& filterScriptImport(void) const { return m_filterScriptImport; }
const TQString& filterScriptExport(void) const { return m_filterScriptExport; }
const TQString& filterFileType(void) const { return m_filterFileType; }
bool attemptMatchDuplicates(void) const { return m_attemptMatchDuplicates; }
/**
* This method scans all strings contained in @a lines and tries to figure
* out the settings for m_decimal, m_thousands and m_dateFormat
*/
void autoDetect(const TQStringList& lines);
/**
* This method returns a list of possible date formats the user
* can choose from. If autoDetect() has not been run, the @a list
* contains all possible date formats, in the other case, the @a list
* is adjusted to those that will match the data scanned.
*/
void possibleDateFormats(TQStringList& list) const;
/**
* This method presets the member variables with the default values.
*/
void clear(void);
/**
* This method is used to determine, if a profile has been changed or not
*/
bool isDirty(void) const { return m_isDirty; };
public slots:
void setProfileDescription(const TQString& desc);
void setProfileType(const TQString& type);
void setOutputDateFormat(const TQString& dateFormat);
void setInputDateFormat(const TQString& dateFormat);
void setApostropheFormat(const TQString& apostropheFormat);
void setAmountDecimal(const TQChar& def, const TQChar& chr);
void setAmountThousands(const TQChar& def, const TQChar& chr);
void setAccountDelimiter(const TQString& delim);
void setOpeningBalanceText(const TQString& text);
void setVoidMark(const TQString& txt);
void setFilterScriptImport(const TQString& txt);
void setFilterScriptExport(const TQString& txt);
void setFilterFileType(const TQString& txt);
void setAttemptMatchDuplicates(bool);
private:
TQString twoDigitYear(const TQChar delim, int yr) const;
void scanNumeric(const TQString& txt, TQChar& decimal, TQChar& thousands) const;
void scanDate(const TQString& txt) const;
private:
/// \internal d-pointer class.
class Private;
/// \internal d-pointer instance.
Private* const d;
bool m_isDirty;
TQString m_profileName;
TQString m_profileDescription;
TQString m_dateFormat;
TQString m_apostropheFormat;
TQString m_valueMode;
TQString m_profileType;
TQString m_openingBalanceText;
TQString m_voidMark;
TQString m_accountDelimiter;
TQString m_filterScriptImport;
TQString m_filterScriptExport;
TQString m_filterFileType; /*< The kind of input files the filter will expect, e.g. "*.qif" */
TQMap<TQChar, TQChar> m_decimal;
TQMap<TQChar, TQChar> m_thousands;
bool m_attemptMatchDuplicates;
};
#endif