summaryrefslogtreecommitdiff
authorallenforsythe <allenforsythe>2003-05-16 20:08:38 (UTC)
committer allenforsythe <allenforsythe>2003-05-16 20:08:38 (UTC)
commite6ff2dbd2d128c3cf873e23f4df8006759b47079 (patch) (unidiff)
treebb3c996b76c8937d871f642f0e32032848d32396
parent87051a7ba4834aed152bc09aad7f4935c9729ccb (diff)
downloadopie-e6ff2dbd2d128c3cf873e23f4df8006759b47079.zip
opie-e6ff2dbd2d128c3cf873e23f4df8006759b47079.tar.gz
opie-e6ff2dbd2d128c3cf873e23f4df8006759b47079.tar.bz2
Working on time frame for displaying cleared transactions. Not yet working.
Diffstat (more/less context) (ignore whitespace changes)
-rwxr-xr-xnoncore/apps/qashmoney/install/CONTROL/opie-qashmoney.control2
-rwxr-xr-xnoncore/apps/qashmoney/preferencedialogs.cpp13
-rwxr-xr-xnoncore/apps/qashmoney/preferences.cpp2
-rwxr-xr-xnoncore/apps/qashmoney/qashmoney.cpp42
-rwxr-xr-xnoncore/apps/qashmoney/qashmoney.h3
-rwxr-xr-xnoncore/apps/qashmoney/qmaccounts.dbbin4096 -> 6144 bytes
-rwxr-xr-xnoncore/apps/qashmoney/qmbudgets.dbbin3072 -> 4096 bytes
-rwxr-xr-xnoncore/apps/qashmoney/qmmemory.dbbin4096 -> 10240 bytes
-rwxr-xr-xnoncore/apps/qashmoney/qmpreferences.dbbin4096 -> 4096 bytes
-rwxr-xr-xnoncore/apps/qashmoney/qmtransactions.dbbin4096 -> 24576 bytes
-rwxr-xr-xnoncore/apps/qashmoney/qmtransfers.dbbin3072 -> 3072 bytes
-rwxr-xr-xnoncore/apps/qashmoney/transaction.cpp20
-rwxr-xr-xnoncore/apps/qashmoney/transaction.h3
-rwxr-xr-xnoncore/apps/qashmoney/transactiondisplay.cpp49
-rwxr-xr-xnoncore/apps/qashmoney/transactiondisplay.h3
15 files changed, 106 insertions, 31 deletions
diff --git a/noncore/apps/qashmoney/install/CONTROL/opie-qashmoney.control b/noncore/apps/qashmoney/install/CONTROL/opie-qashmoney.control
index ffd11db..b00e3b1 100755
--- a/noncore/apps/qashmoney/install/CONTROL/opie-qashmoney.control
+++ b/noncore/apps/qashmoney/install/CONTROL/opie-qashmoney.control
@@ -1,7 +1,7 @@
1Package: qashmoney 1Package: qashmoney
2Priority: optional 2Priority: optional
3Version: 0.74 3Version: 0.75
4Architecture: arm 4Architecture: arm
5Maintainer: Allen Forsythe qashmoneyman@attbi.com 5Maintainer: Allen Forsythe qashmoneyman@attbi.com
6Section: Applications 6Section: Applications
7Description: QashMoney provides an intuitive and fast way to keep track of your accounts and budgets. 7Description: QashMoney provides an intuitive and fast way to keep track of your accounts and budgets.
diff --git a/noncore/apps/qashmoney/preferencedialogs.cpp b/noncore/apps/qashmoney/preferencedialogs.cpp
index 00d52c6..d7c66d3 100755
--- a/noncore/apps/qashmoney/preferencedialogs.cpp
+++ b/noncore/apps/qashmoney/preferencedialogs.cpp
@@ -55,80 +55,81 @@ void DatePreferences::changeDateFormat ( int index )
55 } 55 }
56 56
57void DatePreferences::changeDateSeparator ( int index ) 57void DatePreferences::changeDateSeparator ( int index )
58 { 58 {
59 index ++; 59 index ++;
60 preferences->changePreference ( 2, index ); 60 preferences->changePreference ( 2, index );
61 } 61 }
62 62
63void DatePreferences::setDefaultDatePreferences () 63void DatePreferences::setDefaultDatePreferences ()
64 { 64 {
65 preferences->setDefaultDatePreferences (); 65 preferences->setDefaultDatePreferences ();
66 dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); 66 dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 );
67 dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); 67 dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 );
68 } 68 }
69 69
70// START TRANSACTION PREFERENCES 70// START TRANSACTION PREFERENCES
71 71
72TransactionPreferences::TransactionPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) 72TransactionPreferences::TransactionPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE )
73{ 73{
74 setCaption( tr ( "Transaction" ) ); 74 setCaption( tr ( "Transaction" ) );
75 75
76 showclearedtransactions = new QCheckBox ( this ); 76 showclearedtransactions = new QCheckBox ( this );
77 showclearedtransactions->setText ( "Show Cleared Transactions" ); 77 showclearedtransactions->setText ( "Show Cleared Transactions" );
78 78
79 excludetransfers = new QCheckBox ( this );
80 excludetransfers->setText ( "Include Transfers In Limit View" );
81
82 limittransactionsbox = new QHBox ( this ); 79 limittransactionsbox = new QHBox ( this );
83 limittransactionsbox->setSpacing ( 2 ); 80 limittransactionsbox->setSpacing ( 2 );
84 limittransactionslabel = new QLabel ( "Limit All Transactions To", limittransactionsbox ); 81 limittransactionslabel = new QLabel ( "Show ", limittransactionsbox );
85 limittransactions = new QComboBox ( limittransactionsbox ); 82 limittransactions = new QComboBox ( limittransactionsbox );
83 QLabel *limittransactionslabel2 = new QLabel ( "of cleared transactions. ", limittransactionsbox );
86 limittransactions->insertItem ( "14 days" ); 84 limittransactions->insertItem ( "14 days" );
87 limittransactions->insertItem ( "30 days" ); 85 limittransactions->insertItem ( "30 days" );
88 limittransactions->insertItem ( "60 days" );
89 limittransactions->insertItem ( "90 days" ); 86 limittransactions->insertItem ( "90 days" );
90 limittransactions->insertItem ( "180 days" ); 87 limittransactions->insertItem ( "180 days" );
91 limittransactions->insertItem ( "365 days" ); 88 limittransactions->insertItem ( "365 days" );
92 limittransactions->insertItem ( "All" ); 89 limittransactions->insertItem ( "All" );
90 limittransactions->setCurrentItem ( preferences->getPreference ( 7 ) );
91
92 excludetransfers = new QCheckBox ( this );
93 excludetransfers->setText ( "Include Transfers In Limit View" );
93 94
94 if ( preferences->getPreference ( 3 ) == 1 ) 95 if ( preferences->getPreference ( 3 ) == 1 )
95 showclearedtransactions->setChecked ( TRUE ); 96 showclearedtransactions->setChecked ( TRUE );
96 else 97 else
97 showclearedtransactions->setChecked ( FALSE ); 98 showclearedtransactions->setChecked ( FALSE );
98 99
99 if ( preferences->getPreference ( 6 ) == 1 ) 100 if ( preferences->getPreference ( 6 ) == 1 )
100 excludetransfers->setChecked ( TRUE ); 101 excludetransfers->setChecked ( TRUE );
101 else 102 else
102 excludetransfers->setChecked ( FALSE ); 103 excludetransfers->setChecked ( FALSE );
103 104
104 defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); 105 defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this );
105 connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultTransactionPreferences () ) ); 106 connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultTransactionPreferences () ) );
106 107
107 layout = new QVBoxLayout ( this, 2, 2 ); 108 layout = new QVBoxLayout ( this, 2, 2 );
108 layout->addWidget ( showclearedtransactions ); 109 layout->addWidget ( showclearedtransactions );
109 layout->addWidget ( excludetransfers );
110 layout->addWidget ( limittransactionsbox ); 110 layout->addWidget ( limittransactionsbox );
111 layout->addWidget ( excludetransfers );
111 layout->insertSpacing ( 3, 5 ); 112 layout->insertSpacing ( 3, 5 );
112 layout->addWidget ( defaults ); 113 layout->addWidget ( defaults );
113 114
114 connect ( showclearedtransactions, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeShowClearedPreference ( bool ) ) ); 115 connect ( showclearedtransactions, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeShowClearedPreference ( bool ) ) );
115 connect ( excludetransfers, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeExcludeTranfersPreference ( bool ) ) ); 116 connect ( excludetransfers, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeExcludeTranfersPreference ( bool ) ) );
116 connect ( limittransactions, SIGNAL ( activated ( int ) ), this, SLOT ( changeLimitTransactionsPreference ( int ) ) ); 117 connect ( limittransactions, SIGNAL ( activated ( int ) ), this, SLOT ( changeLimitTransactionsPreference ( int ) ) );
117} 118}
118 119
119TransactionPreferences::~TransactionPreferences () 120TransactionPreferences::~TransactionPreferences ()
120 { 121 {
121 } 122 }
122 123
123void TransactionPreferences::changeLimitTransactionsPreference ( int pref ) 124void TransactionPreferences::changeLimitTransactionsPreference ( int pref )
124 { 125 {
125 preferences->changePreference ( 7, pref ); 126 preferences->changePreference ( 7, pref );
126 } 127 }
127 128
128void TransactionPreferences::changeShowClearedPreference ( bool state ) 129void TransactionPreferences::changeShowClearedPreference ( bool state )
129 { 130 {
130 if ( state == TRUE ) 131 if ( state == TRUE )
131 preferences->changePreference ( 3, 1 ); 132 preferences->changePreference ( 3, 1 );
132 else 133 else
133 preferences->changePreference ( 3, 0 ); 134 preferences->changePreference ( 3, 0 );
134 } 135 }
diff --git a/noncore/apps/qashmoney/preferences.cpp b/noncore/apps/qashmoney/preferences.cpp
index 819d5cf..9bf64dd 100755
--- a/noncore/apps/qashmoney/preferences.cpp
+++ b/noncore/apps/qashmoney/preferences.cpp
@@ -39,49 +39,49 @@ void Preferences::addPreferences ()
39 // showclearedtransactions preference 0 = no 1 = yes 39 // showclearedtransactions preference 0 = no 1 = yes
40 rows = 0; 40 rows = 0;
41 sqlite_get_table ( db, "select preference from preferences where id = 3;", &results, &rows, &columns, 0 ); 41 sqlite_get_table ( db, "select preference from preferences where id = 3;", &results, &rows, &columns, 0 );
42 if ( rows == 0 ) 42 if ( rows == 0 )
43 sqlite_exec ( db, "insert into preferences values ( 0, 'showclearedtransactions', 0, 0, 0, NULL );", 0, 0, 0 ); 43 sqlite_exec ( db, "insert into preferences values ( 0, 'showclearedtransactions', 0, 0, 0, NULL );", 0, 0, 0 );
44 44
45 // enable currency support preference 0 = no 1 = yes 45 // enable currency support preference 0 = no 1 = yes
46 rows = 0; 46 rows = 0;
47 sqlite_get_table ( db, "select preference from preferences where id = 4;", &results, &rows, &columns, 0 ); 47 sqlite_get_table ( db, "select preference from preferences where id = 4;", &results, &rows, &columns, 0 );
48 if ( rows == 0 ) 48 if ( rows == 0 )
49 sqlite_exec ( db, "insert into preferences values ( 0, 'enablecurrencysupport', 0, 0, 0, NULL );", 0, 0, 0 ); 49 sqlite_exec ( db, "insert into preferences values ( 0, 'enablecurrencysupport', 0, 0, 0, NULL );", 0, 0, 0 );
50 50
51 // one touch account viewing preference 0 = no 1 = yes 51 // one touch account viewing preference 0 = no 1 = yes
52 rows = 0; 52 rows = 0;
53 sqlite_get_table ( db, "select preference from preferences where id = 5;", &results, &rows, &columns, 0 ); 53 sqlite_get_table ( db, "select preference from preferences where id = 5;", &results, &rows, &columns, 0 );
54 if ( rows == 0 ) 54 if ( rows == 0 )
55 sqlite_exec ( db, "insert into preferences values ( 0, 'onetouchviewing', 0, 0, 0, NULL );", 0, 0, 0 ); 55 sqlite_exec ( db, "insert into preferences values ( 0, 'onetouchviewing', 0, 0, 0, NULL );", 0, 0, 0 );
56 56
57 // exclude transfers from limit view 0 = no 1 = yes 57 // exclude transfers from limit view 0 = no 1 = yes
58 rows = 0; 58 rows = 0;
59 sqlite_get_table ( db, "select preference from preferences where id = 6;", &results, &rows, &columns, 0 ); 59 sqlite_get_table ( db, "select preference from preferences where id = 6;", &results, &rows, &columns, 0 );
60 if ( rows == 0 ) 60 if ( rows == 0 )
61 sqlite_exec ( db, "insert into preferences values ( 0, 'excludetransfersfromlimit', 0, 0, 0, NULL );", 0, 0, 0 ); 61 sqlite_exec ( db, "insert into preferences values ( 0, 'excludetransfersfromlimit', 0, 0, 0, NULL );", 0, 0, 0 );
62 62
63 // limit number of transactions to 0 = 14 days 1 = 30 days, 2 = 60 days, 3 = 90 days, 4 = 180 days, 5 = 365 days, 6 = all 63 // limit number of transactions to 0 = 14 days 1 = 30 days, 2 = 90 days, 3 = 180 days, 4 = 365 days 5 = all
64 rows = 0; 64 rows = 0;
65 sqlite_get_table ( db, "select preference from preferences where id = 7;", &results, &rows, &columns, 0 ); 65 sqlite_get_table ( db, "select preference from preferences where id = 7;", &results, &rows, &columns, 0 );
66 if ( rows == 0 ) 66 if ( rows == 0 )
67 sqlite_exec ( db, "insert into preferences values ( 0, 'limittransactions', 0, 0, 0, NULL );", 0, 0, 0 ); 67 sqlite_exec ( db, "insert into preferences values ( 0, 'limittransactions', 0, 0, 0, NULL );", 0, 0, 0 );
68 } 68 }
69 } 69 }
70 70
71void Preferences::initializeColumnPreferences () 71void Preferences::initializeColumnPreferences ()
72 { 72 {
73 int rows = 0; 73 int rows = 0;
74 int columns = 0; 74 int columns = 0;
75 char **results; 75 char **results;
76 76
77 // initialize accountname column width 77 // initialize accountname column width
78 sqlite_get_table ( db, "select width from columns where id = 1;", &results, &rows, &columns, 0 ); 78 sqlite_get_table ( db, "select width from columns where id = 1;", &results, &rows, &columns, 0 );
79 if ( rows == 0 ) 79 if ( rows == 0 )
80 sqlite_exec ( db, "insert into columns values ( 'accountname', 90, 0, 0, 0, NULL );", 0, 0, 0 ); 80 sqlite_exec ( db, "insert into columns values ( 'accountname', 90, 0, 0, 0, NULL );", 0, 0, 0 );
81 81
82 // initialize accountbalance column width 82 // initialize accountbalance column width
83 sqlite_get_table ( db, "select width from columns where id = 2;", &results, &rows, &columns, 0 ); 83 sqlite_get_table ( db, "select width from columns where id = 2;", &results, &rows, &columns, 0 );
84 if ( rows == 0 ) 84 if ( rows == 0 )
85 sqlite_exec ( db, "insert into columns values ( 'accountbalance', 90, 0, 0, 0, NULL );", 0, 0, 0 ); 85 sqlite_exec ( db, "insert into columns values ( 'accountbalance', 90, 0, 0, 0, NULL );", 0, 0, 0 );
86 86
87 // initialize transactiondate column width 87 // initialize transactiondate column width
diff --git a/noncore/apps/qashmoney/qashmoney.cpp b/noncore/apps/qashmoney/qashmoney.cpp
index 1ea358c..83eea01 100755
--- a/noncore/apps/qashmoney/qashmoney.cpp
+++ b/noncore/apps/qashmoney/qashmoney.cpp
@@ -122,54 +122,56 @@ void QashMoney::changeTabDisplay ()
122 transactiondisplay->listview->addColumn ( "Transaction", 0 ); 122 transactiondisplay->listview->addColumn ( "Transaction", 0 );
123 transactiondisplay->listview->addColumn ( "Amt", 0); 123 transactiondisplay->listview->addColumn ( "Amt", 0);
124 transactiondisplay->listview->setColumnAlignment ( 2, Qt::AlignRight ); 124 transactiondisplay->listview->setColumnAlignment ( 2, Qt::AlignRight );
125 transactiondisplay->listview->addColumn ( "", 0 ); 125 transactiondisplay->listview->addColumn ( "", 0 );
126 126
127 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) // we selected a parent with children 127 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) // we selected a parent with children
128 { 128 {
129 // add an extra column for the account name for eac child transaction 129 // add an extra column for the account name for eac child transaction
130 transactiondisplay->listview->addColumn ( "Acct", 0 ); 130 transactiondisplay->listview->addColumn ( "Acct", 0 );
131 children = TRUE; 131 children = TRUE;
132 132
133 // hide the new transaction button 133 // hide the new transaction button
134 transactiondisplay->newtransaction->setEnabled ( FALSE ); 134 transactiondisplay->newtransaction->setEnabled ( FALSE );
135 } 135 }
136 else //we selected a parent without children or a child 136 else //we selected a parent without children or a child
137 transactiondisplay->newtransaction->setEnabled ( TRUE ); 137 transactiondisplay->newtransaction->setEnabled ( TRUE );
138 138
139 // disable the transactionid column so it can't be red 139 // disable the transactionid column so it can't be red
140 transactiondisplay->listview->header()->setResizeEnabled ( FALSE, 3 ); 140 transactiondisplay->listview->header()->setResizeEnabled ( FALSE, 3 );
141 141
142 // set the accountid and children variables 142 // set the accountid and children variables
143 transactiondisplay->setChildren ( children ); 143 transactiondisplay->setChildren ( children );
144 transactiondisplay->setAccountID ( accountid ); 144 transactiondisplay->setAccountID ( accountid );
145 145
146 setTransactionDisplayDate ();
147
146 // display transactions 148 // display transactions
147 transactiondisplay->listview->clear(); 149 transactiondisplay->listview->clear();
148 QString displaytext = "%"; 150 QString displaytext = "%";
149 displaytext.prepend ( transactiondisplay->limitbox->text() ); 151 displaytext.prepend ( transactiondisplay->limitbox->text() );
150 if ( transaction->getNumberOfTransactions() > 0 ) 152 if ( transaction->getNumberOfTransactions() > 0 )
151 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext ); 153 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate );
152 154
153 // display transfers 155 // display transfers
154 transfer->displayTransfers ( transactiondisplay->listview, accountid, children ); 156 transfer->displayTransfers ( transactiondisplay->listview, accountid, children );
155 157
156 // open a new preferences object and resize the transaction display columns 158 // open a new preferences object and resize the transaction display columns
157 // each column will have a different size based on whether we are looking at a child 159 // each column will have a different size based on whether we are looking at a child
158 // account or children through a parent 160 // account or children through a parent
159 if ( parentaccountid != -1 || accountdisplay->listview->selectedItem()->childCount() == 0 ) // a parent with no children or a child - three columns 161 if ( parentaccountid != -1 || accountdisplay->listview->selectedItem()->childCount() == 0 ) // a parent with no children or a child - three columns
160 { 162 {
161 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 3 ) ); // normal transaction date width 163 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 3 ) ); // normal transaction date width
162 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual ); 164 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual );
163 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 4 ) ); // normal transaction name width 165 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 4 ) ); // normal transaction name width
164 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual ); 166 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual );
165 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 5 ) ); // normal transaction amount width 167 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 5 ) ); // normal transaction amount width
166 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual ); 168 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual );
167 } 169 }
168 else 170 else
169 { 171 {
170 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 6 ) ); // extended transaction date width 172 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 6 ) ); // extended transaction date width
171 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual ); 173 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual );
172 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 7 ) ); // extended transaction name width 174 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 7 ) ); // extended transaction name width
173 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual ); 175 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual );
174 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 8 ) ); // extended transaction amount width 176 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 8 ) ); // extended transaction amount width
175 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual ); 177 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual );
@@ -233,86 +235,90 @@ void QashMoney::setTransactionTab ()
233 } 235 }
234 236
235void QashMoney::displayDatePreferencesDialog () 237void QashMoney::displayDatePreferencesDialog ()
236 { 238 {
237 // this shows a dialog to set preferences for formatting the date 239 // this shows a dialog to set preferences for formatting the date
238 DatePreferences *pd = new DatePreferences ( this ); 240 DatePreferences *pd = new DatePreferences ( this );
239 pd->exec (); 241 pd->exec ();
240 if ( transactiondisplay->isVisible() ) 242 if ( transactiondisplay->isVisible() )
241 { 243 {
242 // set the account id 244 // set the account id
243 int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt(); 245 int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt();
244 246
245 // set children so we can let displayTransfers know if there are children for the selected account 247 // set children so we can let displayTransfers know if there are children for the selected account
246 bool children; 248 bool children;
247 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) 249 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 )
248 children = TRUE; 250 children = TRUE;
249 else 251 else
250 children = FALSE; 252 children = FALSE;
251 253
252 // redisplay transactions if they are visible incorporating 254 // redisplay transactions if they are visible incorporating
253 // any changes to the date format 255 // any changes to the date format
254 transactiondisplay->listview->clear(); 256 transactiondisplay->listview->clear();
255 QString displaytext = "%"; 257 QString displaytext = "%";
256 displaytext.prepend ( transactiondisplay->limitbox->text() ); 258 displaytext.prepend ( transactiondisplay->limitbox->text() );
259
260 setTransactionDisplayDate();
257 if ( transaction->getNumberOfTransactions() > 0 ) 261 if ( transaction->getNumberOfTransactions() > 0 )
258 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext ); 262 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate );
259 263
260 if ( transfer->getNumberOfTransfers() != 0 ) 264 if ( transfer->getNumberOfTransfers() != 0 )
261 transfer->displayTransfers ( transactiondisplay->listview, accountid, children ); 265 transfer->displayTransfers ( transactiondisplay->listview, accountid, children );
262 } 266 }
263 else if ( accountdisplay->isVisible() ) 267 else if ( accountdisplay->isVisible() )
264 { 268 {
265 accountdisplay->listview->clearSelection(); 269 accountdisplay->listview->clearSelection();
266 maintabs->setTabEnabled ( tab_2, FALSE ); 270 maintabs->setTabEnabled ( tab_2, FALSE );
267 } 271 }
268 else 272 else
269 budgetdisplay->updateBudgetInformation(); 273 budgetdisplay->updateBudgetInformation();
270 } 274 }
271 275
272void QashMoney::displayTransactionPreferencesDialog () 276void QashMoney::displayTransactionPreferencesDialog ()
273 { 277 {
274 // display a dialog for setting preferences for transactions 278 // display a dialog for setting preferences for transactions
275 TransactionPreferences *td = new TransactionPreferences ( this ); 279 TransactionPreferences *td = new TransactionPreferences ( this );
276 td->exec (); 280 td->exec ();
277 if ( transactiondisplay->isVisible() ) 281 if ( transactiondisplay->isVisible() )
278 { 282 {
279 // set the account id 283 // set the account id
280 int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt(); 284 int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt();
281 285
282 // set children so we can let displayTransfers know if there are children for the selected account 286 // set children so we can let displayTransfers know if there are children for the selected account
283 bool children; 287 bool children;
284 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) 288 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 )
285 children = TRUE; 289 children = TRUE;
286 else 290 else
287 children = FALSE; 291 children = FALSE;
288 292
289 // redisplay transactions incorporating any transaction preference changes 293 // redisplay transactions incorporating any transaction preference changes
290 transactiondisplay->listview->clear(); 294 transactiondisplay->listview->clear();
291 QString displaytext = "%"; 295 QString displaytext = "%";
292 displaytext.prepend ( transactiondisplay->limitbox->text() ); 296 displaytext.prepend ( transactiondisplay->limitbox->text() );
297
298 setTransactionDisplayDate();
293 if ( transaction->getNumberOfTransactions() > 0 ) 299 if ( transaction->getNumberOfTransactions() > 0 )
294 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext ); 300 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate );
295 301
296 if ( transfer->getNumberOfTransfers() != 0 ) 302 if ( transfer->getNumberOfTransfers() != 0 )
297 transfer->displayTransfers ( transactiondisplay->listview, accountid, children ); 303 transfer->displayTransfers ( transactiondisplay->listview, accountid, children );
298 } 304 }
299 else 305 else
300 { 306 {
301 accountdisplay->listview->clearSelection(); 307 accountdisplay->listview->clearSelection();
302 maintabs->setTabEnabled ( tab_2, FALSE ); 308 maintabs->setTabEnabled ( tab_2, FALSE );
303 } 309 }
304 } 310 }
305 311
306void QashMoney::displayAccountPreferencesDialog () 312void QashMoney::displayAccountPreferencesDialog ()
307 { 313 {
308 // display a dialog for setting preferences for accounts 314 // display a dialog for setting preferences for accounts
309 AccountPreferences *ap = new AccountPreferences ( this ); 315 AccountPreferences *ap = new AccountPreferences ( this );
310 ap->exec (); 316 ap->exec ();
311 317
312 if ( accountdisplay->isVisible() && account->getNumberOfAccounts() != 0 ) 318 if ( accountdisplay->isVisible() && account->getNumberOfAccounts() != 0 )
313 { 319 {
314 accountdisplay->listview->clear(); 320 accountdisplay->listview->clear();
315 account->displayAccounts ( accountdisplay->listview ); 321 account->displayAccounts ( accountdisplay->listview );
316 accountdisplay->listview->clearSelection(); 322 accountdisplay->listview->clearSelection();
317 maintabs->setTabEnabled ( tab_2, FALSE ); 323 maintabs->setTabEnabled ( tab_2, FALSE );
318 } 324 }
@@ -331,26 +337,54 @@ void QashMoney::showTransactions ()
331 maintabs->setCurrentPage ( 1 ); 337 maintabs->setCurrentPage ( 1 );
332 } 338 }
333 339
334void QashMoney::enableOneTouchViewing () 340void QashMoney::enableOneTouchViewing ()
335 { 341 {
336 if ( preferences->getPreference ( 5 ) == 1 ) 342 if ( preferences->getPreference ( 5 ) == 1 )
337 connect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) ); 343 connect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) );
338 else 344 else
339 disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) ); 345 disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) );
340 } 346 }
341 347
342void QashMoney::disableOneTouchViewing () 348void QashMoney::disableOneTouchViewing ()
343 { 349 {
344 disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) ); 350 disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) );
345 } 351 }
346 352
347void QashMoney::toggleOneTouchViewing ( bool state ) 353void QashMoney::toggleOneTouchViewing ( bool state )
348 { 354 {
349 if ( state == TRUE ) 355 if ( state == TRUE )
350 disableOneTouchViewing(); 356 disableOneTouchViewing();
351 else 357 else
352 enableOneTouchViewing(); 358 enableOneTouchViewing();
353 } 359 }
354 360
355 361void QashMoney::setTransactionDisplayDate ()
362 {
363 // determine how many days of transactions to show
364 int limittype = preferences->getPreference ( 7 );
365 if ( limittype != 5 ) // set today's date if we are not showing all transactions
366 {
367 QDate today = QDate::currentDate ();
368 switch ( limittype ) // if we are not showing all transactions
369 {
370 case 0: // viewing two weeks
371 newdate = today.addDays ( -14 );
372 break;
373 case 1: // viewing one month
374 newdate = today.addDays ( -30 );
375 break;
376 case 2: // three months
377 newdate = today.addDays ( -90 );
378 break;
379 case 3: // six months
380 newdate = today.addDays ( -180 );
381 break;
382 case 4: // one year
383 newdate = today.addDays ( -365 );
384 break;
385 }
386 }
387 else
388 newdate = QDate ( 1, 1, 1000 );
389 }
356 390
diff --git a/noncore/apps/qashmoney/qashmoney.h b/noncore/apps/qashmoney/qashmoney.h
index cf0bd42..ec2c7ec 100755
--- a/noncore/apps/qashmoney/qashmoney.h
+++ b/noncore/apps/qashmoney/qashmoney.h
@@ -1,61 +1,64 @@
1#ifndef QASHMONEY_H 1#ifndef QASHMONEY_H
2#define QASHMONEY_H 2#define QASHMONEY_H
3 3
4#include <qpe/qpemenubar.h> 4#include <qpe/qpemenubar.h>
5#include <qpopupmenu.h> 5#include <qpopupmenu.h>
6#include <qlayout.h> 6#include <qlayout.h>
7#include <qtabwidget.h> 7#include <qtabwidget.h>
8#include <qdatetime.h>
8 9
9#include "accountdisplay.h" 10#include "accountdisplay.h"
10#include "transactiondisplay.h" 11#include "transactiondisplay.h"
11#include "budgetdisplay.h" 12#include "budgetdisplay.h"
12#include "account.h" 13#include "account.h"
13#include "preferences.h" 14#include "preferences.h"
14#include "transaction.h" 15#include "transaction.h"
15#include "transfer.h" 16#include "transfer.h"
16#include "memory.h" 17#include "memory.h"
17#include "budget.h" 18#include "budget.h"
18 19
19class QashMoney : public QWidget 20class QashMoney : public QWidget
20 { 21 {
21 Q_OBJECT 22 Q_OBJECT
22 23
23 public: 24 public:
24 QashMoney (); 25 QashMoney ();
25 ~QashMoney(); 26 ~QashMoney();
26 27
27 QTabWidget* maintabs; 28 QTabWidget* maintabs;
28 QWidget* tab; 29 QWidget* tab;
29 QWidget* tab_2; 30 QWidget* tab_2;
30 QWidget* tab_3; 31 QWidget* tab_3;
31 32
32 QPEMenuBar *mainmenu; 33 QPEMenuBar *mainmenu;
33 QPopupMenu *preferencesmenu; 34 QPopupMenu *preferencesmenu;
34 QPopupMenu *utilitiesmenu; 35 QPopupMenu *utilitiesmenu;
35 36
36 public slots: 37 public slots:
37 void displayDatePreferencesDialog (); 38 void displayDatePreferencesDialog ();
38 void displayTransactionPreferencesDialog (); 39 void displayTransactionPreferencesDialog ();
39 void displayAccountPreferencesDialog (); 40 void displayAccountPreferencesDialog ();
40 void displayMemoryDialog (); 41 void displayMemoryDialog ();
41 void setTransactionTab (); 42 void setTransactionTab ();
42 43
43 private slots: 44 private slots:
44 void changeTabDisplay (); 45 void changeTabDisplay ();
45 void showTransactions (); 46 void showTransactions ();
46 void enableOneTouchViewing (); 47 void enableOneTouchViewing ();
47 void disableOneTouchViewing (); 48 void disableOneTouchViewing ();
48 void toggleOneTouchViewing ( bool ); 49 void toggleOneTouchViewing ( bool );
50 void setTransactionDisplayDate ();
49 51
50 private: 52 private:
51 QVBoxLayout *layout; 53 QVBoxLayout *layout;
52 QVBoxLayout *tabslayout; 54 QVBoxLayout *tabslayout;
53 AccountDisplay *accountdisplay; 55 AccountDisplay *accountdisplay;
54 TransactionDisplay *transactiondisplay; 56 TransactionDisplay *transactiondisplay;
55 BudgetDisplay *budgetdisplay; 57 BudgetDisplay *budgetdisplay;
56 int tabheight; 58 int tabheight;
59 QDate newdate;
57 60
58 }; 61 };
59 62
60#endif 63#endif
61 64
diff --git a/noncore/apps/qashmoney/qmaccounts.db b/noncore/apps/qashmoney/qmaccounts.db
index 449bcab..76db78b 100755
--- a/noncore/apps/qashmoney/qmaccounts.db
+++ b/noncore/apps/qashmoney/qmaccounts.db
Binary files differ
diff --git a/noncore/apps/qashmoney/qmbudgets.db b/noncore/apps/qashmoney/qmbudgets.db
index d798f0c..ef75719 100755
--- a/noncore/apps/qashmoney/qmbudgets.db
+++ b/noncore/apps/qashmoney/qmbudgets.db
Binary files differ
diff --git a/noncore/apps/qashmoney/qmmemory.db b/noncore/apps/qashmoney/qmmemory.db
index 5c23122..c6b7920 100755
--- a/noncore/apps/qashmoney/qmmemory.db
+++ b/noncore/apps/qashmoney/qmmemory.db
Binary files differ
diff --git a/noncore/apps/qashmoney/qmpreferences.db b/noncore/apps/qashmoney/qmpreferences.db
index a4e96f5..91596cb 100755
--- a/noncore/apps/qashmoney/qmpreferences.db
+++ b/noncore/apps/qashmoney/qmpreferences.db
Binary files differ
diff --git a/noncore/apps/qashmoney/qmtransactions.db b/noncore/apps/qashmoney/qmtransactions.db
index 9e4acc9..a5eb4f3 100755
--- a/noncore/apps/qashmoney/qmtransactions.db
+++ b/noncore/apps/qashmoney/qmtransactions.db
Binary files differ
diff --git a/noncore/apps/qashmoney/qmtransfers.db b/noncore/apps/qashmoney/qmtransfers.db
index c31df1a..3ca9f78 100755
--- a/noncore/apps/qashmoney/qmtransfers.db
+++ b/noncore/apps/qashmoney/qmtransfers.db
Binary files differ
diff --git a/noncore/apps/qashmoney/transaction.cpp b/noncore/apps/qashmoney/transaction.cpp
index af7d18f..5ecc7ed 100755
--- a/noncore/apps/qashmoney/transaction.cpp
+++ b/noncore/apps/qashmoney/transaction.cpp
@@ -1,34 +1,35 @@
1// RESERVEDONE COLUMN NAME REPRESENTS THE LINEITEMID AND SHOULD BE CHANGED IN 1// RESERVEDONE COLUMN NAME REPRESENTS THE LINEITEMID AND SHOULD BE CHANGED IN
2// FUTURE VERSIONS OF QASHMONEY 2// FUTURE VERSIONS OF QASHMONEY
3 3
4// RESERVEDTWO REPRESENTS THE TRANSACTION DESCRIPTION 4// RESERVEDTWO REPRESENTS THE TRANSACTION DESCRIPTION
5 5
6#include "transaction.h" 6#include "transaction.h"
7#include "account.h" 7#include "account.h"
8#include "transactiondisplay.h" 8#include "transactiondisplay.h"
9 9
10#include <stdlib.h> 10#include <stdlib.h>
11#include <iostream.h>
11 12
12extern Account *account; 13extern Account *account;
13extern Preferences *preferences; 14extern Preferences *preferences;
14 15
15Transaction::Transaction () 16Transaction::Transaction ()
16 { 17 {
17 tdb = sqlite_open ( "qmtransactions.db", 0, NULL ); 18 tdb = sqlite_open ( "qmtransactions.db", 0, NULL );
18 } 19 }
19 20
20Transaction::~Transaction () 21Transaction::~Transaction ()
21 { 22 {
22 sqlite_close ( tdb ); 23 sqlite_close ( tdb );
23 } 24 }
24 25
25void Transaction::addTransaction ( QString description, QString payee, int accountid, int parentid, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid ) 26void Transaction::addTransaction ( QString description, QString payee, int accountid, int parentid, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid )
26 { 27 {
27 sqlite_exec_printf ( tdb, "insert into transactions values ( '%q', %i, %i, %i, %i, %i, %i, %.2f, %i, %i, 0, 0, 0, 0, 0, 0, %i, '%q', 0, 28 sqlite_exec_printf ( tdb, "insert into transactions values ( '%q', %i, %i, %i, %i, %i, %i, %.2f, %i, %i, 0, 0, 0, 0, 0, 0, %i, '%q', 0,
28 0, 0, 0, NULL );", 0, 0, 0, ( const char * ) payee, accountid, parentid, number, day, month, year, amount, cleared, budgetid, lineitemid, ( const char * ) description ); 29 0, 0, 0, NULL );", 0, 0, 0, ( const char * ) payee, accountid, parentid, number, day, month, year, amount, cleared, budgetid, lineitemid, ( const char * ) description );
29 } 30 }
30 31
31void Transaction::updateTransaction ( QString description, QString payee, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid, int transactionid ) 32void Transaction::updateTransaction ( QString description, QString payee, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid, int transactionid )
32 { 33 {
33 sqlite_exec_printf ( tdb, "update transactions set reservedtwo = '%q', payee = '%q', number = %i, day = %i, month = %i, year = %i, amount = %.2f, 34 sqlite_exec_printf ( tdb, "update transactions set reservedtwo = '%q', payee = '%q', number = %i, day = %i, month = %i, year = %i, amount = %.2f,
34 cleared = %i, budgetid = %i, reservedone = %i where transid = %i;", 0, 0, 0, ( const char * ) description, ( const char * ) payee, number, day, month, year, 35 cleared = %i, budgetid = %i, reservedone = %i where transid = %i;", 0, 0, 0, ( const char * ) description, ( const char * ) payee, number, day, month, year,
@@ -133,84 +134,79 @@ int Transaction::getLineItemID ( int id )
133int Transaction::getDay ( int id ) 134int Transaction::getDay ( int id )
134 { 135 {
135 char **results; 136 char **results;
136 sqlite_get_table_printf ( tdb, "select day from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 137 sqlite_get_table_printf ( tdb, "select day from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
137 QString daystring = results [ 1 ]; 138 QString daystring = results [ 1 ];
138 return daystring.toInt(); 139 return daystring.toInt();
139 } 140 }
140 141
141int Transaction::getMonth ( int id ) 142int Transaction::getMonth ( int id )
142 { 143 {
143 char **results; 144 char **results;
144 sqlite_get_table_printf ( tdb, "select month from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 145 sqlite_get_table_printf ( tdb, "select month from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
145 QString monthstring = results [ 1 ]; 146 QString monthstring = results [ 1 ];
146 return monthstring.toInt(); 147 return monthstring.toInt();
147 } 148 }
148 149
149int Transaction::getYear ( int id ) 150int Transaction::getYear ( int id )
150 { 151 {
151 char **results; 152 char **results;
152 sqlite_get_table_printf ( tdb, "select year from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 153 sqlite_get_table_printf ( tdb, "select year from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
153 QString yearstring = results [ 1 ]; 154 QString yearstring = results [ 1 ];
154 return yearstring.toInt(); 155 return yearstring.toInt();
155 } 156 }
156 157
157void Transaction::displayTransactions ( QListView *listview, int id, bool children, const char *limit ) 158void Transaction::displayTransactions ( QListView *listview, int id, bool children, const char *limit, QDate displaydate )
158 { 159 {
159 int showcleared = preferences->getPreference ( 3 ); 160 int showcleared = preferences->getPreference ( 3 );
161 int year = ( displaydate.year() ) - 1;
160 162
161 // select the transactions to display 163 // select the transactions to display
162 // two different statements are used based on 164 // two different statements are used based on
163 // whether we are showing cleared transactions 165 // whether we are showing cleared transactions
164 char **results; 166 char **results;
165 int rows, columns; 167 int rows, columns;
166 if ( showcleared == 0 ) 168 if ( showcleared == 0 )
167 { 169 {
168 if ( account->getParentAccountID ( id ) == -1 && children == TRUE ) 170 if ( account->getParentAccountID ( id ) == -1 && children == TRUE )
169 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where cleared = 0 and parentid = %i and payee like '%q';", &results, &rows, &columns, NULL, id, limit ); 171 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where cleared = 0 and year >= %i parentid = %i and payee like '%q';", &results, &rows, &columns, NULL, year, id, limit );
170 else 172 else
171 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where cleared = 0 and accountid = %i and payee like '%q';", &results, &rows, &columns, NULL, id, limit ); 173 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where cleared = 0 year >= %i accountid = %i and payee like '%q';", &results, &rows, &columns, NULL, year, id, limit );
172 } 174 }
173 else 175 else
174 { 176 {
175 if ( account->getParentAccountID ( id ) == -1 && children == TRUE ) 177 if ( account->getParentAccountID ( id ) == -1 && children == TRUE )
176 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where parentid = %i and payee like '%q';", &results, &rows, &columns, NULL, id, limit ); 178 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where year >= %i and parentid = %i and payee like '%q';", &results, &rows, &columns, NULL, year, id, limit );
177 else 179 else
178 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where accountid = %i and payee like '%q';", &results, &rows, &columns, NULL, id, limit ); 180 sqlite_get_table_printf ( tdb, "select day, month, year, payee, amount, transid, accountid from transactions where accountid = %i and payee like '%q';", &results, &rows, &columns, NULL, id, limit );
179 } 181 }
180 182
181 // iterate through the result list and display each item 183 // iterate through the result list and display each item
182 int counter = 7; 184 int counter = 7;
183 while ( counter < ( ( rows + 1 ) * columns ) ) 185 while ( counter < ( ( rows + 1 ) * columns ) )
184 { 186 {
185 // construct the date 187 QDate displaydate ( atoi ( results [ counter + 2 ] ), atoi ( results [ counter + 1 ] ), atoi ( results [ counter ] ) );
186 //QString daystring = results [ counter ]; 188 QString date = preferences->getDate ( atoi ( results [ counter + 2 ] ), atoi ( results [ counter + 1 ] ), atoi ( results [ counter ] ) );
187 //int day = results [ counter ].toInt ();
188 //QString monthstring = results [ counter + 1 ];
189 //int month = results [ counter + 1 ].toInt ();
190 //QString yearstring = results [ counter + 2 ];
191 //int year = results [ counter + 2 ].toInt ();
192 QString date = preferences->getDate ( atoi ( results [ counter + 2 ] ), atoi ( results [ counter + 1 ] ), atoi ( results [ counter ] ) );
193 189
194 // construct transaction name, amount, id 190 // construct transaction name, amount, id
195 QString payee = results [ counter + 3 ]; 191 QString payee = results [ counter + 3 ];
196 QString amount = results [ counter + 4 ]; 192 QString amount = results [ counter + 4 ];
197 QString transferid = results [ counter + 5 ]; 193 QString transferid = results [ counter + 5 ];
198 194
199 //determine the account name of the child accounts that we're displaying 195 //determine the account name of the child accounts that we're displaying
200 QString accountname = account->getAccountName ( atoi ( results [ counter + 6 ] ) ); 196 QString accountname = account->getAccountName ( atoi ( results [ counter + 6 ] ) );
201 197
202 // fill in values 198 // fill in values
203 if ( account->getParentAccountID ( id ) != -1 ) // use these constructors if we're showing a child account 199 if ( account->getParentAccountID ( id ) != -1 ) // use these constructors if we're showing a child account
204 { 200 {
205 if ( showcleared == 1 && getCleared ( transferid.toInt() ) == 1 ) 201 if ( showcleared == 1 && getCleared ( transferid.toInt() ) == 1 )
206 ColorListItem *item = new ColorListItem ( listview, date, payee, amount, transferid); 202 ColorListItem *item = new ColorListItem ( listview, date, payee, amount, transferid);
207 else 203 else
208 QListViewItem *item = new QListViewItem ( listview, date, payee, amount, transferid ); 204 QListViewItem *item = new QListViewItem ( listview, date, payee, amount, transferid );
209 } 205 }
210 else 206 else
211 { 207 {
212 if ( showcleared == 1 && getCleared ( transferid.toInt() ) == 1 ) 208 if ( showcleared == 1 && getCleared ( transferid.toInt() ) == 1 )
213 ColorListItem *item = new ColorListItem ( listview, date, payee, amount, transferid, accountname ); 209 ColorListItem *item = new ColorListItem ( listview, date, payee, amount, transferid, accountname );
214 else 210 else
215 QListViewItem *item = new QListViewItem ( listview, date, payee, amount, transferid, accountname ); 211 QListViewItem *item = new QListViewItem ( listview, date, payee, amount, transferid, accountname );
216 } 212 }
diff --git a/noncore/apps/qashmoney/transaction.h b/noncore/apps/qashmoney/transaction.h
index 5db011c..7297bb1 100755
--- a/noncore/apps/qashmoney/transaction.h
+++ b/noncore/apps/qashmoney/transaction.h
@@ -1,69 +1,70 @@
1#ifndef TRANSACTION_H 1#ifndef TRANSACTION_H
2#define TRANSACTION_H 2#define TRANSACTION_H
3 3
4#include <qstring.h> 4#include <qstring.h>
5#include <qlistview.h> 5#include <qlistview.h>
6#include <qdatetime.h>
6#include <sqlite.h> 7#include <sqlite.h>
7 8
8#include "preferences.h" 9#include "preferences.h"
9 10
10class Transaction 11class Transaction
11 { 12 {
12 public: 13 public:
13 14
14 Transaction (); 15 Transaction ();
15 ~Transaction (); 16 ~Transaction ();
16 17
17 // This function adds a new transaction to the database. It takes the payee, accountid, 18 // This function adds a new transaction to the database. It takes the payee, accountid,
18 // budgetid, number, day, month, year, amount, cleared 19 // budgetid, number, day, month, year, amount, cleared
19 void addTransaction ( QString description, QString payee, int accountid, int parentid, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid ); 20 void addTransaction ( QString description, QString payee, int accountid, int parentid, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid );
20 21
21 // This updates an already existing transaction 22 // This updates an already existing transaction
22 void updateTransaction ( QString, QString, int, int, int, int, float, int, int, int, int ); 23 void updateTransaction ( QString, QString, int, int, int, int, float, int, int, int, int );
23 24
24 // Deletes a transaction. Takes the transid as its parameter 25 // Deletes a transaction. Takes the transid as its parameter
25 void deleteTransaction ( int ); 26 void deleteTransaction ( int );
26 27
27 // Returns the number of transactions 28 // Returns the number of transactions
28 int getNumberOfTransactions (); 29 int getNumberOfTransactions ();
29 30
30 // this is an overloaded function that returns the number of 31 // this is an overloaded function that returns the number of
31 // transactions for an account 32 // transactions for an account
32 int getNumberOfTransactions ( int ); 33 int getNumberOfTransactions ( int );
33 34
34 // deletes all transactions for the provided accountid 35 // deletes all transactions for the provided accountid
35 void deleteAllTransactions ( int accountid ); 36 void deleteAllTransactions ( int accountid );
36 37
37 QString getBudgetTotal ( int budgetid, int lineitemid, int year, int month, int viewtype ); 38 QString getBudgetTotal ( int budgetid, int lineitemid, int year, int month, int viewtype );
38 QString getActualTotal ( int budgetid, int year, int month, int viewtype ); 39 QString getActualTotal ( int budgetid, int year, int month, int viewtype );
39 40
40 // These two functions clear budget ids is either a line item or an entire budget is deleted 41 // These two functions clear budget ids is either a line item or an entire budget is deleted
41 void clearBudgetIDs ( int, int ); 42 void clearBudgetIDs ( int, int );
42 void clearBudgetIDs ( int ); 43 void clearBudgetIDs ( int );
43 44
44 public slots: 45 public slots:
45 46
46 void displayTransactions ( QListView *, int, bool, const char * ); 47 void displayTransactions ( QListView *, int, bool, const char *, QDate );
47 QString getPayee ( int ); 48 QString getPayee ( int );
48 QString getTransactionDescription ( int ); 49 QString getTransactionDescription ( int );
49 QString getNumber ( int ); 50 QString getNumber ( int );
50 QString getAmount ( int ); 51 QString getAmount ( int );
51 QString getAbsoluteAmount ( int ); 52 QString getAbsoluteAmount ( int );
52 int getCleared ( int ); 53 int getCleared ( int );
53 void setCleared ( int id, int cleared ); 54 void setCleared ( int id, int cleared );
54 int getBudgetID ( int id ); 55 int getBudgetID ( int id );
55 int getLineItemID ( int id ); 56 int getLineItemID ( int id );
56 int getDay ( int ); 57 int getDay ( int );
57 int getMonth ( int ); 58 int getMonth ( int );
58 int getYear ( int ); 59 int getYear ( int );
59 int getAccountID ( int id ); 60 int getAccountID ( int id );
60 61
61 private: 62 private:
62 63
63 sqlite *tdb; 64 sqlite *tdb;
64 }; 65 };
65 66
66#endif 67#endif
67 68
68 69
69 70
diff --git a/noncore/apps/qashmoney/transactiondisplay.cpp b/noncore/apps/qashmoney/transactiondisplay.cpp
index 14f5641..ae6223d 100755
--- a/noncore/apps/qashmoney/transactiondisplay.cpp
+++ b/noncore/apps/qashmoney/transactiondisplay.cpp
@@ -106,50 +106,51 @@ void TransactionDisplay::addTransaction ()
106 cleared = 1; 106 cleared = 1;
107 else 107 else
108 cleared = 0; 108 cleared = 0;
109 109
110 float amount = newtransaction->transactionamount->text().toFloat(); 110 float amount = newtransaction->transactionamount->text().toFloat();
111 if ( newtransaction->depositbox->isChecked() == FALSE ) 111 if ( newtransaction->depositbox->isChecked() == FALSE )
112 amount = amount * -1; 112 amount = amount * -1;
113 113
114 // add the transaction name to the memory items 114 // add the transaction name to the memory items
115 memory->addMemoryItem ( newtransaction->transactionname->currentText() ); 115 memory->addMemoryItem ( newtransaction->transactionname->currentText() );
116 116
117 // add the transaction 117 // add the transaction
118 if ( newtransaction->getDateEdited () == TRUE ) 118 if ( newtransaction->getDateEdited () == TRUE )
119 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), 119 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ),
120 newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(), 120 newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(),
121 newtransaction->getCurrentLineItem() ); 121 newtransaction->getCurrentLineItem() );
122 else 122 else
123 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), 123 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ),
124 newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() ); 124 newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() );
125 125
126 // redisplay transactions 126 // redisplay transactions
127 listview->clear(); 127 listview->clear();
128 QString displaytext = "%"; 128 QString displaytext = "%";
129 displaytext.prepend ( limitbox->text() ); 129 displaytext.prepend ( limitbox->text() );
130 setTransactionDisplayDate ();
130 if ( transaction->getNumberOfTransactions() > 0 ) 131 if ( transaction->getNumberOfTransactions() > 0 )
131 transaction->displayTransactions ( listview, accountid, children, displaytext ); 132 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
132 133
133 // redisplay transfers 134 // redisplay transfers
134 if ( transfer->getNumberOfTransfers() > 0 ) 135 if ( transfer->getNumberOfTransfers() > 0 )
135 transfer->displayTransfers ( listview, accountid, children ); 136 transfer->displayTransfers ( listview, accountid, children );
136 137
137 // add the transaction amount to the account it's associated with 138 // add the transaction amount to the account it's associated with
138 // and update its parent account balance if necessary 139 // and update its parent account balance if necessary
139 account->updateAccountBalance ( accountid ); 140 account->updateAccountBalance ( accountid );
140 if ( account->getParentAccountID ( accountid ) != -1 ) 141 if ( account->getParentAccountID ( accountid ) != -1 )
141 account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) ); 142 account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) );
142 143
143 // format then reset the account balance 144 // format then reset the account balance
144 redisplayAccountBalance (); 145 redisplayAccountBalance ();
145 } 146 }
146 } 147 }
147 148
148void TransactionDisplay::checkListViewEdit () 149void TransactionDisplay::checkListViewEdit ()
149 { 150 {
150 if ( listview->selectedItem() == 0 ) 151 if ( listview->selectedItem() == 0 )
151 QMessageBox::warning ( this, "QashMoney", "Please select a transaction\nto edit."); 152 QMessageBox::warning ( this, "QashMoney", "Please select a transaction\nto edit.");
152 else if ( listview->currentItem()->text ( getIDColumn() ).toInt() < 0 ) 153 else if ( listview->currentItem()->text ( getIDColumn() ).toInt() < 0 )
153 editTransfer (); 154 editTransfer ();
154 else 155 else
155 editTransaction(); 156 editTransaction();
@@ -344,125 +345,128 @@ void TransactionDisplay::editTransaction ()
344 cleared = 0; 345 cleared = 0;
345 346
346 float amount = newtransaction->transactionamount->text().toFloat(); 347 float amount = newtransaction->transactionamount->text().toFloat();
347 if ( newtransaction->depositbox->isChecked() == FALSE ) 348 if ( newtransaction->depositbox->isChecked() == FALSE )
348 amount = amount * -1; 349 amount = amount * -1;
349 350
350 // add the transaction name to the memory items 351 // add the transaction name to the memory items
351 memory->addMemoryItem ( newtransaction->transactionname->currentText() ); 352 memory->addMemoryItem ( newtransaction->transactionname->currentText() );
352 353
353 // update the transaction 354 // update the transaction
354 transaction->updateTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), newtransaction->transactionnumber->text().toInt(), 355 transaction->updateTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), newtransaction->transactionnumber->text().toInt(),
355 newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), 356 newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(),
356 amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem(), transactionid ); 357 amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem(), transactionid );
357 358
358 updateAndDisplay ( transaction->getAccountID ( transactionid ) ); 359 updateAndDisplay ( transaction->getAccountID ( transactionid ) );
359 } 360 }
360 } 361 }
361 362
362void TransactionDisplay::updateAndDisplay ( int id ) 363void TransactionDisplay::updateAndDisplay ( int id )
363 { 364 {
364 // redisplay transactions 365 // redisplay transactions
365 listview->clear(); 366 listview->clear();
366 QString displaytext = "%"; 367 QString displaytext = "%";
367 displaytext.prepend ( limitbox->text() ); 368 displaytext.prepend ( limitbox->text() );
369 setTransactionDisplayDate ();
368 if ( transaction->getNumberOfTransactions() > 0 ) 370 if ( transaction->getNumberOfTransactions() > 0 )
369 transaction->displayTransactions ( listview, accountid, children, displaytext ); 371 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
370 372
371 // redisplay transfers 373 // redisplay transfers
372 if ( transfer->getNumberOfTransfers() > 0 ) 374 if ( transfer->getNumberOfTransfers() > 0 )
373 transfer->displayTransfers ( listview, accountid, children ); 375 transfer->displayTransfers ( listview, accountid, children );
374 376
375 // add the transaction amount to the account it's associated with 377 // add the transaction amount to the account it's associated with
376 // and update its parent account balance if necessary 378 // and update its parent account balance if necessary
377 account->updateAccountBalance ( id ); 379 account->updateAccountBalance ( id );
378 if ( account->getParentAccountID ( id ) != -1 ) 380 if ( account->getParentAccountID ( id ) != -1 )
379 account->changeParentAccountBalance ( account->getParentAccountID ( id ) ); 381 account->changeParentAccountBalance ( account->getParentAccountID ( id ) );
380 382
381 // format then reset the account balance 383 // format then reset the account balance
382 redisplayAccountBalance (); 384 redisplayAccountBalance ();
383 } 385 }
384 386
385void TransactionDisplay::checkListViewDelete () 387void TransactionDisplay::checkListViewDelete ()
386 { 388 {
387 if ( listview->selectedItem() == 0 ) 389 if ( listview->selectedItem() == 0 )
388 QMessageBox::warning ( this, "QashMoney", "Please select a transaction to\ndelete."); 390 QMessageBox::warning ( this, "QashMoney", "Please select a transaction to\ndelete.");
389 else 391 else
390 deleteTransaction (); 392 deleteTransaction ();
391 } 393 }
392 394
393void TransactionDisplay::deleteTransaction () 395void TransactionDisplay::deleteTransaction ()
394 { 396 {
395 int transactionid = listview->currentItem()->text ( getIDColumn() ).toInt(); 397 int transactionid = listview->currentItem()->text ( getIDColumn() ).toInt();
396 398
397 if ( transactionid > 0 ) // takes care of deleting transactions 399 if ( transactionid > 0 ) // takes care of deleting transactions
398 { 400 {
399 // check if we are viewing child transactions through a parent 401 // check if we are viewing child transactions through a parent
400 // in that case we will have to update balances for the parent 402 // in that case we will have to update balances for the parent
401 // which is represented by accountid and the child account 403 // which is represented by accountid and the child account
402 // which will be represented by childaccountid 404 // which will be represented by childaccountid
403 int childaccountid = -1; 405 int childaccountid = -1;
404 if ( listview->columns() == 5 ) 406 if ( listview->columns() == 5 )
405 childaccountid = transaction->getAccountID ( transactionid ); 407 childaccountid = transaction->getAccountID ( transactionid );
406 408
407 transaction->deleteTransaction ( transactionid ); 409 transaction->deleteTransaction ( transactionid );
408 410
409 listview->clear(); 411 listview->clear();
410 QString displaytext = "%"; 412 QString displaytext = "%";
411 displaytext.prepend ( limitbox->text() ); 413 displaytext.prepend ( limitbox->text() );
414 setTransactionDisplayDate ();
412 if ( transaction->getNumberOfTransactions() > 0 ) 415 if ( transaction->getNumberOfTransactions() > 0 )
413 transaction->displayTransactions ( listview, accountid, children, displaytext ); 416 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
414 417
415 if ( transfer->getNumberOfTransfers() > 0 ) 418 if ( transfer->getNumberOfTransfers() > 0 )
416 transfer->displayTransfers ( listview, accountid, children ); 419 transfer->displayTransfers ( listview, accountid, children );
417 420
418 // if we are viewing different child accounts through the parent account 421 // if we are viewing different child accounts through the parent account
419 // ie if there are five columns and the parentid is -1 422 // ie if there are five columns and the parentid is -1
420 // update the accountid ( which is the parent ) and update the child account 423 // update the accountid ( which is the parent ) and update the child account
421 // balance. Get its accountid from the transactionid 424 // balance. Get its accountid from the transactionid
422 account->updateAccountBalance ( accountid ); // will update either a parent or child 425 account->updateAccountBalance ( accountid ); // will update either a parent or child
423 if ( account->getParentAccountID ( accountid ) != -1 ) // update its parent if there is one 426 if ( account->getParentAccountID ( accountid ) != -1 ) // update its parent if there is one
424 account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) ); 427 account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) );
425 if ( childaccountid != -1 ) // we've set childaccountid 428 if ( childaccountid != -1 ) // we've set childaccountid
426 account->updateAccountBalance ( childaccountid ); 429 account->updateAccountBalance ( childaccountid );
427 430
428 // format then reset the account balance 431 // format then reset the account balance
429 redisplayAccountBalance (); 432 redisplayAccountBalance ();
430 } 433 }
431 else // takes care of deleting transfers 434 else // takes care of deleting transfers
432 { 435 {
433 // get the accountids before we delete the transfer 436 // get the accountids before we delete the transfer
434 int fromaccountid = transfer->getFromAccountID ( transactionid ); 437 int fromaccountid = transfer->getFromAccountID ( transactionid );
435 int toaccountid = transfer->getToAccountID ( transactionid ); 438 int toaccountid = transfer->getToAccountID ( transactionid );
436 439
437 // delete the transfer and redisplay transactions 440 // delete the transfer and redisplay transactions
438 transfer->deleteTransfer ( transactionid ); 441 transfer->deleteTransfer ( transactionid );
439 442
440 listview->clear(); 443 listview->clear();
441 QString displaytext = "%"; 444 QString displaytext = "%";
442 displaytext.prepend ( limitbox->text() ); 445 displaytext.prepend ( limitbox->text() );
446 setTransactionDisplayDate ();
443 if ( transaction->getNumberOfTransactions() > 0 ) 447 if ( transaction->getNumberOfTransactions() > 0 )
444 transaction->displayTransactions ( listview, accountid, children, displaytext ); 448 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
445 449
446 if ( transfer->getNumberOfTransfers() > 0 ) 450 if ( transfer->getNumberOfTransfers() > 0 )
447 transfer->displayTransfers ( listview, accountid, children ); 451 transfer->displayTransfers ( listview, accountid, children );
448 452
449 // for the from account 453 // for the from account
450 account->updateAccountBalance ( fromaccountid ); 454 account->updateAccountBalance ( fromaccountid );
451 if ( account->getParentAccountID ( fromaccountid ) != -1 ) 455 if ( account->getParentAccountID ( fromaccountid ) != -1 )
452 account->changeParentAccountBalance ( account->getParentAccountID ( fromaccountid ) ); 456 account->changeParentAccountBalance ( account->getParentAccountID ( fromaccountid ) );
453 457
454 // for the to account 458 // for the to account
455 account->updateAccountBalance ( toaccountid ); 459 account->updateAccountBalance ( toaccountid );
456 if ( account->getParentAccountID ( toaccountid ) != -1 ) 460 if ( account->getParentAccountID ( toaccountid ) != -1 )
457 account->changeParentAccountBalance ( account->getParentAccountID ( toaccountid ) ); 461 account->changeParentAccountBalance ( account->getParentAccountID ( toaccountid ) );
458 462
459 // format then reset the account balance 463 // format then reset the account balance
460 redisplayAccountBalance (); 464 redisplayAccountBalance ();
461 } 465 }
462 } 466 }
463 467
464void TransactionDisplay::checkListViewToggle () 468void TransactionDisplay::checkListViewToggle ()
465 { 469 {
466 if ( listview->selectedItem() == 0 ) 470 if ( listview->selectedItem() == 0 )
467 QMessageBox::warning ( this, "QashMoney", "Please select a transaction to\nclear or reset."); 471 QMessageBox::warning ( this, "QashMoney", "Please select a transaction to\nclear or reset.");
468 else 472 else
@@ -471,50 +475,51 @@ void TransactionDisplay::checkListViewToggle ()
471 475
472void TransactionDisplay::toggleTransaction () 476void TransactionDisplay::toggleTransaction ()
473 { 477 {
474 //get the transaction of the selected transaction to determine if its a transaction or transfer 478 //get the transaction of the selected transaction to determine if its a transaction or transfer
475 int transactionid = listview->currentItem()->text ( getIDColumn() ).toInt(); 479 int transactionid = listview->currentItem()->text ( getIDColumn() ).toInt();
476 480
477 if ( transactionid > 0 ) // if this is a transaction 481 if ( transactionid > 0 ) // if this is a transaction
478 { 482 {
479 if ( transaction->getCleared ( transactionid ) == 0 ) 483 if ( transaction->getCleared ( transactionid ) == 0 )
480 transaction->setCleared ( transactionid, 1 ); 484 transaction->setCleared ( transactionid, 1 );
481 else 485 else
482 transaction->setCleared ( transactionid, 0 ); 486 transaction->setCleared ( transactionid, 0 );
483 } 487 }
484 else 488 else
485 { 489 {
486 if ( transfer->getCleared ( transactionid ) == 0 ) 490 if ( transfer->getCleared ( transactionid ) == 0 )
487 transfer->setCleared ( transactionid, 1 ); 491 transfer->setCleared ( transactionid, 1 );
488 else 492 else
489 transfer->setCleared ( transactionid, 0 ); 493 transfer->setCleared ( transactionid, 0 );
490 } 494 }
491 495
492 listview->clear(); 496 listview->clear();
493 QString displaytext = "%"; 497 QString displaytext = "%";
494 displaytext.prepend ( limitbox->text() ); 498 displaytext.prepend ( limitbox->text() );
499 setTransactionDisplayDate ();
495 if ( transaction->getNumberOfTransactions() > 0 ) 500 if ( transaction->getNumberOfTransactions() > 0 )
496 transaction->displayTransactions ( listview, accountid, children, displaytext ); 501 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
497 502
498 if ( transfer->getNumberOfTransfers() != 0 ) 503 if ( transfer->getNumberOfTransfers() != 0 )
499 transfer->displayTransfers ( listview, accountid, children ); 504 transfer->displayTransfers ( listview, accountid, children );
500 } 505 }
501 506
502void TransactionDisplay::redisplayAccountBalance () 507void TransactionDisplay::redisplayAccountBalance ()
503 { 508 {
504 QString accountbalance = account->getAccountBalance ( accountid ); 509 QString accountbalance = account->getAccountBalance ( accountid );
505 balance->setText ( accountbalance ); 510 balance->setText ( accountbalance );
506 } 511 }
507 512
508void TransactionDisplay::setChildren ( bool c ) 513void TransactionDisplay::setChildren ( bool c )
509 { 514 {
510 children = c; 515 children = c;
511 } 516 }
512 517
513void TransactionDisplay::setAccountID ( int id ) 518void TransactionDisplay::setAccountID ( int id )
514 { 519 {
515 accountid = id; 520 accountid = id;
516 } 521 }
517 522
518ColorListItem::ColorListItem ( QListView *parent ) : QListViewItem ( parent ) 523ColorListItem::ColorListItem ( QListView *parent ) : QListViewItem ( parent )
519 { 524 {
520 } 525 }
@@ -530,57 +535,89 @@ ColorListItem::ColorListItem ( QListView *parent, QString label1, QString label2
530 } 535 }
531 536
532void ColorListItem::paintCell ( QPainter *p, const QColorGroup &cg, int column, int width, int alignment ) 537void ColorListItem::paintCell ( QPainter *p, const QColorGroup &cg, int column, int width, int alignment )
533 { 538 {
534 QColorGroup _cg ( cg ); 539 QColorGroup _cg ( cg );
535 _cg.setColor ( QColorGroup::Text, Qt::red ); 540 _cg.setColor ( QColorGroup::Text, Qt::red );
536 QListViewItem::paintCell ( p, _cg, column, width, alignment ); 541 QListViewItem::paintCell ( p, _cg, column, width, alignment );
537 } 542 }
538 543
539void TransactionDisplay::saveColumnSize ( int column, int oldsize, int newsize ) 544void TransactionDisplay::saveColumnSize ( int column, int oldsize, int newsize )
540 { 545 {
541 if ( listview->columns() == 4 ) 546 if ( listview->columns() == 4 )
542 preferences->changeColumnPreference ( column + 3, newsize ); 547 preferences->changeColumnPreference ( column + 3, newsize );
543 else if ( listview->columns() == 5 && column != 4 ) 548 else if ( listview->columns() == 5 && column != 4 )
544 preferences->changeColumnPreference ( column + 6, newsize ); 549 preferences->changeColumnPreference ( column + 6, newsize );
545 else 550 else
546 preferences->changeColumnPreference ( 9, newsize ); 551 preferences->changeColumnPreference ( 9, newsize );
547 } 552 }
548 553
549void TransactionDisplay::limitDisplay ( const QString &text ) 554void TransactionDisplay::limitDisplay ( const QString &text )
550 { 555 {
551 listview->clear (); 556 listview->clear ();
552 QString displaytext = "%"; 557 QString displaytext = "%";
553 displaytext.prepend ( text ); 558 displaytext.prepend ( text );
554 transaction->displayTransactions ( listview, accountid, children, displaytext ); 559 setTransactionDisplayDate ();
560 if ( transaction->getNumberOfTransactions() > 0 )
561 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
562
555 if ( displaytext.length() == 1 || preferences->getPreference ( 6 ) == 1 ) 563 if ( displaytext.length() == 1 || preferences->getPreference ( 6 ) == 1 )
556 transfer->displayTransfers ( listview, accountid, children ); 564 transfer->displayTransfers ( listview, accountid, children );
557 } 565 }
558 566
559int TransactionDisplay::getIDColumn () 567int TransactionDisplay::getIDColumn ()
560 { 568 {
561 int counter; 569 int counter;
562 int columns = listview->columns(); 570 int columns = listview->columns();
563 for ( counter = 0; counter <= columns; counter++ ) 571 for ( counter = 0; counter <= columns; counter++ )
564 if ( listview->header()->label ( counter ).length() == 0 ) 572 if ( listview->header()->label ( counter ).length() == 0 )
565 return counter; 573 return counter;
566 } 574 }
567 575
568void TransactionDisplay::showTransactionNotes () 576void TransactionDisplay::showTransactionNotes ()
569 { 577 {
570 if ( listview->selectedItem() == 0 || listview->currentItem()->text ( getIDColumn() ).toInt() < 0 ) 578 if ( listview->selectedItem() == 0 || listview->currentItem()->text ( getIDColumn() ).toInt() < 0 )
571 QMessageBox::warning ( this, "QashMoney", "Please select a valid\ntransaction to view notes."); 579 QMessageBox::warning ( this, "QashMoney", "Please select a valid\ntransaction to view notes.");
572 else 580 else
573 { 581 {
574 int transactionid = listview->selectedItem()->text ( getIDColumn() ).toInt (); 582 int transactionid = listview->selectedItem()->text ( getIDColumn() ).toInt ();
575 QDialog *description = new QDialog ( this, "description", TRUE ); 583 QDialog *description = new QDialog ( this, "description", TRUE );
576 description->setCaption ( "Notes" ); 584 description->setCaption ( "Notes" );
577 QMultiLineEdit *notes = new QMultiLineEdit ( description ); 585 QMultiLineEdit *notes = new QMultiLineEdit ( description );
578 notes->setFixedSize ( ( int ) (this->width() * 0.75 ), ( int ) ( this->height() * 0.5 ) ); 586 notes->setFixedSize ( ( int ) (this->width() * 0.75 ), ( int ) ( this->height() * 0.5 ) );
579 notes->setWrapColumnOrWidth ( ( int ) (this->width() * 0.75 ) ); 587 notes->setWrapColumnOrWidth ( ( int ) (this->width() * 0.75 ) );
580 notes->setWordWrap ( QMultiLineEdit::WidgetWidth ); 588 notes->setWordWrap ( QMultiLineEdit::WidgetWidth );
581 notes->setEnabled ( FALSE ); 589 notes->setEnabled ( FALSE );
582 notes->setText ( transaction->getTransactionDescription ( transactionid ) ); 590 notes->setText ( transaction->getTransactionDescription ( transactionid ) );
583 description->show(); 591 description->show();
584 } 592 }
585 } 593 }
586 594
595void TransactionDisplay::setTransactionDisplayDate ()
596 {
597 // determine how many days of transactions to show
598 int limittype = preferences->getPreference ( 7 );
599 if ( limittype != 5 ) // set today's date if we are not showing all transactions
600 {
601 QDate today = QDate::currentDate ();
602 switch ( limittype ) // if we are not showing all transactions
603 {
604 case 0: // viewing two weeks
605 displaydate = today.addDays ( -14 );
606 break;
607 case 1: // viewing one month
608 displaydate = today.addDays ( -30 );
609 break;
610 case 2: // three months
611 displaydate = today.addDays ( -90 );
612 break;
613 case 3: // six months
614 displaydate = today.addDays ( -180 );
615 break;
616 case 4: // one year
617 displaydate = today.addDays ( -365 );
618 break;
619 }
620 }
621 else
622 displaydate = QDate ( 1, 1, 1000 );
623 }
diff --git a/noncore/apps/qashmoney/transactiondisplay.h b/noncore/apps/qashmoney/transactiondisplay.h
index 79f20ba..1746f6c 100755
--- a/noncore/apps/qashmoney/transactiondisplay.h
+++ b/noncore/apps/qashmoney/transactiondisplay.h
@@ -1,77 +1,80 @@
1#ifndef TRANSACTIONDISPLAY_H 1#ifndef TRANSACTIONDISPLAY_H
2#define TRANSACTIONDISPLAY_H 2#define TRANSACTIONDISPLAY_H
3 3
4#include <qlayout.h> 4#include <qlayout.h>
5#include <qhbox.h> 5#include <qhbox.h>
6#include <qlistview.h> 6#include <qlistview.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qlabel.h> 8#include <qlabel.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qdatetime.h>
10 11
11class TransactionDisplay : public QWidget 12class TransactionDisplay : public QWidget
12 { 13 {
13 Q_OBJECT 14 Q_OBJECT
14 15
15 public: 16 public:
16 TransactionDisplay ( QWidget* parent ); 17 TransactionDisplay ( QWidget* parent );
17 18
18 QListView* listview; 19 QListView* listview;
19 QPushButton* newtransaction; 20 QPushButton* newtransaction;
20 QPushButton* edittransaction; 21 QPushButton* edittransaction;
21 QPushButton* deletetransaction; 22 QPushButton* deletetransaction;
22 QPushButton* toggletransaction; 23 QPushButton* toggletransaction;
23 QPushButton* viewtransactionnotes; 24 QPushButton* viewtransactionnotes;
24 25
25 QLabel *name; 26 QLabel *name;
26 QLabel *balance; 27 QLabel *balance;
27 QLineEdit *limitbox; 28 QLineEdit *limitbox;
28 QLineEdit *amount; 29 QLineEdit *amount;
29 QLineEdit *date; 30 QLineEdit *date;
30 31
31 int getIDColumn (); 32 int getIDColumn ();
32 33
33 public slots: 34 public slots:
34 void setChildren ( bool ); 35 void setChildren ( bool );
35 void setAccountID ( int ); 36 void setAccountID ( int );
36 void showTransactionNotes (); 37 void showTransactionNotes ();
37 38
38 private slots: 39 private slots:
39 void addTransaction (); 40 void addTransaction ();
40 void editTransaction (); 41 void editTransaction ();
41 void editTransfer (); 42 void editTransfer ();
42 void deleteTransaction (); 43 void deleteTransaction ();
43 void toggleTransaction (); 44 void toggleTransaction ();
44 void checkListViewDelete (); 45 void checkListViewDelete ();
45 void checkListViewEdit (); 46 void checkListViewEdit ();
46 void checkListViewToggle (); 47 void checkListViewToggle ();
47 void saveColumnSize ( int column, int oldsize, int newsize ); 48 void saveColumnSize ( int column, int oldsize, int newsize );
48 void limitDisplay ( const QString & ); 49 void limitDisplay ( const QString & );
49 void showCalculator (); 50 void showCalculator ();
50 void showCalendar (); 51 void showCalendar ();
52 void setTransactionDisplayDate ();
51 53
52 private: 54 private:
53 int accountid, fromaccount, fromparent, toaccount, toparent, day, month, year, transferid; 55 int accountid, fromaccount, fromparent, toaccount, toparent, day, month, year, transferid;
56 QDate displaydate;
54 bool children; 57 bool children;
55 QBoxLayout *layout; 58 QBoxLayout *layout;
56 QHBox *firstline; 59 QHBox *firstline;
57 QHBox *secondline; 60 QHBox *secondline;
58 void redisplayAccountBalance (); 61 void redisplayAccountBalance ();
59 void updateAndDisplay ( int accountid ); 62 void updateAndDisplay ( int accountid );
60 }; 63 };
61 64
62#endif 65#endif
63 66
64#ifndef COLORLISTITEM_H 67#ifndef COLORLISTITEM_H
65#define COLORLISTITEM_H 68#define COLORLISTITEM_H
66 69
67class ColorListItem : public QListViewItem 70class ColorListItem : public QListViewItem
68 { 71 {
69 public: 72 public:
70 73
71 ColorListItem ( QListView *parent ); 74 ColorListItem ( QListView *parent );
72 ColorListItem ( QListView *parent, QString label1, QString label2, QString label3, QString label4 ); 75 ColorListItem ( QListView *parent, QString label1, QString label2, QString label3, QString label4 );
73 ColorListItem ( QListView *parent, QString label1, QString label2, QString label3, QString label4, QString label5 ); 76 ColorListItem ( QListView *parent, QString label1, QString label2, QString label3, QString label4, QString label5 );
74 77
75 virtual void paintCell ( QPainter *p, const QColorGroup &cg, int column, int width, int alignment ); 78 virtual void paintCell ( QPainter *p, const QColorGroup &cg, int column, int width, int alignment );
76 }; 79 };
77 80