author | drw <drw> | 2005-06-03 18:31:12 (UTC) |
---|---|---|
committer | drw <drw> | 2005-06-03 18:31:12 (UTC) |
commit | 77736831bd44d6ca60ee573133cd72551d312dbc (patch) (side-by-side diff) | |
tree | 7bd56feaf8283e813d2064e7bef1177666897b5d /noncore | |
parent | d0f6a0721d7ab67a115d08990143944ee71d54ba (diff) | |
download | opie-77736831bd44d6ca60ee573133cd72551d312dbc.zip opie-77736831bd44d6ca60ee573133cd72551d312dbc.tar.gz opie-77736831bd44d6ca60ee573133cd72551d312dbc.tar.bz2 |
Add config option to use smaller font for checkbook transaction tab - patch courtesy of hrw
-rw-r--r-- | noncore/apps/checkbook/cfg.cpp | 3 | ||||
-rw-r--r-- | noncore/apps/checkbook/cfg.h | 45 | ||||
-rw-r--r-- | noncore/apps/checkbook/checkbook.cpp | 5 | ||||
-rw-r--r-- | noncore/apps/checkbook/configuration.cpp | 6 | ||||
-rw-r--r-- | noncore/apps/checkbook/configuration.h | 1 |
5 files changed, 38 insertions, 22 deletions
diff --git a/noncore/apps/checkbook/cfg.cpp b/noncore/apps/checkbook/cfg.cpp index 24fa4cb..4f70593 100644 --- a/noncore/apps/checkbook/cfg.cpp +++ b/noncore/apps/checkbook/cfg.cpp @@ -1,221 +1,224 @@ /* This file is part of the OPIE Project =. .=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 <stdio.h> #include <qwidget.h> #include <qpe/config.h> #include "cfg.h" // --- Cfg -------------------------------------------------------------------- Cfg::Cfg() { _currencySymbol="$"; + _useSmallFont=TRUE; _showLocks=FALSE; _showBalances=FALSE; _pCategories=new CategoryList(); _bDirty=false; } // --- readStringList --------------------------------------------------------- // Reads the entries for the control from a configuration file and returns // them in a StringList. Later this list can be used to create the control. It // is assumed, that the group is already set. Key is used to enumerate the // entries. void Cfg::readStringList(Config &cfg, const char *sKey, QStringList &lst) { QString sEntry; int iCount; // read count of elements sEntry.sprintf("%s_Count", sKey); iCount=cfg.readNumEntry(sEntry, 0); // read entries for(int i=1; i<=iCount; i++) { sEntry.sprintf("%s%d", sKey, i); QString sType=cfg.readEntry(sEntry); if( sType!=NULL ) lst.append(sType); } } // --- readConfig ------------------------------------------------------------- // Reads the member data from the given config file. It will also set the group // "Config" void Cfg::readConfig(Config &config) { // set group config.setGroup( "Config" ); // read scalars _currencySymbol = config.readEntry( "CurrencySymbol", "$" ); + _useSmallFont = config.readBoolEntry( "UseSmallFont", TRUE ); _showLocks = config.readBoolEntry( "ShowLocks", FALSE ); _showBalances = config.readBoolEntry( "ShowBalances", FALSE ); _openLastBook = config.readBoolEntry( "OpenLastBook", FALSE ); _sLastBook = config.readEntry("LastBook", ""); _showLastTab = config.readBoolEntry( "ShowLastTab", FALSE ); _bSavePayees = config.readBoolEntry( "SavePayees", FALSE ); // Account types readStringList(config, "AccType", _AccountTypes); if( _AccountTypes.isEmpty() ) { _AccountTypes+= (const char *)QWidget::tr("Savings"); _AccountTypes+= (const char *)QWidget::tr("Checking"); _AccountTypes+= (const char *)QWidget::tr("CD"); _AccountTypes+= (const char *)QWidget::tr("Money market"); _AccountTypes+= (const char *)QWidget::tr("Mutual fund"); _AccountTypes+= (const char *)QWidget::tr("Other"); writeStringList(config, "AccType", _AccountTypes); config.write(); } // Payees readStringList(config, "Payee", _Payees); // Read Categories QStringList lst; readStringList(config, "Category", lst); if( lst.isEmpty() ) { QString type=QWidget::tr("Expense"); lst += QWidget::tr( "Automobile" )+";"+type; lst += QWidget::tr( "Bills" )+";"+type; lst += QWidget::tr( "CDs" )+";"+type; lst += QWidget::tr( "Clothing" )+";"+type; lst += QWidget::tr( "Computer" )+";"+type; lst += QWidget::tr( "DVDs" )+";"+type; lst += QWidget::tr( "Electronics" )+";"+type; lst += QWidget::tr( "Entertainment" )+";"+type; lst += QWidget::tr( "Food" )+";"+type; lst += QWidget::tr( "Gasoline" )+";"+type; lst += QWidget::tr( "Misc" )+";"+type; lst += QWidget::tr( "Movies" )+";"+type; lst += QWidget::tr( "Rent" )+";"+type; lst += QWidget::tr( "Travel" )+";"+type; type=QWidget::tr( "Income" ); lst += QWidget::tr( "Work" )+";"+type; lst += QWidget::tr( "Family Member" )+";"+type; lst += QWidget::tr( "Misc. Credit" )+";"+type; setCategories(lst); writeStringList(config, "Category", lst); config.write(); } else { setCategories(lst); } // not dirty _bDirty=false; } // --- writeStringList -------------------------------------------------------- // Writes the entries in the control in a configuration file. It is assumed, // that the group is already set. Key is used to enumerate the entries void Cfg::writeStringList(Config &cfg, const char *sKey, QStringList &lst) { QString sEntry; int iCount=0; QStringList::Iterator itr; for(itr=lst.begin(); itr!=lst.end(); itr++) { sEntry.sprintf("%s%d", sKey, ++iCount); cfg.writeEntry(sEntry, *itr ); } sEntry.sprintf("%s_Count", sKey); cfg.writeEntry(sEntry, iCount); } // --- writeConfig ----------------------------------------------------------- // Writes all config data back to the config file. The group will be set to // "Config" and the write be commited void Cfg::writeConfig(Config &config) { // set the group config.setGroup( "Config" ); // write scalars config.writeEntry( "CurrencySymbol", _currencySymbol ); + config.writeEntry( "UseSmallFont", _useSmallFont ); config.writeEntry( "ShowLocks", _showLocks ); config.writeEntry( "ShowBalances", _showBalances ); config.writeEntry( "OpenLastBook", _openLastBook ); config.writeEntry( "LastBook", _sLastBook ); config.writeEntry( "ShowLastTab", _showLastTab ); config.writeEntry( "SavePayees", _bSavePayees ); // write account types writeStringList(config, "AccType", _AccountTypes); // write payees writeStringList(config, "Payee", _Payees); // write categories QStringList lst=getCategories(); writeStringList(config, "Category", lst ); // commit write config.write(); _bDirty=false; } // --- getCategories ---------------------------------------------------------- QStringList Cfg::getCategories() { QStringList ret; for(Category *itr=_pCategories->first(); itr; itr=_pCategories->next() ) { QString sEntry; sEntry.sprintf("%s;%s", (const char *)itr->getName(), (const char *)(itr->isIncome() ? QWidget::tr("Income") : QWidget::tr("Expense")) ); ret.append(sEntry); } return(ret); } // --- setCategories ---------------------------------------------------------- void Cfg::setCategories(QStringList &lst) { _pCategories->clear(); QStringList::Iterator itr; for(itr=lst.begin(); itr!=lst.end(); itr++) { QStringList split=QStringList::split(";", *itr, true); if( split.count()<2 ) continue; bool bIncome= (split[1]==QWidget::tr("Income")); _pCategories->append( new Category(split[0], bIncome) ); } } // --- CategoryList ------------------------------------------------------------ CategoryList::CategoryList() : QList<Category>() { setAutoDelete(true); } diff --git a/noncore/apps/checkbook/cfg.h b/noncore/apps/checkbook/cfg.h index 20692b4..418bd93 100644 --- a/noncore/apps/checkbook/cfg.h +++ b/noncore/apps/checkbook/cfg.h @@ -1,132 +1,135 @@ /* - This file is part of the OPIE Project + This file is part of the OPIE Project =. - .=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., + .=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. */ #ifndef CFG_H #define CFG_H #include <qstring.h> #include <qlist.h> #include <qstringlist.h> class Config; // --- Category --------------------------------------------------------------- class Category { public: // --- Constructor: Category(QString &sName, bool bIncome=false) { _sName=sName; _bIncome=bIncome; } // members QString &getName() { return(_sName); } bool isIncome() { return(_bIncome); } void setName(QString &sName) { _sName=sName; } void setIncome(bool bIncome) { _bIncome=bIncome; } private: QString _sName; bool _bIncome; }; class CategoryList : public QList<Category> { public: // --- Constructor CategoryList(); }; // --- Cfg -------------------------------------------------------------------- class Cfg { public: // --- Constructor Cfg(); // --- members + bool getUseSmallFont() { return(_useSmallFont); } + void setUseSmallFont(bool n) { _useSmallFont=n; } bool getShowLocks() { return(_showLocks); } void setShowLocks(bool n) { _showLocks=n; } bool getShowBalances() { return(_showBalances); } void setShowBalances(bool n) { _showBalances=n; } QString &getCurrencySymbol() { return(_currencySymbol); } void setCurrencySymbol(QString n) {_currencySymbol= n; } void setCurrencySymbol(const char *n) { _currencySymbol=n; } QStringList &getAccountTypes() { return(_AccountTypes); } // --- Payees QStringList &getPayees() { return(_Payees); } bool getSavePayees() { return(_bSavePayees); } void setSavePayees(bool bSave) { _bSavePayees=bSave; } // --- Categories QStringList getCategories(); void setCategories(QStringList &lst); CategoryList *getCategoryList() { return(_pCategories); } // --- last book void setOpenLastBook(bool openLastBook) { _openLastBook=openLastBook; } bool isOpenLastBook() { return(_openLastBook); } void setLastBook(const QString &lastBook) { _sLastBook=lastBook; } QString &getLastBook() { return(_sLastBook); } // --- last tab void setShowLastTab(bool showLastTab) { _showLastTab=showLastTab; } bool isShowLastTab() { return(_showLastTab); } // --- reads data from config file void readConfig(Config &cfg); // --- writes data to config file void writeConfig(Config &cfg); // --- dirty flag bool isDirty() { return(_bDirty); } void setDirty(bool bDirty) { _bDirty=bDirty; } protected: // --- reads list from config file static void readStringList(Config &cfg, const char *sKey, QStringList &lst); // --- writes list in configuration file static void writeStringList(Config &cfg, const char *sKey, QStringList &lst); private: QString _currencySymbol; + bool _useSmallFont; bool _showLocks; bool _showBalances; bool _openLastBook; bool _showLastTab; bool _bDirty; bool _bSavePayees; QString _sLastBook; QStringList _AccountTypes; CategoryList *_pCategories; QStringList _Payees; }; #endif diff --git a/noncore/apps/checkbook/checkbook.cpp b/noncore/apps/checkbook/checkbook.cpp index b325f45..1231f42 100644 --- a/noncore/apps/checkbook/checkbook.cpp +++ b/noncore/apps/checkbook/checkbook.cpp @@ -128,193 +128,196 @@ QWidget *Checkbook::initInfo() // Password protection passwordCB = new QCheckBox( tr( "Password protect" ), container ); QWhatsThis::add( passwordCB, tr( "Click here to enable/disable password protection of this checkbook." ) ); connect( passwordCB, SIGNAL( clicked() ), this, SLOT( slotPasswordClicked() ) ); layout->addMultiCellWidget( passwordCB, 0, 0, 0, 1 ); // Account name QLabel *label = new QLabel( tr( "Name:" ), container ); QWhatsThis::add( label, tr( "Enter name of checkbook here." ) ); layout->addWidget( label, 1, 0 ); nameEdit = new QLineEdit( container ); QWhatsThis::add( nameEdit, tr( "Enter name of checkbook here." ) ); connect( nameEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotNameChanged(const QString&) ) ); layout->addWidget( nameEdit, 1, 1 ); // Type of account label = new QLabel( tr( "Type:" ), container ); QWhatsThis::add( label, tr( "Select type of checkbook here." ) ); layout->addWidget( label, 2, 0 ); typeList = new QComboBox( container ); QWhatsThis::add( typeList, tr( "Select type of checkbook here." ) ); typeList->insertStringList( _pCfg->getAccountTypes() ); layout->addWidget( typeList, 2, 1 ); // Bank/institution name label = new QLabel( tr( "Bank:" ), container ); QWhatsThis::add( label, tr( "Enter name of the bank for this checkbook here." ) ); layout->addWidget( label, 3, 0 ); bankEdit = new QLineEdit( container ); QWhatsThis::add( bankEdit, tr( "Enter name of the bank for this checkbook here." ) ); layout->addWidget( bankEdit, 3, 1 ); // Account number label = new QLabel( tr( "Account number:" ), container ); QWhatsThis::add( label, tr( "Enter account number for this checkbook here." ) ); layout->addWidget( label, 4, 0 ); acctNumEdit = new QLineEdit( container ); QWhatsThis::add( acctNumEdit, tr( "Enter account number for this checkbook here." ) ); layout->addWidget( acctNumEdit, 4, 1 ); // PIN number label = new QLabel( tr( "PIN number:" ), container ); QWhatsThis::add( label, tr( "Enter PIN number for this checkbook here." ) ); layout->addWidget( label, 5, 0 ); pinNumEdit = new QLineEdit( container ); QWhatsThis::add( pinNumEdit, tr( "Enter PIN number for this checkbook here." ) ); layout->addWidget( pinNumEdit, 5, 1 ); // Starting balance label = new QLabel( tr( "Starting balance:" ), container ); QWhatsThis::add( label, tr( "Enter the initial balance for this checkbook here." ) ); layout->addWidget( label, 6, 0 ); balanceEdit = new QLineEdit( container ); QWhatsThis::add( balanceEdit, tr( "Enter the initial balance for this checkbook here." ) ); connect( balanceEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotStartingBalanceChanged(const QString&) ) ); layout->addWidget( balanceEdit, 6, 1 ); // Notes label = new QLabel( tr( "Notes:" ), container ); QWhatsThis::add( label, tr( "Enter any additional information for this checkbook here." ) ); layout->addWidget( label, 7, 0 ); notesEdit = new QMultiLineEdit( container ); QWhatsThis::add( notesEdit, tr( "Enter any additional information for this checkbook here." ) ); notesEdit->setMinimumHeight( 25 ); notesEdit->setMaximumHeight( 65 ); layout->addMultiCellWidget( notesEdit, 8, 8, 0, 1 ); return control; } // --- initTransactions ------------------------------------------------------- QWidget *Checkbook::initTransactions() { QWidget *control = new QWidget( mainWidget, tr("Transactions") ); QGridLayout *layout = new QGridLayout( control ); layout->setSpacing( 2 ); layout->setMargin( 4 ); // Sort selector QLabel *label = new QLabel( tr( "Sort by:" ), control ); QWhatsThis::add( label, tr( "Select checkbook sorting here." ) ); layout->addMultiCellWidget( label, 0, 0, 0, 1 ); _cbSortType=new QComboBox( control ); _cbSortType->insertItem( tr("Entry Order") ); _cbSortType->insertItem( tr("Date") ); _cbSortType->insertItem( tr("Number") ); layout->addMultiCellWidget( _cbSortType, 0, 0, 1, 2 ); connect( _cbSortType, SIGNAL( activated(const QString&) ), this, SLOT( slotSortChanged(const QString&) ) ); // Table tranTable = new QListView( control ); QFont fnt(QPEApplication::font()); - fnt.setPointSize( fnt.pointSize()-1 ); + if( _pCfg->getUseSmallFont() ) + { + fnt.setPointSize( fnt.pointSize()-1 ); + } tranTable->setFont( fnt ); QWhatsThis::add( tranTable, tr( "This is a listing of all transactions entered for this checkbook.\n\nTo sort entries by a specific field, click on the column name." ) ); tranTable->addColumn( tr( "Id" ) ); 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" ) ); //tranTable->addColumn( tr( "Cleared" ) ); tranTable->addColumn( tr( "Description" ) ); int column = tranTable->addColumn( tr( "Amount" ) ); tranTable->setColumnAlignment( column, Qt::AlignRight ); column=tranTable->addColumn( tr("Balance") ); tranTable->setColumnAlignment( column, Qt::AlignRight ); tranTable->setAllColumnsShowFocus( TRUE ); tranTable->setSorting( -1 ); layout->addMultiCellWidget( tranTable, 1, 1, 0, 2 ); QPEApplication::setStylusOperation( tranTable->viewport(), QPEApplication::RightOnHold ); connect( tranTable, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), this, SLOT( slotMenuTran(QListViewItem*,const QPoint&) ) ); connect( tranTable, SIGNAL( doubleClicked(QListViewItem*) ), this, SLOT( slotEditTran() ) ); _sortCol=COL_ID; // Buttons QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "new", Opie::Core::OResource::SmallIcon ), tr( "New" ), control ); btn->setFixedHeight( AppLnk::smallIconSize()+4 ); QWhatsThis::add( btn, tr( "Click here to add a new transaction." ) ); connect( btn, SIGNAL( clicked() ), this, SLOT( slotNewTran() ) ); layout->addWidget( btn, 2, 0 ); btn = new QPushButton( Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon ), tr( "Edit" ), control ); btn->setFixedHeight( AppLnk::smallIconSize()+4 ); QWhatsThis::add( btn, tr( "Select a transaction and then click here to edit it." ) ); connect( btn, SIGNAL( clicked() ), this, SLOT( slotEditTran() ) ); layout->addWidget( btn, 2, 1 ); btn = new QPushButton( Opie::Core::OResource::loadPixmap( "trash", Opie::Core::OResource::SmallIcon ), tr( "Delete" ), control ); btn->setFixedHeight( AppLnk::smallIconSize()+4 ); QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) ); connect( btn, SIGNAL( clicked() ), this, SLOT( slotDeleteTran() ) ); layout->addWidget( btn, 2, 2 ); return( control ); } // --- initCharts ------------------------------------------------------------- QWidget *Checkbook::initCharts() { graphInfo = 0x0; QWidget *control = new QWidget( mainWidget, tr("Charts") ); QGridLayout *layout = new QGridLayout( control ); layout->setSpacing( 2 ); layout->setMargin( 4 ); graphWidget = new Graph( control ); QWhatsThis::add( graphWidget, tr( "Select the desired chart below and then click on the Draw button." ) ); layout->addMultiCellWidget( graphWidget, 0, 0, 0, 2 ); graphList = new QComboBox( control ); QWhatsThis::add( graphList, tr( "Click here to select the desired chart type." ) ); graphList->insertItem( tr( "Account balance" ) ); graphList->insertItem( tr( "Withdrawals by category" ) ); graphList->insertItem( tr( "Deposits by category" ) ); layout->addMultiCellWidget( graphList, 1, 1, 0, 1 ); QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "checkbook/drawbtn", Opie::Core::OResource::SmallIcon ), tr( "Draw" ), control ); btn->setFixedHeight( AppLnk::smallIconSize()+4 ); QWhatsThis::add( btn, tr( "Click here to draw the selected chart." ) ); connect( btn, SIGNAL( clicked() ), this, SLOT( slotDrawGraph() ) ); layout->addWidget( btn, 1, 2 ); return control; } // --- loadCheckbook ---------------------------------------------------------- void Checkbook::loadCheckbook() { if ( !info ) { return; } tranList = info->transactions(); passwordCB->setChecked( !info->password().isNull() ); diff --git a/noncore/apps/checkbook/configuration.cpp b/noncore/apps/checkbook/configuration.cpp index 872d9b2..929c7c0 100644 --- a/noncore/apps/checkbook/configuration.cpp +++ b/noncore/apps/checkbook/configuration.cpp @@ -53,121 +53,127 @@ Configuration::Configuration( QWidget *parent, Cfg &cfg ) // Settings tab _mainWidget->addTab( initSettings(cfg), tr( "&Settings" ) ); // Account Types tab ColumnDef *d; _listEditTypes=new ListEdit(_mainWidget, "TYPES" ); d=new ColumnDef( tr("Type"), (ColumnDef::ColumnType)(ColumnDef::typeString | ColumnDef::typeUnique), tr("New Account Type")); _listEditTypes->addColumnDef( d ); _listEditTypes->addData( cfg.getAccountTypes() ); _mainWidget->addTab( _listEditTypes, tr( "&Account Types" ) ); // Categories tab _listEditCategories=new ListEdit(_mainWidget, "CATEGORIES" ); _listEditCategories->addColumnDef( new ColumnDef( tr("Category"), (ColumnDef::ColumnType)(ColumnDef::typeString | ColumnDef::typeUnique), tr("New Category")) ); d=new ColumnDef( tr("Type"), ColumnDef::typeList, tr("Expense") ); d->addColumnValue( tr("Expense") ); d->addColumnValue( tr("Income") ); _listEditCategories->addColumnDef( d ); QStringList lst=cfg.getCategories(); _listEditCategories->addData( lst ); _mainWidget->addTab( _listEditCategories, tr( "&Categories" ) ); // Payees tab _listEditPayees=new ListEdit(_mainWidget, "PAYEES"); _listEditPayees->addColumnDef( new ColumnDef( tr("Payee"), (ColumnDef::ColumnType)(ColumnDef::typeString | ColumnDef::typeUnique), tr("New Payee")) ); _listEditPayees->addData( cfg.getPayees() ); _mainWidget->addTab( _listEditPayees, tr("&Payees") ); } Configuration::~Configuration() { } // ---- initSettings ---------------------------------------------------------- QWidget *Configuration::initSettings(Cfg &cfg) { QWidget *control = new QWidget( _mainWidget ); QFontMetrics fm = fontMetrics(); int fh = fm.height(); QVBoxLayout *vb = new QVBoxLayout( control ); QScrollView *sv = new QScrollView( control ); vb->addWidget( sv, 0, 0 ); sv->setResizePolicy( QScrollView::AutoOneFit ); sv->setFrameStyle( QFrame::NoFrame ); QWidget *container = new QWidget( sv->viewport() ); sv->addChild( container ); QGridLayout *layout = new QGridLayout( container ); layout->setSpacing( 4 ); layout->setMargin( 4 ); QLabel *label = new QLabel( tr( "Enter currency symbol:" ), container ); QWhatsThis::add( label, tr( "Enter your local currency symbol here." ) ); label->setMaximumHeight( fh + 3 ); layout->addWidget( label, 0, 0 ); symbolEdit = new QLineEdit( cfg.getCurrencySymbol(), container ); QWhatsThis::add( symbolEdit, tr( "Enter your local currency symbol here." ) ); symbolEdit->setMaximumHeight( fh + 5 ); symbolEdit->setFocus(); layout->addWidget( symbolEdit, 0, 1 ); lockCB = new QCheckBox( tr( "Show whether checkbook is password\nprotected" ), container ); QWhatsThis::add( lockCB, tr( "Click here to select whether or not the main window will display that the checkbook is protected with a password." ) ); lockCB->setChecked( cfg.getShowLocks() ); layout->addMultiCellWidget( lockCB, 1, 1, 0, 1 ); balCB = new QCheckBox( tr( "Show checkbook balances" ), container ); QWhatsThis::add( balCB, tr( "Click here to select whether or not the main window will display the current balance for each checkbook." ) ); balCB->setMaximumHeight( fh + 5 ); balCB->setChecked( cfg.getShowBalances() ); layout->addMultiCellWidget( balCB, 2, 2, 0, 1 ); openLastBookCB = new QCheckBox( tr("Open last checkbook" ), container ); QWhatsThis::add( openLastBookCB, tr("Click here to select whether the last open checkbook will be opened at startup.") ); openLastBookCB->setMaximumHeight(fh+5); openLastBookCB->setChecked( cfg.isOpenLastBook() ); layout->addMultiCellWidget( openLastBookCB, 3, 3, 0, 1 ); lastTabCB = new QCheckBox( tr("Show last checkbook tab" ), container ); QWhatsThis::add( lastTabCB, tr("Click here to select whether the last tab in a checkbook should be displayed.") ); lastTabCB->setMaximumHeight(fh+5); lastTabCB->setChecked( cfg.isShowLastTab() ); layout->addMultiCellWidget( lastTabCB, 4, 4, 0, 1 ); savePayees = new QCheckBox( tr("Save new description as payee"), container ); QWhatsThis::add( savePayees, tr("Click here to save new descriptions in the list of payess.") ); savePayees->setMaximumHeight(fh+5); savePayees->setChecked( cfg.getSavePayees() ); layout->addMultiCellWidget( savePayees, 5, 5, 0, 1 ); + smallFontCB = new QCheckBox( tr( "Use smaller font for list" ), container ); + QWhatsThis::add( smallFontCB, tr( "Click here to select smaller font for transactions." ) ); + smallFontCB->setChecked( cfg.getUseSmallFont() ); + layout->addMultiCellWidget( smallFontCB, 6, 6, 0, 1 ); + return(control); } // --- saveConfig ------------------------------------------------------------- void Configuration::saveConfig(Cfg &cfg) { // Settings cfg.setCurrencySymbol( symbolEdit->text() ); + cfg.setUseSmallFont( smallFontCB->isChecked() ); cfg.setShowLocks( lockCB->isChecked() ); cfg.setShowBalances( balCB->isChecked() ); cfg.setOpenLastBook( openLastBookCB->isChecked() ); cfg.setShowLastTab( lastTabCB->isChecked() ); cfg.setSavePayees( savePayees->isChecked() ); // Typelist _listEditTypes->storeInList( cfg.getAccountTypes() ); // Category list QStringList lst; _listEditCategories->storeInList( lst ); cfg.setCategories( lst ); // Payees _listEditPayees->storeInList( cfg.getPayees() ); } diff --git a/noncore/apps/checkbook/configuration.h b/noncore/apps/checkbook/configuration.h index 663514d..44c9717 100644 --- a/noncore/apps/checkbook/configuration.h +++ b/noncore/apps/checkbook/configuration.h @@ -1,69 +1,70 @@ /* This file is part of the OPIE Project =. .=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. */ #ifndef CONFIGURATION_H #define CONFIGURATION_H #include <qdialog.h> #include "cfg.h" class QCheckBox; class QLineEdit; class QString; class QTabWidget; class ListEdit; class Configuration : public QDialog { Q_OBJECT public: // Constructor Configuration( QWidget *, Cfg &cfg); ~Configuration(); QLineEdit *symbolEdit; + QCheckBox *smallFontCB; QCheckBox *lockCB; QCheckBox *balCB; QCheckBox *openLastBookCB; QCheckBox *lastTabCB; QCheckBox *savePayees; QTabWidget *_mainWidget; ListEdit *_listEditTypes; ListEdit *_listEditCategories; ListEdit *_listEditPayees; // saves settings in config struct void saveConfig(Cfg &cfg); protected: // creates settings tap from configuration QWidget *initSettings(Cfg &cfg); }; #endif |