summaryrefslogtreecommitdiff
authorzecke <zecke>2004-10-26 21:28:59 (UTC)
committer zecke <zecke>2004-10-26 21:28:59 (UTC)
commitae5855babec6e46802be89ee408d26a2cbbb1981 (patch) (unidiff)
tree6aab434ceb2831741b997b93f053e1843c3d59ec
parentc95aeb8fd283fe9d2f220209e696726120857257 (diff)
downloadopie-ae5855babec6e46802be89ee408d26a2cbbb1981.zip
opie-ae5855babec6e46802be89ee408d26a2cbbb1981.tar.gz
opie-ae5855babec6e46802be89ee408d26a2cbbb1981.tar.bz2
-Remove usage of latin1() as a possible fix to #1471
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/checkbook/checkbook.cpp18
-rw-r--r--noncore/apps/checkbook/mainwindow.cpp6
2 files changed, 17 insertions, 7 deletions
diff --git a/noncore/apps/checkbook/checkbook.cpp b/noncore/apps/checkbook/checkbook.cpp
index 706d970..44d3764 100644
--- a/noncore/apps/checkbook/checkbook.cpp
+++ b/noncore/apps/checkbook/checkbook.cpp
@@ -241,400 +241,408 @@ QWidget *Checkbook::initTransactions()
241 layout->addMultiCellWidget( tranTable, 1, 1, 0, 2 ); 241 layout->addMultiCellWidget( tranTable, 1, 1, 0, 2 );
242 QPEApplication::setStylusOperation( tranTable->viewport(), QPEApplication::RightOnHold ); 242 QPEApplication::setStylusOperation( tranTable->viewport(), QPEApplication::RightOnHold );
243 connect( tranTable, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), 243 connect( tranTable, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ),
244 this, SLOT( slotMenuTran(QListViewItem*,const QPoint&) ) ); 244 this, SLOT( slotMenuTran(QListViewItem*,const QPoint&) ) );
245 connect( tranTable, SIGNAL( doubleClicked(QListViewItem*) ), 245 connect( tranTable, SIGNAL( doubleClicked(QListViewItem*) ),
246 this, SLOT( slotEditTran() ) ); 246 this, SLOT( slotEditTran() ) );
247 _sortCol=COL_ID; 247 _sortCol=COL_ID;
248 248
249 // Buttons 249 // Buttons
250 QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), control ); 250 QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), control );
251 QWhatsThis::add( btn, tr( "Click here to add a new transaction." ) ); 251 QWhatsThis::add( btn, tr( "Click here to add a new transaction." ) );
252 connect( btn, SIGNAL( clicked() ), this, SLOT( slotNewTran() ) ); 252 connect( btn, SIGNAL( clicked() ), this, SLOT( slotNewTran() ) );
253 layout->addWidget( btn, 2, 0 ); 253 layout->addWidget( btn, 2, 0 );
254 254
255 btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), control ); 255 btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), control );
256 QWhatsThis::add( btn, tr( "Select a transaction and then click here to edit it." ) ); 256 QWhatsThis::add( btn, tr( "Select a transaction and then click here to edit it." ) );
257 connect( btn, SIGNAL( clicked() ), this, SLOT( slotEditTran() ) ); 257 connect( btn, SIGNAL( clicked() ), this, SLOT( slotEditTran() ) );
258 layout->addWidget( btn, 2, 1 ); 258 layout->addWidget( btn, 2, 1 );
259 259
260 btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), control ); 260 btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), control );
261 QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) ); 261 QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) );
262 connect( btn, SIGNAL( clicked() ), this, SLOT( slotDeleteTran() ) ); 262 connect( btn, SIGNAL( clicked() ), this, SLOT( slotDeleteTran() ) );
263 layout->addWidget( btn, 2, 2 ); 263 layout->addWidget( btn, 2, 2 );
264 264
265 return( control ); 265 return( control );
266} 266}
267 267
268 268
269// --- initCharts ------------------------------------------------------------- 269// --- initCharts -------------------------------------------------------------
270QWidget *Checkbook::initCharts() 270QWidget *Checkbook::initCharts()
271{ 271{
272 graphInfo = 0x0; 272 graphInfo = 0x0;
273 273
274 QWidget *control = new QWidget( mainWidget, tr("Charts") ); 274 QWidget *control = new QWidget( mainWidget, tr("Charts") );
275 275
276 QGridLayout *layout = new QGridLayout( control ); 276 QGridLayout *layout = new QGridLayout( control );
277 layout->setSpacing( 2 ); 277 layout->setSpacing( 2 );
278 layout->setMargin( 4 ); 278 layout->setMargin( 4 );
279 279
280 graphWidget = new Graph( control ); 280 graphWidget = new Graph( control );
281 QWhatsThis::add( graphWidget, tr( "Select the desired chart below and then click on the Draw button." ) ); 281 QWhatsThis::add( graphWidget, tr( "Select the desired chart below and then click on the Draw button." ) );
282 layout->addMultiCellWidget( graphWidget, 0, 0, 0, 2 ); 282 layout->addMultiCellWidget( graphWidget, 0, 0, 0, 2 );
283 283
284 graphList = new QComboBox( control ); 284 graphList = new QComboBox( control );
285 QWhatsThis::add( graphList, tr( "Click here to select the desired chart type." ) ); 285 QWhatsThis::add( graphList, tr( "Click here to select the desired chart type." ) );
286 graphList->insertItem( tr( "Account balance" ) ); 286 graphList->insertItem( tr( "Account balance" ) );
287 graphList->insertItem( tr( "Withdrawals by category" ) ); 287 graphList->insertItem( tr( "Withdrawals by category" ) );
288 graphList->insertItem( tr( "Deposits by category" ) ); 288 graphList->insertItem( tr( "Deposits by category" ) );
289 289
290 layout->addMultiCellWidget( graphList, 1, 1, 0, 1 ); 290 layout->addMultiCellWidget( graphList, 1, 1, 0, 1 );
291 291
292 QPushButton *btn = new QPushButton( Resource::loadPixmap( "checkbook/drawbtn" ), tr( "Draw" ), control ); 292 QPushButton *btn = new QPushButton( Resource::loadPixmap( "checkbook/drawbtn" ), tr( "Draw" ), control );
293 QWhatsThis::add( btn, tr( "Click here to draw the selected chart." ) ); 293 QWhatsThis::add( btn, tr( "Click here to draw the selected chart." ) );
294 connect( btn, SIGNAL( clicked() ), this, SLOT( slotDrawGraph() ) ); 294 connect( btn, SIGNAL( clicked() ), this, SLOT( slotDrawGraph() ) );
295 layout->addWidget( btn, 1, 2 ); 295 layout->addWidget( btn, 1, 2 );
296 296
297 return control; 297 return control;
298} 298}
299 299
300// --- loadCheckbook ---------------------------------------------------------- 300// --- loadCheckbook ----------------------------------------------------------
301void Checkbook::loadCheckbook() 301void Checkbook::loadCheckbook()
302{ 302{
303 if ( !info ) 303 if ( !info )
304 { 304 {
305 return; 305 return;
306 } 306 }
307 307
308 tranList = info->transactions(); 308 tranList = info->transactions();
309 309
310 passwordCB->setChecked( !info->password().isNull() ); 310 passwordCB->setChecked( !info->password().isNull() );
311 nameEdit->setText( info->name() ); 311 nameEdit->setText( info->name() );
312 QString temptext = info->type(); 312 QString temptext = info->type();
313 int i = typeList->count(); 313 int i = typeList->count();
314 while ( i > 0 ) 314 while ( i > 0 )
315 { 315 {
316 i--; 316 i--;
317 typeList->setCurrentItem( i ); 317 typeList->setCurrentItem( i );
318 if ( typeList->currentText() == temptext ) 318 if ( typeList->currentText() == temptext )
319 { 319 {
320 break; 320 break;
321 } 321 }
322 } 322 }
323 if( i<=0 ) { 323 if( i<=0 ) {
324 typeList->insertItem( temptext, 0 ); 324 typeList->insertItem( temptext, 0 );
325 typeList->setCurrentItem(0); 325 typeList->setCurrentItem(0);
326 } 326 }
327 bankEdit->setText( info->bank() ); 327 bankEdit->setText( info->bank() );
328 acctNumEdit->setText( info->account() ); 328 acctNumEdit->setText( info->account() );
329 pinNumEdit->setText( info->pin() ); 329 pinNumEdit->setText( info->pin() );
330 temptext.setNum( info->startingBalance(), 'f', 2 ); 330 temptext.setNum( info->startingBalance(), 'f', 2 );
331 balanceEdit->setText( temptext ); 331 balanceEdit->setText( temptext );
332 notesEdit->setText( info->notes() ); 332 notesEdit->setText( info->notes() );
333 333
334 // Load transactions 334 // Load transactions
335 float amount; 335 float amount;
336 QString stramount; 336 QString stramount;
337 QString symbol = _pCfg->getCurrencySymbol();
337 for ( TranInfo *tran = tranList->first(); tran; tran = tranList->next() ) 338 for ( TranInfo *tran = tranList->first(); tran; tran = tranList->next() )
338 { 339 {
339 amount = tran->amount(); 340 amount = tran->amount();
340 if ( tran->withdrawal() ) 341 if ( tran->withdrawal() )
341 { 342 {
342 amount *= -1; 343 amount *= -1;
343 } 344 }
344 stramount.sprintf( "%s%.2f", _pCfg->getCurrencySymbol().latin1(), amount ); 345 stramount.sprintf( "%.2f", amount );
346 stramount.prepend( symbol );
345 ( void ) new CBListItem( tran, tranTable, tran->getIdStr(), tran->datestr(false), tran->number(), tran->datestr(true), tran->desc(), stramount ); 347 ( void ) new CBListItem( tran, tranTable, tran->getIdStr(), tran->datestr(false), tran->number(), tran->datestr(true), tran->desc(), stramount );
346 } 348 }
347 349
348 // set sort order 350 // set sort order
349 bool bOk=false; 351 bool bOk=false;
350 for(int i=0; i<_cbSortType->count(); i++) { 352 for(int i=0; i<_cbSortType->count(); i++) {
351 if( _cbSortType->text(i)==info->getSortOrder() ) { 353 if( _cbSortType->text(i)==info->getSortOrder() ) {
352 _cbSortType->setCurrentItem(i); 354 _cbSortType->setCurrentItem(i);
353 slotSortChanged( info->getSortOrder() ); 355 slotSortChanged( info->getSortOrder() );
354 bOk=true; 356 bOk=true;
355 break; 357 break;
356 } 358 }
357 } 359 }
358 if( !bOk ) { 360 if( !bOk ) {
359 _cbSortType->setCurrentItem(0); 361 _cbSortType->setCurrentItem(0);
360 slotSortChanged( _cbSortType->currentText() ); 362 slotSortChanged( _cbSortType->currentText() );
361 } 363 }
362 364
363 // calc running balance 365 // calc running balance
364 adjustBalance(); 366 adjustBalance();
365} 367}
366 368
367 369
368// --- adjustBalance ---------------------------------------------------------- 370// --- adjustBalance ----------------------------------------------------------
369void Checkbook::adjustBalance() 371void Checkbook::adjustBalance()
370{ 372{
371 // update running balance in register 373 // update running balance in register
372 QString sRunning; 374 QString sRunning;
375 QString symbol = _pCfg->getCurrencySymbol();
373 float bal=info->startingBalance(); 376 float bal=info->startingBalance();
377
374 for(CBListItem *item=(CBListItem *)tranTable->firstChild(); item; item=(CBListItem *)item->nextSibling() ) { 378 for(CBListItem *item=(CBListItem *)tranTable->firstChild(); item; item=(CBListItem *)item->nextSibling() ) {
375 TranInfo *tran=item->getTranInfo(); 379 TranInfo *tran=item->getTranInfo();
376 bal=bal + (tran->withdrawal() ? -1 : 1)*tran->amount() - tran->fee(); 380 bal=bal + (tran->withdrawal() ? -1 : 1)*tran->amount() - tran->fee();
377 sRunning.sprintf( "%s%.2f", _pCfg->getCurrencySymbol().latin1(), bal ); 381 sRunning.sprintf( "%.2f", bal );
382 sRunning.prepend(symbol);
378 item->setText( COL_BAL, sRunning); 383 item->setText( COL_BAL, sRunning);
379 } 384 }
380} 385}
381 386
382// --- resort ----------------------------------------------------------------- 387// --- resort -----------------------------------------------------------------
383void Checkbook::resort() 388void Checkbook::resort()
384{ 389{
385 tranTable->setSorting(_sortCol); 390 tranTable->setSorting(_sortCol);
386 tranTable->sort(); 391 tranTable->sort();
387 tranTable->setSorting(-1); 392 tranTable->setSorting(-1);
388} 393}
389 394
390 395
391// --- accept ----------------------------------------------------------------- 396// --- accept -----------------------------------------------------------------
392void Checkbook::accept() 397void Checkbook::accept()
393{ 398{
394 info->setName( nameEdit->text() ); 399 info->setName( nameEdit->text() );
395 info->setType( typeList->currentText() ); 400 info->setType( typeList->currentText() );
396 info->setBank( bankEdit->text() ); 401 info->setBank( bankEdit->text() );
397 info->setAccount( acctNumEdit->text() ); 402 info->setAccount( acctNumEdit->text() );
398 info->setPin( pinNumEdit->text() ); 403 info->setPin( pinNumEdit->text() );
399 bool ok; 404 bool ok;
400 info->setStartingBalance( balanceEdit->text().toFloat( &ok ) ); 405 info->setStartingBalance( balanceEdit->text().toFloat( &ok ) );
401 info->setNotes( notesEdit->text() ); 406 info->setNotes( notesEdit->text() );
402 407
403 QDialog::accept(); 408 QDialog::accept();
404} 409}
405 410
406// --- slotPasswordClicked ---------------------------------------------------- 411// --- slotPasswordClicked ----------------------------------------------------
407void Checkbook::slotPasswordClicked() 412void Checkbook::slotPasswordClicked()
408{ 413{
409 if ( info->password().isNull() && passwordCB->isChecked() ) 414 if ( info->password().isNull() && passwordCB->isChecked() )
410 { 415 {
411 Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) ); 416 Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) );
412 if ( pw->exec() != QDialog::Accepted ) 417 if ( pw->exec() != QDialog::Accepted )
413 { 418 {
414 passwordCB->setChecked( FALSE ); 419 passwordCB->setChecked( FALSE );
415 delete pw; 420 delete pw;
416 return; 421 return;
417 } 422 }
418 info->setPassword( pw->password ); 423 info->setPassword( pw->password );
419 delete pw; 424 delete pw;
420 425
421 pw = new Password( this, tr( "Confirm password" ), tr( "Please confirm your password:" ) ); 426 pw = new Password( this, tr( "Confirm password" ), tr( "Please confirm your password:" ) );
422 if ( pw->exec() != QDialog::Accepted || pw->password != info->password() ) 427 if ( pw->exec() != QDialog::Accepted || pw->password != info->password() )
423 { 428 {
424 passwordCB->setChecked( FALSE ); 429 passwordCB->setChecked( FALSE );
425 info->setPassword( QString::null ); 430 info->setPassword( QString::null );
426 } 431 }
427 432
428 delete pw; 433 delete pw;
429 } 434 }
430 else if ( !info->password().isNull() && !passwordCB->isChecked() ) 435 else if ( !info->password().isNull() && !passwordCB->isChecked() )
431 { 436 {
432 Password *pw = new Password( this, tr( "Enter password" ), 437 Password *pw = new Password( this, tr( "Enter password" ),
433 tr( "Please enter your password to confirm removal of password protection:" ) ); 438 tr( "Please enter your password to confirm removal of password protection:" ) );
434 if ( pw->exec() == QDialog::Accepted && pw->password == info->password() ) 439 if ( pw->exec() == QDialog::Accepted && pw->password == info->password() )
435 { 440 {
436 info->setPassword( QString::null ); 441 info->setPassword( QString::null );
437 delete pw; 442 delete pw;
438 return; 443 return;
439 } 444 }
440 else 445 else
441 { 446 {
442 passwordCB->setChecked( TRUE ); 447 passwordCB->setChecked( TRUE );
443 } 448 }
444 449
445 delete pw; 450 delete pw;
446 } 451 }
447} 452}
448 453
449void Checkbook::slotNameChanged( const QString &newname ) 454void Checkbook::slotNameChanged( const QString &newname )
450{ 455{
451 info->setName( newname ); 456 info->setName( newname );
452 457
453 // TODO - need filedir 458 // TODO - need filedir
454// QString namestr = filedir; 459// QString namestr = filedir;
455// namestr.append( newname ); 460// namestr.append( newname );
456// namestr.append( ".qcb" ); 461// namestr.append( ".qcb" );
457// info->setFilename( namestr ); 462// info->setFilename( namestr );
458 463
459 QString namestr = newname; 464 QString namestr = newname;
460 namestr.append( " - " ); 465 namestr.append( " - " );
461 namestr.append( tr( "Checkbook" ) ); 466 namestr.append( tr( "Checkbook" ) );
462 setCaption( namestr ); 467 setCaption( namestr );
463} 468}
464 469
465 470
466// ---slotStartingBalanceChanged ---------------------------------------------- 471// ---slotStartingBalanceChanged ----------------------------------------------
467void Checkbook::slotStartingBalanceChanged( const QString &newbalance ) 472void Checkbook::slotStartingBalanceChanged( const QString &newbalance )
468{ 473{
469 bool ok; 474 bool ok;
470 info->setStartingBalance( newbalance.toFloat( &ok ) ); 475 info->setStartingBalance( newbalance.toFloat( &ok ) );
471 adjustBalance(); 476 adjustBalance();
472} 477}
473 478
474 479
475// --- slotNewTran ------------------------------------------------------------ 480// --- slotNewTran ------------------------------------------------------------
476void Checkbook::slotNewTran() 481void Checkbook::slotNewTran()
477{ 482{
478 TranInfo *traninfo = new TranInfo( info->getNextNumber() ); 483 TranInfo *traninfo = new TranInfo( info->getNextNumber() );
479 if( !_dLastNew.isNull() ) 484 if( !_dLastNew.isNull() )
480 traninfo->setDate(_dLastNew); 485 traninfo->setDate(_dLastNew);
481 486
482 Transaction *currtran = new Transaction( this, true, info->name(), 487 Transaction *currtran = new Transaction( this, true, info->name(),
483 traninfo, 488 traninfo,
484 _pCfg ); 489 _pCfg );
490 QString symbol = _pCfg->getCurrencySymbol();
485 if ( QPEApplication::execDialog( currtran ) == QDialog::Accepted ) 491 if ( QPEApplication::execDialog( currtran ) == QDialog::Accepted )
486 { 492 {
487 // Add to transaction list 493 // Add to transaction list
488 info->addTransaction( traninfo ); 494 info->addTransaction( traninfo );
489 495
490 // Add to transaction table 496 // Add to transaction table
491 float amount; 497 float amount;
492 QString stramount; 498 QString stramount;
493 amount = (traninfo->withdrawal() ? -1 : 1)*traninfo->amount(); 499 amount = (traninfo->withdrawal() ? -1 : 1)*traninfo->amount();
494 stramount.sprintf( "%s%.2f", _pCfg->getCurrencySymbol().latin1(), amount ); 500 stramount.sprintf( "%.2f", amount );
501 stramount.prepend(symbol);
495 ( void ) new CBListItem( traninfo, tranTable, traninfo->getIdStr(), traninfo->datestr(false), 502 ( void ) new CBListItem( traninfo, tranTable, traninfo->getIdStr(), traninfo->datestr(false),
496 traninfo->number(), traninfo->datestr(true), traninfo->desc(), 503 traninfo->number(), traninfo->datestr(true), traninfo->desc(),
497 stramount ); 504 stramount );
498 resort(); 505 resort();
499 adjustBalance(); 506 adjustBalance();
500 507
501 // save last date 508 // save last date
502 _dLastNew = traninfo->date(); 509 _dLastNew = traninfo->date();
503 510
504 // save description in list of payees, if not in there 511 // save description in list of payees, if not in there
505 QStringList *pLst=&_pCfg->getPayees(); 512 QStringList *pLst=&_pCfg->getPayees();
506 if( _pCfg->getSavePayees() && pLst->contains(traninfo->desc())==0 ) { 513 if( _pCfg->getSavePayees() && pLst->contains(traninfo->desc())==0 ) {
507 pLst->append( traninfo->desc() ); 514 pLst->append( traninfo->desc() );
508 pLst->sort(); 515 pLst->sort();
509 _pCfg->setDirty(true); 516 _pCfg->setDirty(true);
510 } 517 }
511 } 518 }
512 else 519 else
513 { 520 {
514 delete traninfo; 521 delete traninfo;
515 } 522 }
516} 523}
517 524
518 525
519// --- slotEditTran ----------------------------------------------------------- 526// --- slotEditTran -----------------------------------------------------------
520void Checkbook::slotEditTran() 527void Checkbook::slotEditTran()
521{ 528{
522 QListViewItem *curritem = tranTable->currentItem(); 529 QListViewItem *curritem = tranTable->currentItem();
523 if ( !curritem ) 530 if ( !curritem )
524 return; 531 return;
525 532
526 TranInfo *traninfo=info->findTransaction( curritem->text(COL_ID) ); 533 TranInfo *traninfo=info->findTransaction( curritem->text(COL_ID) );
527 534
528 Transaction *currtran = new Transaction( this, false, info->name(), 535 Transaction *currtran = new Transaction( this, false, info->name(),
529 traninfo, 536 traninfo,
530 _pCfg ); 537 _pCfg );
531 if ( QPEApplication::execDialog( currtran ) == QDialog::Accepted ) 538 if ( QPEApplication::execDialog( currtran ) == QDialog::Accepted )
532 { 539 {
533 curritem->setText( COL_NUM, traninfo->number() ); 540 curritem->setText( COL_NUM, traninfo->number() );
534 curritem->setText( COL_SORTDATE, traninfo->datestr(false) ); 541 curritem->setText( COL_SORTDATE, traninfo->datestr(false) );
535 curritem->setText( COL_DATE, traninfo->datestr(true) ); 542 curritem->setText( COL_DATE, traninfo->datestr(true) );
536 curritem->setText( COL_DESC, traninfo->desc() ); 543 curritem->setText( COL_DESC, traninfo->desc() );
537 544
538 float amount = traninfo->amount(); 545 float amount = traninfo->amount();
539 if ( traninfo->withdrawal() ) 546 if ( traninfo->withdrawal() )
540 { 547 {
541 amount *= -1; 548 amount *= -1;
542 } 549 }
543 QString stramount; 550 QString stramount;
544 stramount.sprintf( "%s%.2f", _pCfg->getCurrencySymbol().latin1(), amount ); 551 stramount.sprintf( "%.2f", amount );
552 stramount.prepend( _pCfg->getCurrencySymbol() );
545 curritem->setText( COL_AMOUNT, stramount ); 553 curritem->setText( COL_AMOUNT, stramount );
546 resort(); 554 resort();
547 adjustBalance(); 555 adjustBalance();
548 556
549 // save description in list of payees, if not in there 557 // save description in list of payees, if not in there
550 QStringList *pLst=&_pCfg->getPayees(); 558 QStringList *pLst=&_pCfg->getPayees();
551 if( _pCfg->getSavePayees() && pLst->contains(traninfo->desc())==0 ) { 559 if( _pCfg->getSavePayees() && pLst->contains(traninfo->desc())==0 ) {
552 pLst->append( traninfo->desc() ); 560 pLst->append( traninfo->desc() );
553 pLst->sort(); 561 pLst->sort();
554 _pCfg->setDirty(true); 562 _pCfg->setDirty(true);
555 } 563 }
556 } 564 }
557 565
558 delete currtran; 566 delete currtran;
559} 567}
560 568
561// --- slotMenuTran ----------------------------------------------------------- 569// --- slotMenuTran -----------------------------------------------------------
562void Checkbook::slotMenuTran(QListViewItem *item, const QPoint &pnt) 570void Checkbook::slotMenuTran(QListViewItem *item, const QPoint &pnt)
563{ 571{
564 // active item? 572 // active item?
565 if( !item ) 573 if( !item )
566 return; 574 return;
567 575
568 // Display menu 576 // Display menu
569 QPopupMenu m; 577 QPopupMenu m;
570 m.insertItem( QWidget::tr( "Edit" ), 1 ); 578 m.insertItem( QWidget::tr( "Edit" ), 1 );
571 m.insertItem( QWidget::tr( "New" ), 2 ); 579 m.insertItem( QWidget::tr( "New" ), 2 );
572 m.insertItem( QWidget::tr( "Delete" ), 3 ); 580 m.insertItem( QWidget::tr( "Delete" ), 3 );
573 int r = m.exec( pnt ); 581 int r = m.exec( pnt );
574 switch(r) { 582 switch(r) {
575 case 1: 583 case 1:
576 slotEditTran(); 584 slotEditTran();
577 break; 585 break;
578 case 2: 586 case 2:
579 slotNewTran(); 587 slotNewTran();
580 break; 588 break;
581 case 3: 589 case 3:
582 slotDeleteTran(); 590 slotDeleteTran();
583 break; 591 break;
584 } 592 }
585} 593}
586 594
587 595
588// --- slotDeleteTran --------------------------------------------------------- 596// --- slotDeleteTran ---------------------------------------------------------
589void Checkbook::slotDeleteTran() 597void Checkbook::slotDeleteTran()
590{ 598{
591 QListViewItem *curritem = tranTable->currentItem(); 599 QListViewItem *curritem = tranTable->currentItem();
592 if ( !curritem ) 600 if ( !curritem )
593 return; 601 return;
594 602
595 TranInfo *traninfo = info->findTransaction( curritem->text(COL_ID) ); 603 TranInfo *traninfo = info->findTransaction( curritem->text(COL_ID) );
596 604
597 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete transaction" ), traninfo->desc() ) ) 605 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete transaction" ), traninfo->desc() ) )
598 { 606 {
599 info->removeTransaction( traninfo ); 607 info->removeTransaction( traninfo );
600 delete curritem; 608 delete curritem;
601 adjustBalance(); 609 adjustBalance();
602 } 610 }
603} 611}
604 612
605void Checkbook::slotDrawGraph() 613void Checkbook::slotDrawGraph()
606{ 614{
607 if ( graphInfo ) 615 if ( graphInfo )
608 { 616 {
609 delete graphInfo; 617 delete graphInfo;
610 } 618 }
611 619
612 switch ( graphList->currentItem() ) 620 switch ( graphList->currentItem() )
613 { 621 {
614 case 0 : drawBalanceChart(); 622 case 0 : drawBalanceChart();
615 break; 623 break;
616 case 1 : drawCategoryChart( TRUE ); 624 case 1 : drawCategoryChart( TRUE );
617 break; 625 break;
618 case 2 : drawCategoryChart( FALSE ); 626 case 2 : drawCategoryChart( FALSE );
619 break; 627 break;
620 }; 628 };
621 629
622 graphWidget->setGraphInfo( graphInfo ); 630 graphWidget->setGraphInfo( graphInfo );
623 graphWidget->drawGraph( TRUE ); 631 graphWidget->drawGraph( TRUE );
624} 632}
625 633
626void Checkbook::drawBalanceChart() 634void Checkbook::drawBalanceChart()
627{ 635{
628 DataPointList *list = new DataPointList(); 636 DataPointList *list = new DataPointList();
629 637
630 float balance = info->startingBalance(); 638 float balance = info->startingBalance();
631 float amount; 639 float amount;
632 QString label; 640 QString label;
633 int i = 0; 641 int i = 0;
634 int count = tranList->count(); 642 int count = tranList->count();
635 643
636 for ( TranInfo *tran = tranList->first(); tran; tran = tranList->next() ) 644 for ( TranInfo *tran = tranList->first(); tran; tran = tranList->next() )
637 { 645 {
638 i++; 646 i++;
639 balance -= tran->fee(); 647 balance -= tran->fee();
640 amount = tran->amount(); 648 amount = tran->amount();
diff --git a/noncore/apps/checkbook/mainwindow.cpp b/noncore/apps/checkbook/mainwindow.cpp
index ce15e3e..c7ffa7c 100644
--- a/noncore/apps/checkbook/mainwindow.cpp
+++ b/noncore/apps/checkbook/mainwindow.cpp
@@ -100,259 +100,261 @@ MainWindow::MainWindow( QWidget* parent, const char* name, WFlags /*fl*/ )
100 // Load Checkbook selection list 100 // Load Checkbook selection list
101 checkbooks = new CBInfoList(); 101 checkbooks = new CBInfoList();
102 102
103 QDir checkdir( cbDir ); 103 QDir checkdir( cbDir );
104 if (checkdir.exists() == true) 104 if (checkdir.exists() == true)
105 { 105 {
106 QStringList cblist = checkdir.entryList( "*.qcb", QDir::Files|QDir::Readable|QDir::Writable, 106 QStringList cblist = checkdir.entryList( "*.qcb", QDir::Files|QDir::Readable|QDir::Writable,
107 QDir::Time ); 107 QDir::Time );
108 CBInfo *cb = 0x0; 108 CBInfo *cb = 0x0;
109 QString filename; 109 QString filename;
110 110
111 for ( QStringList::Iterator it = cblist.begin(); it != cblist.end(); it++ ) 111 for ( QStringList::Iterator it = cblist.begin(); it != cblist.end(); it++ )
112 { 112 {
113 filename = cbDir; 113 filename = cbDir;
114 filename.append( (*it) ); 114 filename.append( (*it) );
115 115
116 cb = new CBInfo( (*it).remove( (*it).find('.'), (*it).length() ), filename ); 116 cb = new CBInfo( (*it).remove( (*it).find('.'), (*it).length() ), filename );
117 checkbooks->inSort( cb ); 117 checkbooks->inSort( cb );
118 } 118 }
119 } 119 }
120 120
121 // Build Checkbook selection list control 121 // Build Checkbook selection list control
122 cbList = 0x0; 122 cbList = 0x0;
123 buildList(); 123 buildList();
124 124
125 // open last book? 125 // open last book?
126 if( _cfg.isOpenLastBook() ) { 126 if( _cfg.isOpenLastBook() ) {
127 this->show(); 127 this->show();
128 this->showMaximized(); 128 this->showMaximized();
129 QListViewItem *itm=cbList->firstChild(); 129 QListViewItem *itm=cbList->firstChild();
130 while( itm ) { 130 while( itm ) {
131 if( itm->text(posName)==_cfg.getLastBook() ) { 131 if( itm->text(posName)==_cfg.getLastBook() ) {
132 openBook( itm ); 132 openBook( itm );
133 break; 133 break;
134 } 134 }
135 itm=itm->nextSibling(); 135 itm=itm->nextSibling();
136 } 136 }
137 } 137 }
138} 138}
139 139
140 140
141// --- ~MainWindow ------------------------------------------------------------ 141// --- ~MainWindow ------------------------------------------------------------
142MainWindow::~MainWindow() 142MainWindow::~MainWindow()
143{ 143{
144 writeConfig(); 144 writeConfig();
145} 145}
146 146
147 147
148// --- buildList -------------------------------------------------------------- 148// --- buildList --------------------------------------------------------------
149void MainWindow::buildList() 149void MainWindow::buildList()
150{ 150{
151 if ( cbList ) 151 if ( cbList )
152 delete cbList; 152 delete cbList;
153 153
154 cbList = new QListView( this ); 154 cbList = new QListView( this );
155 QWhatsThis::add( cbList, tr( "This is a listing of all checkbooks currently available." ) ); 155 QWhatsThis::add( cbList, tr( "This is a listing of all checkbooks currently available." ) );
156 156
157 if ( _cfg.getShowLocks() ) 157 if ( _cfg.getShowLocks() )
158 { 158 {
159 cbList->addColumn( Resource::loadIconSet( "locked" ), "", 24 ); 159 cbList->addColumn( Resource::loadIconSet( "locked" ), "", 24 );
160 posName = 1; 160 posName = 1;
161 } 161 }
162 else 162 else
163 { 163 {
164 posName = 0; 164 posName = 0;
165 } 165 }
166 cbList->addColumn( tr( "Checkbook Name" ) ); 166 cbList->addColumn( tr( "Checkbook Name" ) );
167 if ( _cfg.getShowBalances() ) 167 if ( _cfg.getShowBalances() )
168 { 168 {
169 int colnum = cbList->addColumn( tr( "Balance" ) ); 169 int colnum = cbList->addColumn( tr( "Balance" ) );
170 cbList->setColumnAlignment( colnum, Qt::AlignRight ); 170 cbList->setColumnAlignment( colnum, Qt::AlignRight );
171 } 171 }
172 cbList->setAllColumnsShowFocus( TRUE ); 172 cbList->setAllColumnsShowFocus( TRUE );
173 cbList->setSorting( posName ); 173 cbList->setSorting( posName );
174 QPEApplication::setStylusOperation( cbList->viewport(), QPEApplication::RightOnHold ); 174 QPEApplication::setStylusOperation( cbList->viewport(), QPEApplication::RightOnHold );
175 connect( cbList, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), 175 connect( cbList, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ),
176 this, SLOT( slotEdit() ) ); 176 this, SLOT( slotEdit() ) );
177 setCentralWidget( cbList ); 177 setCentralWidget( cbList );
178 178
179 for ( CBInfo *cb = checkbooks->first(); cb; cb = checkbooks->next() ) 179 for ( CBInfo *cb = checkbooks->first(); cb; cb = checkbooks->next() )
180 { 180 {
181 addCheckbook( cb ); 181 addCheckbook( cb );
182 } 182 }
183} 183}
184 184
185void MainWindow::addCheckbook( CBInfo *cb ) 185void MainWindow::addCheckbook( CBInfo *cb )
186{ 186{
187 QListViewItem *lvi = new QListViewItem( cbList ); 187 QListViewItem *lvi = new QListViewItem( cbList );
188 if ( _cfg.getShowLocks() && !cb->password().isNull() ) 188 if ( _cfg.getShowLocks() && !cb->password().isNull() )
189 { 189 {
190 lvi->setPixmap( 0, lockIcon ); 190 lvi->setPixmap( 0, lockIcon );
191 } 191 }
192 lvi->setText( posName, cb->name() ); 192 lvi->setText( posName, cb->name() );
193 if ( _cfg.getShowBalances() ) 193 if ( _cfg.getShowBalances() )
194 { 194 {
195 QString balance; 195 QString balance;
196 balance.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); 196 balance.sprintf( "%.2f", cb->balance() );
197 balance.prepend( _cfg.getCurrencySymbol() );
197 lvi->setText( posName + 1, balance ); 198 lvi->setText( posName + 1, balance );
198 } 199 }
199} 200}
200 201
201void MainWindow::buildFilename( const QString &name ) 202void MainWindow::buildFilename( const QString &name )
202{ 203{
203 tempFilename = cbDir; 204 tempFilename = cbDir;
204 tempFilename.append( name ); 205 tempFilename.append( name );
205 tempFilename.append( ".qcb" ); 206 tempFilename.append( ".qcb" );
206} 207}
207 208
208void MainWindow::slotNew() 209void MainWindow::slotNew()
209{ 210{
210 CBInfo *cb = new CBInfo(); 211 CBInfo *cb = new CBInfo();
211 212
212 Checkbook *currcb = new Checkbook( this, cb, &_cfg ); 213 Checkbook *currcb = new Checkbook( this, cb, &_cfg );
213 if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted ) 214 if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted )
214 { 215 {
215 // Save new checkbook 216 // Save new checkbook
216 buildFilename( cb->name() ); 217 buildFilename( cb->name() );
217 _cfg.setLastBook( cb->name() ); 218 _cfg.setLastBook( cb->name() );
218 cb->setFilename( tempFilename ); 219 cb->setFilename( tempFilename );
219 cb->write(); 220 cb->write();
220 221
221 // Add to listbox 222 // Add to listbox
222 checkbooks->inSort( cb ); 223 checkbooks->inSort( cb );
223 addCheckbook( cb ); 224 addCheckbook( cb );
224 } 225 }
225 delete currcb; 226 delete currcb;
226} 227}
227 228
228// --- slotEdit --------------------------------------------------------------- 229// --- slotEdit ---------------------------------------------------------------
229void MainWindow::slotEdit() 230void MainWindow::slotEdit()
230{ 231{
231 // get name and open it 232 // get name and open it
232 QListViewItem *curritem = cbList->currentItem(); 233 QListViewItem *curritem = cbList->currentItem();
233 if ( !curritem ) 234 if ( !curritem )
234 return; 235 return;
235 openBook( curritem ); 236 openBook( curritem );
236} 237}
237 238
238 239
239// --- openBook --------------------------------------------------------------- 240// --- openBook ---------------------------------------------------------------
240void MainWindow::openBook(QListViewItem *curritem) 241void MainWindow::openBook(QListViewItem *curritem)
241{ 242{
242 // find book in List 243 // find book in List
243 QString currname=curritem->text(posName); 244 QString currname=curritem->text(posName);
244 CBInfo *cb = checkbooks->first(); 245 CBInfo *cb = checkbooks->first();
245 while ( cb ) { 246 while ( cb ) {
246 if ( cb->name() == currname ) 247 if ( cb->name() == currname )
247 break; 248 break;
248 cb = checkbooks->next(); 249 cb = checkbooks->next();
249 } 250 }
250 if ( !cb ) return; 251 if ( !cb ) return;
251 252
252 // 253 //
253 buildFilename( currname ); 254 buildFilename( currname );
254 float currbalance = cb->balance(); 255 float currbalance = cb->balance();
255 bool currlock = !cb->password().isNull(); 256 bool currlock = !cb->password().isNull();
256 257
257 if ( currlock ) 258 if ( currlock )
258 { 259 {
259 Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) ); 260 Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) );
260 if ( pw->exec() != QDialog::Accepted || pw->password != cb->password() ) 261 if ( pw->exec() != QDialog::Accepted || pw->password != cb->password() )
261 { 262 {
262 delete pw; 263 delete pw;
263 return; 264 return;
264 } 265 }
265 delete pw; 266 delete pw;
266 } 267 }
267 268
268 _cfg.setLastBook( currname ); 269 _cfg.setLastBook( currname );
269 Checkbook *currcb = new Checkbook( this, cb, &_cfg ); 270 Checkbook *currcb = new Checkbook( this, cb, &_cfg );
270 if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted ) 271 if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted )
271 { 272 {
272 QString newname = cb->name(); 273 QString newname = cb->name();
273 if ( currname != newname ) 274 if ( currname != newname )
274 { 275 {
275 // Update name if changed 276 // Update name if changed
276 if( curritem ) { 277 if( curritem ) {
277 curritem->setText( posName, newname ); 278 curritem->setText( posName, newname );
278 cbList->sort(); 279 cbList->sort();
279 } 280 }
280 _cfg.setLastBook( newname ); 281 _cfg.setLastBook( newname );
281 282
282 // Remove old file 283 // Remove old file
283 QFile f( tempFilename ); 284 QFile f( tempFilename );
284 if ( f.exists() ) 285 if ( f.exists() )
285 f.remove(); 286 f.remove();
286 287
287 // Get new filename 288 // Get new filename
288 buildFilename( newname ); 289 buildFilename( newname );
289 cb->setFilename( tempFilename ); 290 cb->setFilename( tempFilename );
290 } 291 }
291 292
292 cb->write(); 293 cb->write();
293 294
294 // Update lock if changed 295 // Update lock if changed
295 if ( _cfg.getShowLocks() && !cb->password().isNull() != currlock ) 296 if ( _cfg.getShowLocks() && !cb->password().isNull() != currlock )
296 { 297 {
297 if ( !cb->password().isNull() ) 298 if ( !cb->password().isNull() )
298 curritem->setPixmap( 0, lockIcon ); 299 curritem->setPixmap( 0, lockIcon );
299 else 300 else
300 curritem->setPixmap( 0, nullIcon ); 301 curritem->setPixmap( 0, nullIcon );
301 } 302 }
302 303
303 // Update balance if changed 304 // Update balance if changed
304 if ( _cfg.getShowBalances() && cb->balance() != currbalance ) 305 if ( _cfg.getShowBalances() && cb->balance() != currbalance )
305 { 306 {
306 QString tempstr; 307 QString tempstr;
307 tempstr.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); 308 tempstr.sprintf( "%.2f", cb->balance() );
309 tempstr.prepend( _cfg.getCurrencySymbol() );
308 curritem->setText( posName + 1, tempstr ); 310 curritem->setText( posName + 1, tempstr );
309 } 311 }
310 312
311 // write config, if needed 313 // write config, if needed
312 if( _cfg.isDirty() ) { 314 if( _cfg.isDirty() ) {
313 Config config("checkbook"); 315 Config config("checkbook");
314 _cfg.writeConfig( config ); 316 _cfg.writeConfig( config );
315 } 317 }
316 } 318 }
317 delete currcb; 319 delete currcb;
318} 320}
319 321
320// --- slotDelete ------------------------------------------------------------- 322// --- slotDelete -------------------------------------------------------------
321void MainWindow::slotDelete() 323void MainWindow::slotDelete()
322{ 324{
323 QString currname = cbList->currentItem()->text( posName ); 325 QString currname = cbList->currentItem()->text( posName );
324 326
325 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete checkbook" ), currname ) ) 327 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete checkbook" ), currname ) )
326 { 328 {
327 buildFilename( currname ); 329 buildFilename( currname );
328 QFile f( tempFilename ); 330 QFile f( tempFilename );
329 if ( f.exists() ) 331 if ( f.exists() )
330 { 332 {
331 f.remove(); 333 f.remove();
332 } 334 }
333 335
334 delete cbList->currentItem(); 336 delete cbList->currentItem();
335 } 337 }
336} 338}
337 339
338// --- slotConfigure ---------------------------------------------------------- 340// --- slotConfigure ----------------------------------------------------------
339void MainWindow::slotConfigure() 341void MainWindow::slotConfigure()
340{ 342{
341 Configuration *cfgdlg = new Configuration( this, _cfg ); 343 Configuration *cfgdlg = new Configuration( this, _cfg );
342 if ( QPEApplication::execDialog( cfgdlg ) == QDialog::Accepted ) 344 if ( QPEApplication::execDialog( cfgdlg ) == QDialog::Accepted )
343 { 345 {
344 // read data from config dialog & save it 346 // read data from config dialog & save it
345 cfgdlg->saveConfig( _cfg ); 347 cfgdlg->saveConfig( _cfg );
346 writeConfig(); 348 writeConfig();
347 buildList(); 349 buildList();
348 } 350 }
349 delete cfgdlg; 351 delete cfgdlg;
350} 352}
351 353
352 354
353// --- writeConfig -------------------------------------------------------------- 355// --- writeConfig --------------------------------------------------------------
354void MainWindow::writeConfig() 356void MainWindow::writeConfig()
355{ 357{
356 Config config("checkbook"); 358 Config config("checkbook");
357 _cfg.writeConfig( config ); 359 _cfg.writeConfig( config );
358} 360}