-rw-r--r-- | noncore/apps/checkbook/checkbook.cpp | 6 | ||||
-rw-r--r-- | noncore/apps/checkbook/traninfo.cpp | 15 | ||||
-rw-r--r-- | noncore/apps/checkbook/traninfo.h | 8 |
3 files changed, 25 insertions, 4 deletions
diff --git a/noncore/apps/checkbook/checkbook.cpp b/noncore/apps/checkbook/checkbook.cpp index 77c1f57..ab25516 100644 --- a/noncore/apps/checkbook/checkbook.cpp +++ b/noncore/apps/checkbook/checkbook.cpp @@ -308,13 +308,13 @@ void Checkbook::loadCheckbook() amount *= -1; } currBalance += amount; stramount.sprintf( "%c%.2f", currencySymbol, amount ); // Add to transaction list - transactions.append( tran ); + transactions.inSort( tran ); // Add to transaction table ( void ) new QListViewItem( tranTable, QString::number( i ), tran->datestr(), trandesc, stramount ); } else @@ -412,13 +412,13 @@ void Checkbook::slotNewTran() amount *= -1; } QString stramount; stramount.sprintf( "%c%.2f", currencySymbol, amount ); // Add to transaction list - transactions.append( traninfo ); + transactions.inSort( traninfo ); // Add to transaction table ( void ) new QListViewItem( tranTable, QString::number( highTranNum ), traninfo->datestr(), traninfo->desc(), stramount ); adjustBalance( amount ); @@ -559,13 +559,13 @@ void Checkbook::drawBalanceChart() void Checkbook::drawCategoryChart( bool withdrawals ) { DataPointList *list = new DataPointList(); TranInfo *tran = transactions.first(); - if ( tran->withdrawal() == withdrawals ) + if ( tran && tran->withdrawal() == withdrawals ) { list->append( new DataPointInfo( tran->category(), tran->amount() ) ); } tran = transactions.next(); DataPointInfo *cat; diff --git a/noncore/apps/checkbook/traninfo.cpp b/noncore/apps/checkbook/traninfo.cpp index 460466c..dcba869 100644 --- a/noncore/apps/checkbook/traninfo.cpp +++ b/noncore/apps/checkbook/traninfo.cpp @@ -170,6 +170,21 @@ void TranInfo::write( Config *config, int entry ) config->writeEntry( "TransactionFee", tempstr ); config->writeEntry( "CheckNumber", cn ); config->writeEntry( "Comments", n ); } + +int TranInfoList::compareItems( QCollection::Item item1, QCollection::Item item2 ) +{ + QDate d1 = ((TranInfo *)item1)->date(); + QDate d2 = ((TranInfo *)item2)->date(); + int r = -1; + + if ( d1 < d2 ) + r = -1; + else if ( d1 == d2 ) + r = 0; + else if ( d1 > d2 ) + r = 1; + return( r ); +}
\ No newline at end of file diff --git a/noncore/apps/checkbook/traninfo.h b/noncore/apps/checkbook/traninfo.h index e944c29..e488816 100644 --- a/noncore/apps/checkbook/traninfo.h +++ b/noncore/apps/checkbook/traninfo.h @@ -78,9 +78,15 @@ class TranInfo float a; float f; QString cn; QString n; }; -typedef QList<TranInfo> TranInfoList; +class TranInfoList : public QList<TranInfo> +{ + protected: + int compareItems( QCollection::Item, QCollection::Item ); +}; + +//typedef TranList<TranInfo> TranInfoList; #endif |