Diffstat (limited to 'noncore/apps/checkbook/checkbook.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/checkbook/checkbook.cpp | 91 |
1 files changed, 75 insertions, 16 deletions
diff --git a/noncore/apps/checkbook/checkbook.cpp b/noncore/apps/checkbook/checkbook.cpp index c53e889..a42c824 100644 --- a/noncore/apps/checkbook/checkbook.cpp +++ b/noncore/apps/checkbook/checkbook.cpp @@ -50,11 +50,13 @@ #include <qpushbutton.h> #include <qwhatsthis.h> +#include <qpopupmenu.h> -#define COL_ID 0 -#define COL_NUM 1 -#define COL_DATE 2 -#define COL_DESC 3 -#define COL_AMOUNT 4 -#define COL_BAL 5 +#define COL_ID 0 +#define COL_SORTDATE 1 +#define COL_NUM 2 +#define COL_DATE 3 +#define COL_DESC 4 +#define COL_AMOUNT 5 +#define COL_BAL 6 // --- Checkbook -------------------------------------------------------------- @@ -225,4 +227,7 @@ QWidget *Checkbook::initTransactions() tranTable->setColumnWidthMode( COL_ID, QListView::Manual ); tranTable->setColumnWidth( COL_ID, 0); + tranTable->addColumn( tr( "SortDate" ) ); + tranTable->setColumnWidthMode( COL_SORTDATE, QListView::Manual ); + tranTable->setColumnWidth( COL_SORTDATE, 0); tranTable->addColumn( tr( "Num" ) ); tranTable->addColumn( tr( "Date" ) ); @@ -238,5 +243,7 @@ QWidget *Checkbook::initTransactions() QPEApplication::setStylusOperation( tranTable->viewport(), QPEApplication::RightOnHold ); connect( tranTable, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), - this, SLOT( slotEditTran() ) ); + this, SLOT( slotMenuTran(QListViewItem *, const QPoint &) ) ); + connect( tranTable, SIGNAL( doubleClicked( QListViewItem * ) ), + this, SLOT( slotEditTran() ) ); _sortCol=COL_ID; @@ -337,5 +344,5 @@ void Checkbook::loadCheckbook() } stramount.sprintf( "%s%.2f", _pCfg->getCurrencySymbol().latin1(), amount ); - ( void ) new CBListItem( tran, tranTable, tran->getIdStr(), tran->number(), tran->datestr(), tran->desc(), stramount ); + ( void ) new CBListItem( tran, tranTable, tran->getIdStr(), tran->datestr(false), tran->number(), tran->datestr(true), tran->desc(), stramount ); } @@ -359,4 +366,5 @@ void Checkbook::loadCheckbook() } + // --- adjustBalance ---------------------------------------------------------- void Checkbook::adjustBalance() @@ -397,4 +405,5 @@ void Checkbook::accept() } +// --- slotPasswordClicked ---------------------------------------------------- void Checkbook::slotPasswordClicked() { @@ -465,4 +474,5 @@ void Checkbook::slotStartingBalanceChanged( const QString &newbalance ) +// --- slotNewTran ------------------------------------------------------------ void Checkbook::slotNewTran() { @@ -471,5 +481,5 @@ void Checkbook::slotNewTran() traninfo->setDate(_dLastNew); - Transaction *currtran = new Transaction( this, info->name(), + Transaction *currtran = new Transaction( this, true, info->name(), traninfo, _pCfg ); @@ -485,6 +495,6 @@ void Checkbook::slotNewTran() amount = (traninfo->withdrawal() ? -1 : 1)*traninfo->amount(); stramount.sprintf( "%s%.2f", _pCfg->getCurrencySymbol().latin1(), amount ); - ( void ) new CBListItem( traninfo, tranTable, traninfo->getIdStr(), - traninfo->number(), traninfo->datestr(), traninfo->desc(), + ( void ) new CBListItem( traninfo, tranTable, traninfo->getIdStr(), traninfo->datestr(false), + traninfo->number(), traninfo->datestr(true), traninfo->desc(), stramount ); resort(); @@ -493,4 +503,12 @@ void Checkbook::slotNewTran() // save last date _dLastNew = traninfo->date(); + + // save description in list of payees, if not in there + QStringList *pLst=&_pCfg->getPayees(); + if( _pCfg->getSavePayees() && pLst->contains(traninfo->desc())==0 ) { + pLst->append( traninfo->desc() ); + pLst->sort(); + _pCfg->setDirty(true); + } } else @@ -500,4 +518,6 @@ void Checkbook::slotNewTran() } + +// --- slotEditTran ----------------------------------------------------------- void Checkbook::slotEditTran() { @@ -505,8 +525,8 @@ void Checkbook::slotEditTran() if ( !curritem ) return; - + TranInfo *traninfo=info->findTransaction( curritem->text(COL_ID) ); - Transaction *currtran = new Transaction( this, info->name(), + Transaction *currtran = new Transaction( this, false, info->name(), traninfo, _pCfg ); @@ -515,5 +535,6 @@ void Checkbook::slotEditTran() { curritem->setText( COL_NUM, traninfo->number() ); - curritem->setText( COL_DATE, traninfo->datestr() ); + curritem->setText( COL_SORTDATE, traninfo->datestr(false) ); + curritem->setText( COL_DATE, traninfo->datestr(true) ); curritem->setText( COL_DESC, traninfo->desc() ); @@ -528,4 +549,12 @@ void Checkbook::slotEditTran() resort(); adjustBalance(); + + // save description in list of payees, if not in there + QStringList *pLst=&_pCfg->getPayees(); + if( _pCfg->getSavePayees() && pLst->contains(traninfo->desc())==0 ) { + pLst->append( traninfo->desc() ); + pLst->sort(); + _pCfg->setDirty(true); + } } @@ -533,4 +562,32 @@ void Checkbook::slotEditTran() } +// --- slotMenuTran ----------------------------------------------------------- +void Checkbook::slotMenuTran(QListViewItem *item, const QPoint &pnt) +{ + // active item? + if( !item ) + return; + + // Display menu + QPopupMenu m; + m.insertItem( QWidget::tr( "Edit" ), 1 ); + m.insertItem( QWidget::tr( "New" ), 2 ); + m.insertItem( QWidget::tr( "Delete" ), 3 ); + int r = m.exec( pnt ); + switch(r) { + case 1: + slotEditTran(); + break; + case 2: + slotNewTran(); + break; + case 3: + slotDeleteTran(); + break; + } +} + + +// --- slotDeleteTran --------------------------------------------------------- void Checkbook::slotDeleteTran() { @@ -592,5 +649,5 @@ void Checkbook::drawBalanceChart() if ( i == 1 || i == count / 2 || i == count ) { - label = tran->datestr(); + label = tran->datestr(true); } else @@ -667,4 +724,5 @@ void CBListItem::paintCell( QPainter *p, const QColorGroup &cg, int column, int } +// --- CBListItem::isAltBackground -------------------------------------------- bool CBListItem::isAltBackground() { @@ -724,7 +782,8 @@ void Checkbook::slotSortChanged( const QString &selc ) _sortCol=COL_NUM; } else if( selc==tr("Date") ) { - _sortCol=COL_DATE; + _sortCol=COL_SORTDATE; } info->setSortOrder( selc ); resort(); } + |