1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
/***************************************************************************
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 MYMONEYQIFPROFILE_H
#define MYMONEYQIFPROFILE_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
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
|