-rw-r--r-- | noncore/apps/checkbook/mainwindow.cpp | 432 |
1 files changed, 216 insertions, 216 deletions
diff --git a/noncore/apps/checkbook/mainwindow.cpp b/noncore/apps/checkbook/mainwindow.cpp index 9fc2125..f29001a 100644 --- a/noncore/apps/checkbook/mainwindow.cpp +++ b/noncore/apps/checkbook/mainwindow.cpp @@ -3,363 +3,363 @@ =. .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> .>+-= _;:, .> :=|. This file is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; either version 2 of the License, ._= =} : or (at your option) any later version. .%`+i> _;_. .i_,=:_. -<s. This file is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General ..}^=.= = ; Public License for more details. ++= -. .` .: : = ...= . :.=- You should have received a copy of the GNU -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "mainwindow.h" #include "cbinfo.h" #include "configuration.h" #include "password.h" #include "checkbook.h" #include "listedit.h" #include <qpe/config.h> #include <qpe/global.h> #include <qpe/qpeapplication.h> #include <qmenubar.h> #include <qpe/qpemessagebox.h> #include <qpe/qpetoolbar.h> #include <qpe/resource.h> #include <qaction.h> #include <qcheckbox.h> #include <qdir.h> #include <qlineedit.h> #include <qwhatsthis.h> -MainWindow::MainWindow( QWidget* parent, const char* name, WFlags fl ) - : QMainWindow( parent, name, fl || WStyle_ContextHelp ) +MainWindow::MainWindow( QWidget* parent, const char* name, WFlags /*fl*/ ) + : QMainWindow( parent, name, WStyle_ContextHelp ) { - setCaption( tr( "Checkbook" ) ); + setCaption( tr( "Checkbook" ) ); - cbDir = Global::applicationFileName( "checkbook", "" ); - lockIcon = Resource::loadPixmap( "locked" ); + cbDir = Global::applicationFileName( "checkbook", "" ); + lockIcon = Resource::loadPixmap( "locked" ); - // Load configuration options - Config config( "checkbook" ); + // Load configuration options + Config config( "checkbook" ); _cfg.readConfig( config ); - // Build menu and tool bars - setToolBarsMovable( FALSE ); - - QToolBar *bar = new QToolBar( this ); - bar->setHorizontalStretchable( TRUE ); - QMenuBar *mb = new QMenuBar( bar ); - mb->setMargin( 0 ); - QPopupMenu *popup = new QPopupMenu( this ); - - bar = new QToolBar( this ); - QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to create a new checkbook.\n\nYou also can select New from the Checkbook menu." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( slotNew() ) ); - a->addTo( popup ); - a->addTo( bar ); - - actionOpen = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null, - 0, this, 0 ); - actionOpen->setWhatsThis( tr( "Select a checkbook and then click here to edit it.\n\nYou also can select Edit from the Checkbook menu, or click and hold on a checkbook name." ) ); - connect( actionOpen, SIGNAL( activated() ), this, SLOT( slotEdit() ) ); - actionOpen->addTo( popup ); - actionOpen->addTo( bar ); - - actionDelete = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, - 0, this, 0 ); - actionDelete->setWhatsThis( tr( "Select a checkbook and then click here delete it.\n\nYou also can select Delete from the Checkbook menu." ) ); - connect( actionDelete, SIGNAL( activated() ), this, SLOT( slotDelete() ) ); - actionDelete->addTo( popup ); - actionDelete->addTo( bar ); - - popup->insertSeparator(); - - a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to configure this app." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( slotConfigure() ) ); - a->addTo( popup ); - a->addTo( bar ); - - mb->insertItem( tr( "Checkbook" ), popup ); - - // Load Checkbook selection list - checkbooks = new CBInfoList(); - - QDir checkdir( cbDir ); - if (checkdir.exists() == true) - { - QStringList cblist = checkdir.entryList( "*.qcb", QDir::Files|QDir::Readable|QDir::Writable, - QDir::Time ); - CBInfo *cb = 0x0; - QString filename; - - for ( QStringList::Iterator it = cblist.begin(); it != cblist.end(); it++ ) - { - filename = cbDir; - filename.append( (*it) ); - - cb = new CBInfo( (*it).remove( (*it).find('.'), (*it).length() ), filename ); - checkbooks->inSort( cb ); - } - } - - // Build Checkbook selection list control - cbList = 0x0; - buildList(); + // Build menu and tool bars + setToolBarsMovable( FALSE ); + + QToolBar *bar = new QToolBar( this ); + bar->setHorizontalStretchable( TRUE ); + QMenuBar *mb = new QMenuBar( bar ); + mb->setMargin( 0 ); + QPopupMenu *popup = new QPopupMenu( this ); + + bar = new QToolBar( this ); + QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to create a new checkbook.\n\nYou also can select New from the Checkbook menu." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( slotNew() ) ); + a->addTo( popup ); + a->addTo( bar ); + + actionOpen = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null, + 0, this, 0 ); + actionOpen->setWhatsThis( tr( "Select a checkbook and then click here to edit it.\n\nYou also can select Edit from the Checkbook menu, or click and hold on a checkbook name." ) ); + connect( actionOpen, SIGNAL( activated() ), this, SLOT( slotEdit() ) ); + actionOpen->addTo( popup ); + actionOpen->addTo( bar ); + + actionDelete = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, + 0, this, 0 ); + actionDelete->setWhatsThis( tr( "Select a checkbook and then click here delete it.\n\nYou also can select Delete from the Checkbook menu." ) ); + connect( actionDelete, SIGNAL( activated() ), this, SLOT( slotDelete() ) ); + actionDelete->addTo( popup ); + actionDelete->addTo( bar ); + + popup->insertSeparator(); + + a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to configure this app." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( slotConfigure() ) ); + a->addTo( popup ); + a->addTo( bar ); + + mb->insertItem( tr( "Checkbook" ), popup ); + + // Load Checkbook selection list + checkbooks = new CBInfoList(); + + QDir checkdir( cbDir ); + if (checkdir.exists() == true) + { + QStringList cblist = checkdir.entryList( "*.qcb", QDir::Files|QDir::Readable|QDir::Writable, + QDir::Time ); + CBInfo *cb = 0x0; + QString filename; + + for ( QStringList::Iterator it = cblist.begin(); it != cblist.end(); it++ ) + { + filename = cbDir; + filename.append( (*it) ); + + cb = new CBInfo( (*it).remove( (*it).find('.'), (*it).length() ), filename ); + checkbooks->inSort( cb ); + } + } + + // Build Checkbook selection list control + cbList = 0x0; + buildList(); // open last book? if( _cfg.isOpenLastBook() ) { this->show(); this->showMaximized(); QListViewItem *itm=cbList->firstChild(); while( itm ) { if( itm->text(posName)==_cfg.getLastBook() ) { openBook( itm ); break; } itm=itm->nextSibling(); } } } // --- ~MainWindow ------------------------------------------------------------ MainWindow::~MainWindow() { writeConfig(); } // --- buildList -------------------------------------------------------------- void MainWindow::buildList() { - if ( cbList ) - delete cbList; - - cbList = new QListView( this ); - QWhatsThis::add( cbList, tr( "This is a listing of all checkbooks currently available." ) ); - - if ( _cfg.getShowLocks() ) - { - cbList->addColumn( Resource::loadIconSet( "locked" ), "", 24 ); - posName = 1; - } - else - { - posName = 0; - } - cbList->addColumn( tr( "Checkbook Name" ) ); - if ( _cfg.getShowBalances() ) - { - int colnum = cbList->addColumn( tr( "Balance" ) ); - cbList->setColumnAlignment( colnum, Qt::AlignRight ); - } - cbList->setAllColumnsShowFocus( TRUE ); - cbList->setSorting( posName ); - QPEApplication::setStylusOperation( cbList->viewport(), QPEApplication::RightOnHold ); - connect( cbList, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), - this, SLOT( slotEdit() ) ); - setCentralWidget( cbList ); - - for ( CBInfo *cb = checkbooks->first(); cb; cb = checkbooks->next() ) - { - addCheckbook( cb ); - } + if ( cbList ) + delete cbList; + + cbList = new QListView( this ); + QWhatsThis::add( cbList, tr( "This is a listing of all checkbooks currently available." ) ); + + if ( _cfg.getShowLocks() ) + { + cbList->addColumn( Resource::loadIconSet( "locked" ), "", 24 ); + posName = 1; + } + else + { + posName = 0; + } + cbList->addColumn( tr( "Checkbook Name" ) ); + if ( _cfg.getShowBalances() ) + { + int colnum = cbList->addColumn( tr( "Balance" ) ); + cbList->setColumnAlignment( colnum, Qt::AlignRight ); + } + cbList->setAllColumnsShowFocus( TRUE ); + cbList->setSorting( posName ); + QPEApplication::setStylusOperation( cbList->viewport(), QPEApplication::RightOnHold ); + connect( cbList, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), + this, SLOT( slotEdit() ) ); + setCentralWidget( cbList ); + + for ( CBInfo *cb = checkbooks->first(); cb; cb = checkbooks->next() ) + { + addCheckbook( cb ); + } } void MainWindow::addCheckbook( CBInfo *cb ) { - QListViewItem *lvi = new QListViewItem( cbList ); - if ( _cfg.getShowLocks() && !cb->password().isNull() ) - { - lvi->setPixmap( 0, lockIcon ); - } - lvi->setText( posName, cb->name() ); - if ( _cfg.getShowBalances() ) - { - QString balance; - balance.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); - lvi->setText( posName + 1, balance ); - } + QListViewItem *lvi = new QListViewItem( cbList ); + if ( _cfg.getShowLocks() && !cb->password().isNull() ) + { + lvi->setPixmap( 0, lockIcon ); + } + lvi->setText( posName, cb->name() ); + if ( _cfg.getShowBalances() ) + { + QString balance; + balance.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); + lvi->setText( posName + 1, balance ); + } } void MainWindow::buildFilename( const QString &name ) { - tempFilename = cbDir; - tempFilename.append( name ); - tempFilename.append( ".qcb" ); + tempFilename = cbDir; + tempFilename.append( name ); + tempFilename.append( ".qcb" ); } void MainWindow::slotNew() { - CBInfo *cb = new CBInfo(); - - Checkbook *currcb = new Checkbook( this, cb, &_cfg ); - currcb->showMaximized(); - if ( currcb->exec() == QDialog::Accepted ) - { - // Save new checkbook - buildFilename( cb->name() ); + CBInfo *cb = new CBInfo(); + + Checkbook *currcb = new Checkbook( this, cb, &_cfg ); + currcb->showMaximized(); + if ( currcb->exec() == QDialog::Accepted ) + { + // Save new checkbook + buildFilename( cb->name() ); _cfg.setLastBook( cb->name() ); - cb->setFilename( tempFilename ); - cb->write(); - - // Add to listbox - checkbooks->inSort( cb ); - addCheckbook( cb ); - } - delete currcb; + cb->setFilename( tempFilename ); + cb->write(); + + // Add to listbox + checkbooks->inSort( cb ); + addCheckbook( cb ); + } + delete currcb; } // --- slotEdit --------------------------------------------------------------- void MainWindow::slotEdit() { // get name and open it - QListViewItem *curritem = cbList->currentItem(); - if ( !curritem ) - return; - openBook( curritem ); + QListViewItem *curritem = cbList->currentItem(); + if ( !curritem ) + return; + openBook( curritem ); } // --- openBook --------------------------------------------------------------- void MainWindow::openBook(QListViewItem *curritem) { // find book in List QString currname=curritem->text(posName); CBInfo *cb = checkbooks->first(); - while ( cb ) { - if ( cb->name() == currname ) - break; - cb = checkbooks->next(); - } - if ( !cb ) return; + while ( cb ) { + if ( cb->name() == currname ) + break; + cb = checkbooks->next(); + } + if ( !cb ) return; // - buildFilename( currname ); - float currbalance = cb->balance(); - bool currlock = !cb->password().isNull(); - - if ( currlock ) - { - Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) ); - if ( pw->exec() != QDialog::Accepted || pw->password != cb->password() ) - { - delete pw; - return; - } - delete pw; - } + buildFilename( currname ); + float currbalance = cb->balance(); + bool currlock = !cb->password().isNull(); + + if ( currlock ) + { + Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) ); + if ( pw->exec() != QDialog::Accepted || pw->password != cb->password() ) + { + delete pw; + return; + } + delete pw; + } _cfg.setLastBook( currname ); - Checkbook *currcb = new Checkbook( this, cb, &_cfg ); - currcb->showMaximized(); - if ( currcb->exec() == QDialog::Accepted ) - { - QString newname = cb->name(); - if ( currname != newname ) - { - // Update name if changed + Checkbook *currcb = new Checkbook( this, cb, &_cfg ); + currcb->showMaximized(); + if ( currcb->exec() == QDialog::Accepted ) + { + QString newname = cb->name(); + if ( currname != newname ) + { + // Update name if changed if( curritem ) { curritem->setText( posName, newname ); cbList->sort(); } _cfg.setLastBook( newname ); - // Remove old file - QFile f( tempFilename ); - if ( f.exists() ) - f.remove(); - - // Get new filename - buildFilename( newname ); - cb->setFilename( tempFilename ); - } - - cb->write(); - - // Update lock if changed - if ( _cfg.getShowLocks() && !cb->password().isNull() != currlock ) - { - if ( !cb->password().isNull() ) - curritem->setPixmap( 0, lockIcon ); - else - curritem->setPixmap( 0, nullIcon ); - } - - // Update balance if changed - if ( _cfg.getShowBalances() && cb->balance() != currbalance ) - { - QString tempstr; - tempstr.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); - curritem->setText( posName + 1, tempstr ); - } + // Remove old file + QFile f( tempFilename ); + if ( f.exists() ) + f.remove(); + + // Get new filename + buildFilename( newname ); + cb->setFilename( tempFilename ); + } + + cb->write(); + + // Update lock if changed + if ( _cfg.getShowLocks() && !cb->password().isNull() != currlock ) + { + if ( !cb->password().isNull() ) + curritem->setPixmap( 0, lockIcon ); + else + curritem->setPixmap( 0, nullIcon ); + } + + // Update balance if changed + if ( _cfg.getShowBalances() && cb->balance() != currbalance ) + { + QString tempstr; + tempstr.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); + curritem->setText( posName + 1, tempstr ); + } // write config, if needed if( _cfg.isDirty() ) { Config config("checkbook"); _cfg.writeConfig( config ); } - } - delete currcb; + } + delete currcb; } // --- slotDelete ------------------------------------------------------------- void MainWindow::slotDelete() { - QString currname = cbList->currentItem()->text( posName ); - - if ( QPEMessageBox::confirmDelete ( this, tr( "Delete checkbook" ), currname ) ) - { - buildFilename( currname ); - QFile f( tempFilename ); - if ( f.exists() ) - { - f.remove(); - } - - delete cbList->currentItem(); - } + QString currname = cbList->currentItem()->text( posName ); + + if ( QPEMessageBox::confirmDelete ( this, tr( "Delete checkbook" ), currname ) ) + { + buildFilename( currname ); + QFile f( tempFilename ); + if ( f.exists() ) + { + f.remove(); + } + + delete cbList->currentItem(); + } } // --- slotConfigure ---------------------------------------------------------- void MainWindow::slotConfigure() { - Configuration *cfgdlg = new Configuration( this, _cfg ); - cfgdlg->showMaximized(); - if ( cfgdlg->exec() == QDialog::Accepted ) - { + Configuration *cfgdlg = new Configuration( this, _cfg ); + cfgdlg->showMaximized(); + if ( cfgdlg->exec() == QDialog::Accepted ) + { // read data from config dialog & save it cfgdlg->saveConfig( _cfg ); writeConfig(); - buildList(); - } - delete cfgdlg; + buildList(); + } + delete cfgdlg; } // --- writeConfig -------------------------------------------------------------- void MainWindow::writeConfig() { Config config("checkbook"); _cfg.writeConfig( config ); } |