summaryrefslogtreecommitdiff
authordrw <drw>2005-03-10 21:39:47 (UTC)
committer drw <drw>2005-03-10 21:39:47 (UTC)
commit5a276878608d30e2cdc2eb35ad7c45ed0c348f58 (patch) (unidiff)
tree93ff7eac4949b70ae25f60f4586e7490425134db
parentd798f87314392033ad1e18d01927c622aa4d9b02 (diff)
downloadopie-5a276878608d30e2cdc2eb35ad7c45ed0c348f58.zip
opie-5a276878608d30e2cdc2eb35ad7c45ed0c348f58.tar.gz
opie-5a276878608d30e2cdc2eb35ad7c45ed0c348f58.tar.bz2
Fix for bug #1604 - Checkbook crashes on startup
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/checkbook/cbinfo.cpp2
-rw-r--r--noncore/apps/checkbook/traninfo.cpp24
-rw-r--r--noncore/apps/checkbook/traninfo.h2
3 files changed, 14 insertions, 14 deletions
diff --git a/noncore/apps/checkbook/cbinfo.cpp b/noncore/apps/checkbook/cbinfo.cpp
index 36dde04..6e3afa7 100644
--- a/noncore/apps/checkbook/cbinfo.cpp
+++ b/noncore/apps/checkbook/cbinfo.cpp
@@ -157,49 +157,49 @@ void CBInfo::removeTransaction( TranInfo *tran )
157 tl->removeRef( tran ); 157 tl->removeRef( tran );
158 delete tran; 158 delete tran;
159 calcBalance(); 159 calcBalance();
160} 160}
161 161
162 162
163// --- loadTransactions ------------------------------------------------------- 163// --- loadTransactions -------------------------------------------------------
164// Reads the transactions. Either the old way 1-n or as linked list. 164// Reads the transactions. Either the old way 1-n or as linked list.
165void CBInfo::loadTransactions() 165void CBInfo::loadTransactions()
166{ 166{
167 TranInfo *tran; 167 TranInfo *tran;
168 QString trandesc = ""; 168 QString trandesc = "";
169 169
170 tl = new TranInfoList(); 170 tl = new TranInfoList();
171 171
172 Config config( fn, Config::File ); 172 Config config( fn, Config::File );
173 int i=_first; 173 int i=_first;
174 bool bOld=false; 174 bool bOld=false;
175 if( i==-1 ) { 175 if( i==-1 ) {
176 i=1; 176 i=1;
177 bOld=true; 177 bOld=true;
178 } 178 }
179 while( i>=0 ) { 179 while( i>=0 ) {
180 _last=i; 180 _last=i;
181 tran=new TranInfo(config, i); 181 tran=new TranInfo(&config, i);
182 trandesc = tran->desc(); 182 trandesc = tran->desc();
183 if( trandesc==QString::null ) { 183 if( trandesc==QString::null ) {
184 delete tran; 184 delete tran;
185 break; 185 break;
186 } 186 }
187 tl->append(tran); 187 tl->append(tran);
188 i= bOld ? i+1 : tran->getNext(); 188 i= bOld ? i+1 : tran->getNext();
189 } 189 }
190 190
191 calcBalance(); 191 calcBalance();
192} 192}
193 193
194 194
195// --- calcBalance ------------------------------------------------------------ 195// --- calcBalance ------------------------------------------------------------
196void CBInfo::calcBalance() 196void CBInfo::calcBalance()
197{ 197{
198 float amount; 198 float amount;
199 199
200 b = sb; 200 b = sb;
201 201
202 for ( TranInfo *tran = tl->first(); tran; tran = tl->next() ) 202 for ( TranInfo *tran = tl->first(); tran; tran = tl->next() )
203 { 203 {
204 b -= tran->fee(); 204 b -= tran->fee();
205 amount = tran->amount(); 205 amount = tran->amount();
diff --git a/noncore/apps/checkbook/traninfo.cpp b/noncore/apps/checkbook/traninfo.cpp
index 4833af9..7bd2004 100644
--- a/noncore/apps/checkbook/traninfo.cpp
+++ b/noncore/apps/checkbook/traninfo.cpp
@@ -29,119 +29,119 @@
29#include "traninfo.h" 29#include "traninfo.h"
30 30
31#include <qpe/config.h> 31#include <qpe/config.h>
32#include <qpe/timestring.h> 32#include <qpe/timestring.h>
33 33
34QString tempstr; 34QString tempstr;
35 35
36TranInfo::TranInfo( int id, const QString &desc, const QDate &date, bool withdrawal, 36TranInfo::TranInfo( int id, const QString &desc, const QDate &date, bool withdrawal,
37 const QString &type, const QString &category, float amount, 37 const QString &type, const QString &category, float amount,
38 float fee, const QString &number, const QString &notes, int next ) 38 float fee, const QString &number, const QString &notes, int next )
39{ 39{
40 i = id; 40 i = id;
41 d = desc; 41 d = desc;
42 td = date; 42 td = date;
43 w = withdrawal; 43 w = withdrawal;
44 t = type; 44 t = type;
45 c = category; 45 c = category;
46 a = amount; 46 a = amount;
47 f = fee; 47 f = fee;
48 cn = number; 48 cn = number;
49 n = notes; 49 n = notes;
50 _next=next; 50 _next=next;
51} 51}
52 52
53TranInfo::TranInfo( Config config, int entry ) 53TranInfo::TranInfo( Config *config, int entry )
54{ 54{
55 config.setGroup( QString::number( entry ) ); 55 config->setGroup( QString::number( entry ) );
56 QString desc = config.readEntry( "Description", "Not Found" ); 56 QString desc = config->readEntry( "Description", "Not Found" );
57 if ( desc != "Not Found" ) 57 if ( desc != "Not Found" )
58 { 58 {
59 // ID 59 // ID
60 i = entry; 60 i = entry;
61 61
62 // Description 62 // Description
63 d = desc; 63 d = desc;
64 64
65 // Transaction date 65 // Transaction date
66 int yr, mn, dy; 66 int yr, mn, dy;
67 QString datestr = config.readEntry( "Date", "" ); 67 QString datestr = config->readEntry( "Date", "" );
68 int begin, end; 68 int begin, end;
69 begin = datestr.find( '/' ); 69 begin = datestr.find( '/' );
70 mn = datestr.left( begin ).toInt(); 70 mn = datestr.left( begin ).toInt();
71 end = datestr.find( '/', ++begin ); 71 end = datestr.find( '/', ++begin );
72 dy = datestr.mid( begin, end - begin ).toInt(); 72 dy = datestr.mid( begin, end - begin ).toInt();
73 yr = datestr.right( datestr.length() - end - 1).toInt(); 73 yr = datestr.right( datestr.length() - end - 1).toInt();
74 td.setYMD( yr, mn, dy ); 74 td.setYMD( yr, mn, dy );
75 75
76 // Deposit/withdrawal indicator ( withdrawal == TRUE ) 76 // Deposit/withdrawal indicator ( withdrawal == TRUE )
77 w = ( config.readEntry( "Payment", "false" ) == "true" ); 77 w = ( config->readEntry( "Payment", "false" ) == "true" );
78 78
79 // Type 79 // Type
80 QString type = config.readEntry( "Type", "0" ); 80 QString type = config->readEntry( "Type", "0" );
81 if ( w ) 81 if ( w )
82 { // Withdrawal types 82 { // Withdrawal types
83 if( type == "0" ) 83 if( type == "0" )
84 t = "Debit Charge"; 84 t = "Debit Charge";
85 else if( type == "1" ) 85 else if( type == "1" )
86 t = "Written Check"; 86 t = "Written Check";
87 else if( type == "2" ) 87 else if( type == "2" )
88 t = "Transfer"; 88 t = "Transfer";
89 else if( type == "3" ) 89 else if( type == "3" )
90 t = "Credit Card"; 90 t = "Credit Card";
91 } 91 }
92 else 92 else
93 { 93 {
94 if( type == "0" ) 94 if( type == "0" )
95 t = "Written Check"; 95 t = "Written Check";
96 else if( type == "1" ) 96 else if( type == "1" )
97 t = "Automatic Payment"; 97 t = "Automatic Payment";
98 else if( type == "2" ) 98 else if( type == "2" )
99 t = "Transfer"; 99 t = "Transfer";
100 else if( type == "3" ) 100 else if( type == "3" )
101 t = "Cash"; 101 t = "Cash";
102 } 102 }
103 103
104 // Category 104 // Category
105 c = config.readEntry( "Category", "" ); 105 c = config->readEntry( "Category", "" );
106 106
107 // Transaction amount 107 // Transaction amount
108 QString stramount = config.readEntry( "Amount", "0.00" ); 108 QString stramount = config->readEntry( "Amount", "0.00" );
109 bool ok; 109 bool ok;
110 a = stramount.toFloat( &ok ); 110 a = stramount.toFloat( &ok );
111 111
112 // Transaction fee 112 // Transaction fee
113 stramount = config.readEntry( "TransactionFee", "0.00" ); 113 stramount = config->readEntry( "TransactionFee", "0.00" );
114 f = stramount.toFloat( &ok ); 114 f = stramount.toFloat( &ok );
115 115
116 // Transaction number 116 // Transaction number
117 cn = config.readEntry( "CheckNumber", "" ); 117 cn = config->readEntry( "CheckNumber", "" );
118 118
119 // Notes 119 // Notes
120 n = config.readEntry( "Comments", "" ); 120 n = config->readEntry( "Comments", "" );
121 121
122 // next 122 // next
123 _next = config.readNumEntry("Next", -1); 123 _next = config->readNumEntry("Next", -1);
124 } 124 }
125} 125}
126 126
127// --- datestr ---------------------------------------------------------------- 127// --- datestr ----------------------------------------------------------------
128const QString &TranInfo::datestr(bool bDisplayDate) 128const QString &TranInfo::datestr(bool bDisplayDate)
129{ 129{
130 if( bDisplayDate ) { 130 if( bDisplayDate ) {
131 tempstr=TimeString::numberDateString( td ); 131 tempstr=TimeString::numberDateString( td );
132 } else { 132 } else {
133 tempstr.sprintf( "%04d-%02d-%02d", td.year() ,td.month(), td.day() ); 133 tempstr.sprintf( "%04d-%02d-%02d", td.year() ,td.month(), td.day() );
134 } 134 }
135 return(tempstr); 135 return(tempstr);
136} 136}
137 137
138 138
139// --- getIdStr --------------------------------------------------------------- 139// --- getIdStr ---------------------------------------------------------------
140const QString &TranInfo::getIdStr() 140const QString &TranInfo::getIdStr()
141{ 141{
142 tempstr.sprintf("%04d", i); 142 tempstr.sprintf("%04d", i);
143 return( tempstr ); 143 return( tempstr );
144} 144}
145 145
146// --- write ------------------------------------------------------------------ 146// --- write ------------------------------------------------------------------
147void TranInfo::write( Config *config ) 147void TranInfo::write( Config *config )
diff --git a/noncore/apps/checkbook/traninfo.h b/noncore/apps/checkbook/traninfo.h
index cbe0238..2ecb60d 100644
--- a/noncore/apps/checkbook/traninfo.h
+++ b/noncore/apps/checkbook/traninfo.h
@@ -20,49 +20,49 @@
20 :     =  ...= . :.=- You should have received a copy of the GNU 20 :     =  ...= . :.=- You should have received a copy of the GNU
21 -.   .:....=;==+<; General Public License along with this file; 21 -.   .:....=;==+<; General Public License along with this file;
22  -_. . .   )=.  = see the file COPYING. If not, write to the 22  -_. . .   )=.  = see the file COPYING. If not, write to the
23    --        :-=` Free Software Foundation, Inc., 23    --        :-=` Free Software Foundation, Inc.,
24 59 Temple Place - Suite 330, 24 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#ifndef TRANINFO_H 29#ifndef TRANINFO_H
30#define TRANINFO_H 30#define TRANINFO_H
31 31
32#include <qdatetime.h> 32#include <qdatetime.h>
33#include <qlist.h> 33#include <qlist.h>
34 34
35class Config; 35class Config;
36 36
37class TranInfo 37class TranInfo
38{ 38{
39 public: 39 public:
40 TranInfo( int = 0, const QString & = 0x0, const QDate & = QDate::currentDate(), 40 TranInfo( int = 0, const QString & = 0x0, const QDate & = QDate::currentDate(),
41 bool = TRUE, const QString & = 0x0, const QString & = 0x0, 41 bool = TRUE, const QString & = 0x0, const QString & = 0x0,
42 float = 0.0, float = 0.0, 42 float = 0.0, float = 0.0,
43 const QString & = 0x0, const QString & = 0x0, int =-1 ); 43 const QString & = 0x0, const QString & = 0x0, int =-1 );
44 TranInfo( Config, int ); 44 TranInfo( Config *, int );
45 45
46 // getters 46 // getters
47 int id() const { return i; } 47 int id() const { return i; }
48 const QString &getIdStr(); 48 const QString &getIdStr();
49 49
50 const QString &desc() const { return d; } 50 const QString &desc() const { return d; }
51 const QDate &date() const { return td; } 51 const QDate &date() const { return td; }
52 const QString &datestr(bool = false); 52 const QString &datestr(bool = false);
53 bool withdrawal()const { return w; } 53 bool withdrawal()const { return w; }
54 const QString &type() const { return t; } 54 const QString &type() const { return t; }
55 const QString &category()const { return c; } 55 const QString &category()const { return c; }
56 float amount() const { return a; } 56 float amount() const { return a; }
57 float fee() const { return f; } 57 float fee() const { return f; }
58 const QString &number()const { return cn; } 58 const QString &number()const { return cn; }
59 const QString &notes() const { return n; } 59 const QString &notes() const { return n; }
60 int getNext() { return(_next); } 60 int getNext() { return(_next); }
61 61
62 // setters 62 // setters
63 void setDesc( const QString &desc ) { d = desc; } 63 void setDesc( const QString &desc ) { d = desc; }
64 void setDate( const QDate &date ) { td = date; } 64 void setDate( const QDate &date ) { td = date; }
65 void setWithdrawal( bool withdrawal ) { w = withdrawal; } 65 void setWithdrawal( bool withdrawal ) { w = withdrawal; }
66 void setType( const QString &type ) { t = type; } 66 void setType( const QString &type ) { t = type; }
67 void setCategory( const QString &cat ){ c = cat; } 67 void setCategory( const QString &cat ){ c = cat; }
68 void setAmount( float amount ) { a = amount; } 68 void setAmount( float amount ) { a = amount; }