author | allenforsythe <allenforsythe> | 2003-05-04 22:02:48 (UTC) |
---|---|---|
committer | allenforsythe <allenforsythe> | 2003-05-04 22:02:48 (UTC) |
commit | 4593e3cf4eca4867e34b3220007c24523cf642b6 (patch) (side-by-side diff) | |
tree | bd8071834dec2a5008b1b270c7953f5cfd65754d /noncore/apps/qashmoney | |
parent | 2894d0b14c0b3efa3ce259214b5aa597a6abfed1 (diff) | |
download | opie-4593e3cf4eca4867e34b3220007c24523cf642b6.zip opie-4593e3cf4eca4867e34b3220007c24523cf642b6.tar.gz opie-4593e3cf4eca4867e34b3220007c24523cf642b6.tar.bz2 |
Initial revision
106 files changed, 2620 insertions, 0 deletions
diff --git a/noncore/apps/qashmoney/LICENSE b/noncore/apps/qashmoney/LICENSE new file mode 100755 index 0000000..421cfb2 --- a/dev/null +++ b/noncore/apps/qashmoney/LICENSE @@ -0,0 +1,348 @@ +QashMoney - Budget/Finance Software for the Sharp Zaurus Copyright (C) 2002 Allen Forsythe + + You may use, distribute and copy the this software under the terms of + GNU General Public License version 2, which is displayed below. + +------------------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +------------------------------------------------------------------------- diff --git a/noncore/apps/qashmoney/accountdisplay.h b/noncore/apps/qashmoney/accountdisplay.h new file mode 100755 index 0000000..37bcb34 --- a/dev/null +++ b/noncore/apps/qashmoney/accountdisplay.h @@ -0,0 +1,53 @@ +#ifndef ACCOUNTDISPLAY_H +#define ACCOUNTDISPLAY_H + +#include <qlistview.h> +#include <qpushbutton.h> +#include <qlayout.h> +#include <qtabwidget.h> +#include <qhbox.h> + +class AccountDisplay : public QWidget + { + Q_OBJECT + + public: + AccountDisplay ( QWidget *parent ); + + QHBox *firstline; + + QPushButton* newaccount; + QPushButton* editaccount; + QPushButton* deleteaccount; + QPushButton* transferbutton; + + QListView* listview; + + QBoxLayout *layout; + + void setTabs ( QWidget *newtab2, QTabWidget *newtabs ); + int getIDColumn (); + void setToggleButton (); + + public slots: + void addAccount (); + void editAccount (); + void deleteAccount (); + void accountTransfer ( bool state ); + void getTransferAccounts ( QListViewItem * item ); + void disableParentsWithChildren (); + void enableAccounts (); + + private slots: + void saveColumnSize ( int column, int oldsize, int newsize ); + void setAccountExpanded ( QListViewItem *item ); + void setAccountCollapsed ( QListViewItem *item ); + + private: + int type, firstaccountid, secondaccountid, cleared; + QWidget *tab2; + QTabWidget *maintabs; +}; + +#endif // ACCOUNTDISPLAY_H + diff --git a/noncore/apps/qashmoney/budgetdisplay.cpp b/noncore/apps/qashmoney/budgetdisplay.cpp new file mode 100755 index 0000000..09f62b2 --- a/dev/null +++ b/noncore/apps/qashmoney/budgetdisplay.cpp @@ -0,0 +1,408 @@ +#include <qmessagebox.h> +#include <qheader.h> +#include <qfont.h> +#include <sqlite.h> + +#include "budgetdisplay.h" +#include "budget.h" +#include "newaccount.h" +#include "datepicker.h" +#include "preferences.h" +#include "transaction.h" + +extern Preferences *preferences; +extern Budget *budget; +extern Transaction *transaction; + +BudgetDisplay::BudgetDisplay ( QWidget *parent ) : QWidget ( parent ) + { + QFont font = this->font(); + font.setWeight ( QFont::Bold ); + + //set the default date to today + newDate = QDate::currentDate (); + year = newDate.year(); + month = newDate.month(); + day = newDate.day(); + datelabel = preferences->getDate ( year, month ); + + setCaption ( "Budget" ); + + firstline = new QHBox ( this ); + firstline->setSpacing ( 2 ); + secondline = new QHBox ( this ); + secondline->setSpacing ( 10 ); + + menu = new QPEMenuBar ( this ); + menu->setFrameStyle ( QFrame::Box | QFrame::Sunken ); + budgetmenu = new QPopupMenu ( this ); + lineitemsmenu = new QPopupMenu ( this ); + datemenu = new QPopupMenu ( this ); + menu->insertItem ( "Budget", budgetmenu ); + menu->insertItem ( "Line Item", lineitemsmenu ); + menu->insertItem ( "Date", datemenu ); + budgetmenu->insertItem ( "New", this, SLOT ( newBudget () ), 0, 1 ); + budgetmenu->insertItem ( "Edit", this, SLOT ( editBudget () ), 0, 2 ); + budgetmenu->insertItem ( "Delete", this, SLOT ( deleteBudget () ), 0, 3 ); + lineitemsmenu->insertItem ( "New", this, SLOT ( newLineItem () ), 0, 1 ); + lineitemsmenu->insertItem ( "Edit", this, SLOT ( editLineItem () ), 0, 2 ); + lineitemsmenu->insertItem ( "Delete", this, SLOT ( deleteLineItem () ), 0, 3 ); + datemenu->insertItem ( "Change", this, SLOT ( showCalendar() ) ); + + budgetbox = new QComboBox ( firstline ); + connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); + + budgetview = new QComboBox ( firstline ); + budgetview->insertItem ( "Month" ); + budgetview->insertItem ( "Year" ); + connect ( budgetview, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentView ( int ) ) ); + + budgeted = new QLabel ( secondline ); + budgeted->setFont ( font ); + actual = new QLabel ( secondline ); + actual->setFont ( font ); + date = new QLabel ( secondline ); + date->setFont ( font ); + + listview = new QListView ( this ); + listview->setAllColumnsShowFocus ( TRUE ); + listview->setShowSortIndicator ( TRUE ); + listview->setRootIsDecorated ( TRUE ); + listview->setMultiSelection ( FALSE ); + listview->addColumn ( "Line Item", preferences->getColumnPreference ( 13 ) ); // column id 13 + listview->addColumn ( "Budget", preferences->getColumnPreference ( 14 ) ); // column id 14 + listview->addColumn ( "Actual", preferences->getColumnPreference ( 15 ) ); // column id 15 + listview->addColumn ( "", 0 ); // line item ids + listview->setColumnWidthMode ( 0, QListView::Manual ); + listview->setColumnWidthMode ( 1, QListView::Manual ); + listview->setColumnWidthMode ( 2, QListView::Manual ); + listview->setColumnAlignment ( 1, Qt::AlignRight ); + listview->setColumnAlignment ( 2, Qt::AlignRight ); + listview->setColumnWidthMode ( 3, QListView::Manual ); + + listview->header()->setTracking ( FALSE ); + connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); + + displayBudgetNames(); + + layout = new QVBoxLayout ( this, 2, 2 ); + layout->setMenuBar ( menu ); + layout->addWidget ( firstline ); + layout->addWidget ( secondline ); + layout->addWidget ( listview ); + } + +void BudgetDisplay::deleteBudget () + { + listview->clear(); + transaction->clearBudgetIDs ( currentbudget ); + budget->deleteBudget ( currentbudget ); + if ( budgetbox->count() != 0 ) + displayBudgetNames(); + checkBudgets(); + } + +void BudgetDisplay::saveColumnSize ( int column, int oldsize, int newsize ) + { + switch ( column ) + { + case 0: + preferences->changeColumnPreference ( 13, newsize ); + break; + case 1: + preferences->changeColumnPreference ( 14, newsize ); + break; + case 2: + preferences->changeColumnPreference ( 15, newsize ); + break; + } + } + +int BudgetDisplay::getIDColumn () + { + int counter; + int columns = listview->columns(); + for ( counter = 0; counter <= columns; counter++ ) + if ( listview->header()->label ( counter ).length() == 0 ) + return counter; + } + +void BudgetDisplay::newBudget () + { + constructBudgetWindow(); + int response = nb->exec(); + if ( response == 1 ) + { + // open a new budget object + int addedbudget = budget->addBudget ( budgetname->text(), 0, description->text(), currencybox->currencybox->currentText(), day, month, year, day, month, year, 0 ); + transaction->clearBudgetIDs ( addedbudget ); + displayBudgetNames(); + } + checkBudgets(); + } + +void BudgetDisplay::constructBudgetWindow () + { + //construct and format the new budget window + nb = new QDialog ( this, 0, TRUE ); + nb->setCaption ( "Budget" ); + QLabel *namelabel = new QLabel ( "Budget Name", nb ); + budgetname = new QLineEdit ( nb ); + QLabel *descriptionlabel = new QLabel ( "Description", nb ); + description = new QLineEdit ( nb ); + currencybox = new Currency ( nb ); + QBoxLayout *layout = new QVBoxLayout ( nb, 2, 2 ); + layout->addWidget ( namelabel ); + layout->addWidget ( budgetname ); + layout->addWidget ( descriptionlabel ); + layout->addWidget ( description ); + layout->addWidget ( currencybox ); + } + +void BudgetDisplay::displayBudgetNames () + { + budgetbox->clear(); + if ( budget->getNumberOfBudgets() != 0 ) + { + ids = budget->getBudgetIDs(); + for ( QStringList::Iterator it = ids->begin(); it != ids->end(); ++it ) + { + QString flag = "/opt/QtPalmtop/pics/flags/"; + flag.append ( budget->getCurrency ( (*it).toInt() ) ); + flag.append ( ".png" ); + budgetbox->insertItem ( QPixmap ( flag ), budget->getBudgetName ( (*it).toInt() ) ); + } + setCurrentBudget ( 0 ); + } + else + checkBudgets(); + } + +void BudgetDisplay::setCurrentBudget ( int index ) + { + currentbudget = ( ids->operator[] ( index ).toInt() ); + displayLineItems(); + } + +void BudgetDisplay::setCurrentView ( int index ) + { + displayLineItems(); + } + +void BudgetDisplay::showCalendar () + { + // create new calendar object and show it + DatePicker *dp = new DatePicker ( QDate ( year, month, day ) ); + dp->daylabel->hide(); + dp->daybox->hide(); + if ( budgetview->currentItem() == 1 ) + { + dp->monthlabel->hide(); + dp->monthbox->hide(); + } + dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); + + int response = dp->exec(); + if ( response == 1 ) + { + // Set date integers + year = dp->getYear(); + if ( budgetview->currentItem() == 0 ) + month = dp->getMonth(); + else + month = newDate.month(); + datelabel = preferences->getDate ( year, month ); + displayLineItems(); + } + } + +void BudgetDisplay::newLineItem () + { + //construct and format the new line item window + constructLineItemWindow (); + + int response = newlineitem->exec(); + if ( response == 1 ) + { + float amount; + if ( lineitemtime->currentItem() == 0 ) + amount = lineitemamount->text().toFloat(); + else if ( lineitemtime->currentItem() == 1 ) + amount = lineitemamount->text().toFloat() * 12; + else + amount = lineitemamount->text().toFloat() * 52; + int lineitemadded = budget->addLineItem ( currentbudget, lineitemname->text(), amount, lineitemtime->currentItem() ); + transaction->clearBudgetIDs ( currentbudget, lineitemadded ); + displayLineItems(); + } + checkBudgets(); + } + +void BudgetDisplay::constructLineItemWindow () + { + //construct and format the new budget window + newlineitem = new QDialog ( this, 0, TRUE ); + newlineitem->setCaption ( "Line Item" ); + QLabel *namelabel = new QLabel ( "Line Item Name", newlineitem ); + lineitemname = new QLineEdit ( newlineitem ); + QLabel *budgetamountlabel = new QLabel ( "Budget Amount", newlineitem ); + lineitemamount = new QLineEdit ( newlineitem ); + QLabel *lineitemtimelabel = new QLabel ( "Per:", newlineitem ); + lineitemtime = new QComboBox ( newlineitem ); + lineitemtime->insertItem ( "Year" ); // type 0 + lineitemtime->insertItem ( "Month" ); // type 1 + lineitemtime->insertItem ( "Week" ); // type 2 + QBoxLayout *layout = new QVBoxLayout ( newlineitem, 2, 2 ); + layout->addWidget ( namelabel ); + layout->addWidget ( lineitemname ); + layout->addWidget ( budgetamountlabel ); + layout->addWidget ( lineitemamount ); + layout->addWidget ( lineitemtimelabel ); + layout->addWidget ( lineitemtime ); + } + +void BudgetDisplay::deleteLineItem () + { + if ( listview->selectedItem() != 0 ) + { + int lineitemid = listview->selectedItem()->text ( getIDColumn() ).toInt(); + transaction->clearBudgetIDs ( currentbudget, lineitemid ); + budget->deleteLineItem ( currentbudget, lineitemid ); + displayBudgetNames(); + } + else + QMessageBox::warning ( this, "QashMoney", "Please select a line item to delete." ); + checkBudgets(); + } + +void BudgetDisplay::displayLineItems () + { + listview->clear(); + if ( budget->getNumberOfBudgets() != 0 ) + { + QString budgettable = budgetbox->currentText(); + budgettable.append ( QString::number ( currentbudget ) ); + budget->displayLineItems ( currentbudget, listview, month, year, budgetview->currentItem() ); + totalactual = transaction->getActualTotal ( currentbudget, year, month, budgetview->currentItem() ); + totalbudget = budget->getBudgetTotal ( currentbudget, budgetview->currentItem() ); + updateBudgetInformation(); + } + } + +void BudgetDisplay::checkBudgets () + { + if ( budget->getNumberOfBudgets() == 0 ) + { + budgetview->setEnabled ( FALSE ); + budgetmenu->setItemEnabled ( 2, FALSE ); + budgetmenu->setItemEnabled ( 3, FALSE ); + lineitemsmenu->setItemEnabled ( 1, FALSE ); + lineitemsmenu->setItemEnabled ( 2, FALSE ); + lineitemsmenu->setItemEnabled ( 3, FALSE ); + } + else + { + budgetview->setEnabled ( TRUE ); + budgetmenu->setItemEnabled ( 2, TRUE ); + budgetmenu->setItemEnabled ( 3, TRUE ); + lineitemsmenu->setItemEnabled ( 1, TRUE ); + lineitemsmenu->setItemEnabled ( 2, FALSE ); + lineitemsmenu->setItemEnabled ( 3, FALSE ); + + if ( budget->getNumberOfLineItems ( currentbudget ) != 0 ) + { + lineitemsmenu->setItemEnabled ( 2, TRUE ); + lineitemsmenu->setItemEnabled ( 3, TRUE ); + } + } + } + +void BudgetDisplay::updateBudgetInformation () + { + if ( budgetview->currentItem() == 0 ) + { + datelabel = preferences->getDate ( year, month ); + datelabel.prepend ( "Date: " ); + date->setText ( datelabel ); + } + else + date->setText ( QString::number ( year ) ); + + QString budget = "Budget: "; + budget.append ( totalbudget ); + budgeted->setText ( budget ); + + QString actualamount = "Actual: "; + actualamount.append ( totalactual ); + actual->setText ( actualamount ); + } + +void BudgetDisplay::editBudget () + { + constructBudgetWindow(); + + //set the title + budgetname->setText ( budget->getBudgetName ( currentbudget ) ); + //set the description + description->setText ( budget->getBudgetDescription ( currentbudget ) ); + // retrieve the two character currency code then + // go through the currencty box and find the code + //set the currency box to that index number + int count = currencybox->currencybox->count(); + QString code = budget->getCurrency ( currentbudget ); + for ( int counter = 0; count - 1; counter++ ) + { + if ( QString::compare (currencybox->currencybox->text ( counter ), code ) == 0 ) + { + currencybox->currencybox->setCurrentItem ( counter ); + break; + } + } + int response = nb->exec(); + if ( response == 1 ) + { + budget->updateBudget ( budgetname->text(), description->text(), currencybox->currencybox->currentText(), currentbudget ); + displayBudgetNames(); + } + } + +void BudgetDisplay::editLineItem () + { + if ( listview->selectedItem() != 0 ) + { + constructLineItemWindow(); + + // set the line item name + lineitemname->setText ( listview->selectedItem()->text( 0 ) ); + + // set the line item time combobox + int lineitemtype = budget->getLineItemTime ( currentbudget, listview->selectedItem()->text ( 3 ).toInt() ); + lineitemtime->setCurrentItem ( lineitemtype ); + + // set the line item amount + float amount = budget->getLineItemAmount ( currentbudget, listview->selectedItem()->text ( 3 ).toInt() ); + if ( lineitemtype == 1 ) + amount = amount / 12; + else if ( lineitemtype == 2 ) + amount = amount / 52; + lineitemamount->setText ( QString::number ( amount ) ); + + int response = newlineitem->exec(); + if ( response == 1 ) + { + float amount; + if ( lineitemtime->currentItem() == 0 ) + amount = lineitemamount->text().toFloat(); + else if ( lineitemtime->currentItem() == 1 ) + amount = lineitemamount->text().toFloat() * 12; + else + amount = lineitemamount->text().toFloat() * 52; + budget->updateLineItem ( lineitemname->text(), amount, lineitemtime->currentItem(), currentbudget, listview->selectedItem()->text ( 3 ).toInt() ); + displayLineItems(); + } + } + else + QMessageBox::warning ( this, "QashMoney", "Please select a line item to edit." ); + } + + diff --git a/noncore/apps/qashmoney/budgetdisplay.h b/noncore/apps/qashmoney/budgetdisplay.h new file mode 100755 index 0000000..25e952a --- a/dev/null +++ b/noncore/apps/qashmoney/budgetdisplay.h @@ -0,0 +1,85 @@ +#ifndef BUDGETDISPLAY_H +#define BUDGETDISPLAY_H + +#include <qlistview.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qcombobox.h> +#include <qlayout.h> +#include <qlabel.h> +#include <qstringlist.h> +#include <qdatetime.h> +#include <qpe/qpemenubar.h> +#include <qpopupmenu.h> +#include <qhbox.h> + +#include "currency.h" + +class BudgetDisplay : public QWidget + { + Q_OBJECT + + public: + BudgetDisplay ( QWidget *parent ); + + QPEMenuBar *menu; + QPopupMenu *budgetmenu; + QPopupMenu *lineitemsmenu; + QPopupMenu *datemenu; + + QHBox *firstline; + QHBox *secondline; + + QLabel *budgeted; + QLabel *actual; + QLabel *date; + + QLineEdit *budgetname; + QLineEdit *description; + Currency *currencybox; + + QLineEdit *lineitemname; + QLineEdit *lineitemamount; + QComboBox *lineitemtime; + + QListView *listview; + QComboBox *budgetbox; + QComboBox *budgetview; + + QBoxLayout *layout; + + int getIDColumn (); + + public slots: + void displayBudgetNames (); + void displayLineItems (); + void updateBudgetInformation (); + + private slots: + void saveColumnSize ( int column, int oldsize, int newsize ); + void newBudget (); + void deleteBudget (); + void setCurrentBudget ( int ); + void setCurrentView ( int ); + void showCalendar (); + void newLineItem (); + void deleteLineItem (); + void checkBudgets (); + void editBudget (); + void editLineItem (); + void constructBudgetWindow (); + void constructLineItemWindow (); + + private: + QStringList *names; + QStringList *ids; + int currentbudget, year, month, day; + QDate newDate; + QString totalbudget, totalactual; + QString datelabel; + QDialog *nb; + QDialog *newlineitem; +}; + +#endif // BUDGETDISPLAY_H + diff --git a/noncore/apps/qashmoney/calculator.cpp b/noncore/apps/qashmoney/calculator.cpp new file mode 100755 index 0000000..0e0a043 --- a/dev/null +++ b/noncore/apps/qashmoney/calculator.cpp @@ -0,0 +1,113 @@ +#include "calculator.h" + +#include <qpushbutton.h> + +Calculator::Calculator ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) + { + + display = new QLineEdit ( this, "display" ); + display->setFrame ( FALSE ); + display->setAlignment ( Qt::AlignRight ); + + QPushButton *one = new QPushButton ( "1", this, "one" ); // make buttons for first row + one->setFlat ( TRUE ); + connect ( one, SIGNAL ( released () ), this, SLOT ( displayOne () ) ); + + QPushButton *two = new QPushButton ( "2", this, "two" ); + two->setFlat ( TRUE ); + connect ( two, SIGNAL ( released () ), this, SLOT ( displayTwo () ) ); + + QPushButton *three = new QPushButton ( "3", this, "three" ); + three->setFlat ( TRUE ); + connect ( three, SIGNAL ( released () ), this, SLOT ( displayThree () ) ); + + QPushButton *four = new QPushButton ( "4", this, "four" ); // make buttons for second row + four->setFlat ( TRUE ); + connect ( four, SIGNAL ( released () ), this, SLOT ( displayFour () ) ); + + QPushButton *five = new QPushButton ( "5", this, "five" ); + five->setFlat ( TRUE ); + connect ( five, SIGNAL ( released () ), this, SLOT ( displayFive () ) ); + + QPushButton *six = new QPushButton ( "6", this, "six" ); + six->setFlat ( TRUE ); + connect ( six, SIGNAL ( released () ), this, SLOT ( displaySix () ) ); + + QPushButton *seven = new QPushButton ( "7", this, "seven" ); // make buttons for third row + seven->setFlat ( TRUE ); + connect ( seven, SIGNAL ( released () ), this, SLOT ( displaySeven () ) ); + + QPushButton *eight = new QPushButton ( "8", this, "eight" ); + eight->setFlat ( TRUE ); + connect ( eight, SIGNAL ( released () ), this, SLOT ( displayEight () ) ); + + QPushButton *nine = new QPushButton ( "9", this, "nine" ); + nine->setFlat ( TRUE ); + connect ( nine, SIGNAL ( released () ), this, SLOT ( displayNine () ) ); + + QPushButton *zero = new QPushButton ( "0", this, "zero" ); + zero->setFlat ( TRUE ); + connect ( zero, SIGNAL ( released () ), this, SLOT ( displayZero () ) ); + + QPushButton *dp = new QPushButton ( ".", this, "dp" ); + dp->setFlat ( TRUE ); + connect ( dp, SIGNAL ( released () ), this, SLOT ( displayPoint () ) ); + + QPushButton *back = new QPushButton ( "<-", this, "back" ); + back->setFlat ( TRUE ); + connect ( back, SIGNAL ( released () ), this, SLOT ( back () ) ); + + layout = new QGridLayout ( this, 5, 3, 5, 1, "calculatorlayout" ); + layout->addMultiCellWidget ( display, 0, 0, 0, 2 ); + layout->addWidget ( one, 1, 0 ); + layout->addWidget ( two, 1, 1 ); + layout->addWidget ( three, 1, 2 ); + layout->addWidget ( four, 2, 0 ); + layout->addWidget ( five, 2, 1 ); + layout->addWidget ( six, 2, 2 ); + layout->addWidget ( seven, 3, 0 ); + layout->addWidget ( eight, 3, 1 ); + layout->addWidget ( nine, 3, 2 ); + layout->addWidget ( zero, 4, 0 ); + layout->addWidget ( dp, 4, 1 ); + layout->addWidget ( back, 4, 2 ); + + } + +void Calculator::displayOne () + { display->insert ( "1" ); } + +void Calculator::displayTwo () + { display->insert ( "2" ); } + +void Calculator::displayThree () + { display->insert ( "3" ); } + +void Calculator::displayFour () + { display->insert ( "4" ); } + +void Calculator::displayFive () + { display->insert ( "5" ); } + +void Calculator::displaySix () + { display->insert ( "6" ); } + +void Calculator::displaySeven () + { display->insert ( "7" ); } + +void Calculator::displayEight () + { display->insert ( "8" ); } + +void Calculator::displayNine () + { display->insert ( "9" ); } + +void Calculator::displayZero () + { display->insert ( "0" ); } + +void Calculator::displayPoint () + { display->insert ( "." ); } + +void Calculator::back () + { display->backspace(); } + + diff --git a/noncore/apps/qashmoney/calculator.h b/noncore/apps/qashmoney/calculator.h new file mode 100755 index 0000000..56dc1bc --- a/dev/null +++ b/noncore/apps/qashmoney/calculator.h @@ -0,0 +1,50 @@ +#ifndef CALCULATOR_H +#define CALCULATOR_H + +#include <qdialog.h> +#include <qlayout.h> +#include <qlineedit.h> + +class Calculator : public QDialog +{ + Q_OBJECT + + public: + + Calculator ( QWidget* parent ); + + QLineEdit* display; + + private slots: + + void displayOne (); + void displayTwo (); + void displayThree (); + void displayFour (); + void displayFive (); + void displaySix (); + void displaySeven (); + void displayEight (); + void displayNine (); + void displayZero (); + void displayPoint (); + void back (); + + private: + + QGridLayout *layout; + +}; + +#endif + + + + + + + + + + + diff --git a/noncore/apps/qashmoney/currency.cpp b/noncore/apps/qashmoney/currency.cpp new file mode 100755 index 0000000..20412a7 --- a/dev/null +++ b/noncore/apps/qashmoney/currency.cpp @@ -0,0 +1,80 @@ +#include "currency.h" + +Currency::Currency ( QWidget *parent ) : QWidget ( parent ) + { + currencylabel = new QLabel ( "Currency", this ); + currencybox = new QComboBox ( this ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/AE.png"), "AE" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/AR.png"), "AR" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/AT.png"), "AT" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/AU.png"), "AU" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/BD.png"), "BD" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/BE.png"), "BE" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/BH.png"), "BH" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/BR.png"), "BR" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/BW.png"), "BW" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/CA.png"), "CA" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/CH.png"), "CH" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/CL.png"), "CL" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/CN.png"), "CN" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/CO.png"), "CO" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/CZ.png"), "CZ" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/DE.png"), "DE" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/DK.png"), "DK" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/DO.png"), "DO" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/EG.png"), "EG" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/ES.png"), "ES" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/EU.png"), "EU" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/FL.png"), "FL" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/FR.png"), "FR" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/GB.png"), "GB" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/GR.png"), "GR" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/HK.png"), "HK" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/HU.png"), "HU" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/ID.png"), "ID" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/IE.png"), "IE" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/IL.png"), "IL" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/IN.png"), "IN" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/IQ.png"), "IQ" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/IS.png"), "IS" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/IT.png"), "IT" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/JO.png"), "JO" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/JP.png"), "JP" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/KR.png"), "KR" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/LB.png"), "LB" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/LK.png"), "LK" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/LU.png"), "LU" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/MX.png"), "MX" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/MY.png"), "MY" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/NL.png"), "NL" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/NO.png"), "NO" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/NP.png"), "NP" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/NZ.png"), "NZ" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/OM.png"), "OM" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/PE.png"), "PE" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/PH.png"), "PH" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/PK.png"), "PK" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/PL.png"), "PL" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/PT.png"), "PT" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/QA.png"), "QA" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/SA.png"), "SA" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/SE.png"), "SE" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/SG.png"), "SG" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/SI.png"), "SK" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/TH.png"), "TH" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/TR.png"), "TR" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/TW.png"), "TW" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/US.png"), "US" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/UY.png"), "UY" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/VE.png"), "VE" ); + currencybox->insertItem ( QPixmap ( "/opt/QtPalmtop/pics/flags/ZA.png"), "ZA" ); + + layout = new QVBoxLayout ( this ); + layout->addWidget ( currencylabel ); + layout->addWidget ( currencybox ); + } + + + + + diff --git a/noncore/apps/qashmoney/currency.h b/noncore/apps/qashmoney/currency.h new file mode 100755 index 0000000..08bb3c1 --- a/dev/null +++ b/noncore/apps/qashmoney/currency.h @@ -0,0 +1,23 @@ +#ifndef CURRENCY_H +#define CURRENCY_H + +#include <qgroupbox.h> +#include <qlabel.h> +#include <qcombobox.h> +#include <qpixmap.h> +#include <qlayout.h> + +class Currency : public QWidget + { + Q_OBJECT + + public: + + Currency ( QWidget *parent ); + QLabel *currencylabel; + QComboBox *currencybox; + QBoxLayout *layout; + }; + +#endif + diff --git a/noncore/apps/qashmoney/datepicker.cpp b/noncore/apps/qashmoney/datepicker.cpp new file mode 100755 index 0000000..02fbcf3 --- a/dev/null +++ b/noncore/apps/qashmoney/datepicker.cpp @@ -0,0 +1,95 @@ +#include "datepicker.h" + +DatePicker::DatePicker ( QDate entrydate ) : QDialog ( 0, 0, TRUE ) + { + setCaption ( "Select Date" ); + date = entrydate; + day = date.day(); + month = date.month(); + year = date.year(); + + daylabel = new QLabel ( "Day", this ); + monthlabel = new QLabel ( "Month", this ); + yearlabel = new QLabel ( "Year", this ); + + daybox = new QComboBox ( this, "daybox" ); + connect ( daybox, SIGNAL ( activated ( int ) ), this, SLOT ( setDay ( int ) ) ); + displayDays ( daybox ); + monthbox = new QComboBox ( this, "monthbox" ); + connect ( monthbox, SIGNAL ( activated ( int ) ), this, SLOT ( setMonth ( int ) ) ); + displayMonths ( monthbox ); + yearbox = new QComboBox ( this, "yearbox" ); + connect ( yearbox, SIGNAL ( activated ( int ) ), this, SLOT ( setYear ( int ) ) ); + displayYears ( yearbox ); + + layout = new QGridLayout ( this, 2, 3, 5, 5, "datepickerlayout" ); + layout->addWidget ( daylabel, 0, 2 ); + layout->addWidget ( monthlabel, 0, 1 ); + layout->addWidget ( yearlabel, 0, 0 ); + layout->addWidget ( daybox, 1, 2 ); + layout->addWidget ( monthbox, 1, 1 ); + layout->addWidget ( yearbox, 1, 0 ); + } + +void DatePicker::displayDays ( QComboBox *daybox ) + { + int counter; + int days = date.daysInMonth(); + for ( counter = 1; counter <= days; counter++ ) + daybox->insertItem ( QString::number ( counter ) ); + daybox->setCurrentItem ( ( date.day() ) - 1 ); + } + +void DatePicker::displayMonths ( QComboBox *monthbox ) + { + int counter; + for ( counter = 1; counter <= 12; counter++ ) + monthbox->insertItem ( QString::number ( counter ) ); + monthbox->setCurrentItem ( ( date.month() ) - 1 ); + } + +void DatePicker::displayYears ( QComboBox *yearbox ) + { + int counter; + int indexcounter = 0; + int yearindex = 0; + int year = date.year(); + for ( counter = ( year - 1 ); counter <= ( year + 1 ); counter++ ) + { + yearbox->insertItem ( QString::number ( counter ) ); + if ( date.year() == counter ) + yearindex = indexcounter; + indexcounter ++; + } + yearbox->setCurrentItem ( yearindex ); + } + +void DatePicker::setDay ( int index ) + { + day = daybox->text ( index ).toInt(); + } + +void DatePicker::setMonth ( int index ) + { + month = monthbox->text( index ).toInt(); + } + +void DatePicker::setYear ( int index ) + { + year = yearbox->text ( index ).toInt(); + } + +int DatePicker::getDay () + { return day; } + +int DatePicker::getMonth () + { return month; } + +int DatePicker::getYear () + { return year; } + + + + + + diff --git a/noncore/apps/qashmoney/datepicker.h b/noncore/apps/qashmoney/datepicker.h new file mode 100755 index 0000000..67e63e9 --- a/dev/null +++ b/noncore/apps/qashmoney/datepicker.h @@ -0,0 +1,60 @@ +#ifndef DATEPICKER_H +#define DATEPICKER_H + +#include <qdialog.h> +#include <qlabel.h> +#include <qdatetime.h> +#include <qcombobox.h> +#include <qlayout.h> + +class DatePicker : public QDialog + + { + Q_OBJECT + + public: + QLabel *daylabel; + QComboBox *daybox; + + QLabel *monthlabel; + QComboBox *monthbox; + + DatePicker ( QDate entrydate ); + int getDay (); + int getMonth (); + int getYear (); + + private slots: + void setDay ( int ); + void setMonth ( int ); + void setYear ( int ); + + private: + void displayDays ( QComboBox *daybox ); + void displayMonths ( QComboBox *monthbox ); + void displayYears ( QComboBox *yearbox ); + + QDate date; + + QLabel *yearlabel; + QComboBox *yearbox; + + QGridLayout *layout; + + int day, month, year; + + }; + +#endif + + + + + + + + + + + + diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/apps/Applications/qashmoney.desktop b/noncore/apps/qashmoney/install/opt/QtPalmtop/apps/Applications/qashmoney.desktop new file mode 100755 index 0000000..e2ea077 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/apps/Applications/qashmoney.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Comment=QashMoney, budget software for the Z +Exec=qashmoney +Icon=qashmoney.png +Name=QashMoney +Terminal=false +Type=Application diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/editaccountwindow.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/editaccountwindow.png Binary files differnew file mode 100755 index 0000000..e0bbdcb --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/editaccountwindow.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/editbudgetwindow.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/editbudgetwindow.png Binary files differnew file mode 100755 index 0000000..6645487 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/editbudgetwindow.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/memorywindow.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/memorywindow.png Binary files differnew file mode 100755 index 0000000..df40275 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/memorywindow.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/newbudgetwindow.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/newbudgetwindow.png Binary files differnew file mode 100755 index 0000000..1fe4bbe --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/newbudgetwindow.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/newlineitemwindow.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/newlineitemwindow.png Binary files differnew file mode 100755 index 0000000..66c7b13 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/help/html/newlineitemwindow.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/date.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/date.png Binary files differnew file mode 100755 index 0000000..3ce036e --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/date.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/defaults.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/defaults.png Binary files differnew file mode 100755 index 0000000..6ccd9c8 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/defaults.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/delete.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/delete.png Binary files differnew file mode 100755 index 0000000..1305622 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/delete.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/edit.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/edit.png Binary files differnew file mode 100755 index 0000000..07a5521 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/edit.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AE.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AE.png Binary files differnew file mode 100755 index 0000000..109cd9e --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AE.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AR.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AR.png Binary files differnew file mode 100755 index 0000000..1ca1fce --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AR.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AT.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AT.png Binary files differnew file mode 100755 index 0000000..d236c51 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AT.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AU.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AU.png Binary files differnew file mode 100755 index 0000000..f29d936 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/AU.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BD.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BD.png Binary files differnew file mode 100755 index 0000000..ffe2691 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BD.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BE.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BE.png Binary files differnew file mode 100755 index 0000000..12daf2b --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BE.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BH.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BH.png Binary files differnew file mode 100755 index 0000000..1192ddd --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BH.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BR.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BR.png Binary files differnew file mode 100755 index 0000000..1c3bfc4 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BR.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BW.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BW.png Binary files differnew file mode 100755 index 0000000..e9ef51c --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/BW.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CA.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CA.png Binary files differnew file mode 100755 index 0000000..30d9cf9 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CA.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CH.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CH.png Binary files differnew file mode 100755 index 0000000..2312b8c --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CH.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CL.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CL.png Binary files differnew file mode 100755 index 0000000..065c1fb --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CL.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CN.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CN.png Binary files differnew file mode 100755 index 0000000..6c3eca5 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CN.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CO.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CO.png Binary files differnew file mode 100755 index 0000000..3f45ba1 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CO.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CZ.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CZ.png Binary files differnew file mode 100755 index 0000000..345442e --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/CZ.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DE.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DE.png Binary files differnew file mode 100755 index 0000000..f5d0eec --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DE.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DK.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DK.png Binary files differnew file mode 100755 index 0000000..58066ef --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DK.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DO.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DO.png Binary files differnew file mode 100755 index 0000000..54b8d31 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/DO.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/EG.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/EG.png Binary files differnew file mode 100755 index 0000000..f5b00e4 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/EG.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ES.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ES.png Binary files differnew file mode 100755 index 0000000..e6113b5 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ES.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/EU.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/EU.png Binary files differnew file mode 100755 index 0000000..7d2814d --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/EU.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/FI.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/FI.png Binary files differnew file mode 100755 index 0000000..ae3717f --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/FI.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/FR.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/FR.png Binary files differnew file mode 100755 index 0000000..7a57222 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/FR.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/GB.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/GB.png Binary files differnew file mode 100755 index 0000000..38978a7 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/GB.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/GR.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/GR.png Binary files differnew file mode 100755 index 0000000..88aea91 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/GR.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/HK.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/HK.png Binary files differnew file mode 100755 index 0000000..4e2413d --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/HK.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/HU.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/HU.png Binary files differnew file mode 100755 index 0000000..a46f76d --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/HU.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ID.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ID.png Binary files differnew file mode 100755 index 0000000..24466f0 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ID.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IE.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IE.png Binary files differnew file mode 100755 index 0000000..b287a55 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IE.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IL.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IL.png Binary files differnew file mode 100755 index 0000000..883540c --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IL.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IN.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IN.png Binary files differnew file mode 100755 index 0000000..d7e957e --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IN.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IQ.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IQ.png Binary files differnew file mode 100755 index 0000000..e070244 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IQ.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IS.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IS.png Binary files differnew file mode 100755 index 0000000..fe09785 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IS.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IT.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IT.png Binary files differnew file mode 100755 index 0000000..d11b509 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/IT.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/JO.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/JO.png Binary files differnew file mode 100755 index 0000000..5827918 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/JO.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/JP.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/JP.png Binary files differnew file mode 100755 index 0000000..3ef6759 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/JP.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/KR.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/KR.png Binary files differnew file mode 100755 index 0000000..51058cc --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/KR.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LB.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LB.png Binary files differnew file mode 100755 index 0000000..276dee0 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LB.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LK.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LK.png Binary files differnew file mode 100755 index 0000000..0d15516 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LK.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LU.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LU.png Binary files differnew file mode 100755 index 0000000..79c2f10 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/LU.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/MX.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/MX.png Binary files differnew file mode 100755 index 0000000..0da3e22 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/MX.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/MY.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/MY.png Binary files differnew file mode 100755 index 0000000..b240e3f --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/MY.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NL.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NL.png Binary files differnew file mode 100755 index 0000000..b4d04ca --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NL.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NO.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NO.png Binary files differnew file mode 100755 index 0000000..09dc0ad --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NO.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NP.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NP.png Binary files differnew file mode 100755 index 0000000..b866254 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NP.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NZ.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NZ.png Binary files differnew file mode 100755 index 0000000..eba8917 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/NZ.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/OM.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/OM.png Binary files differnew file mode 100755 index 0000000..6a675c2 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/OM.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PE.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PE.png Binary files differnew file mode 100755 index 0000000..61a4c7f --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PE.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PH.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PH.png Binary files differnew file mode 100755 index 0000000..415e537 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PH.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PK.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PK.png Binary files differnew file mode 100755 index 0000000..f940d6b --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PK.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PL.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PL.png Binary files differnew file mode 100755 index 0000000..b7cf99d --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PL.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PT.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PT.png Binary files differnew file mode 100755 index 0000000..a46a487 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/PT.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/QA.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/QA.png Binary files differnew file mode 100755 index 0000000..bb1493e --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/QA.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SA.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SA.png Binary files differnew file mode 100755 index 0000000..d0cdaef --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SA.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SE.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SE.png Binary files differnew file mode 100755 index 0000000..304469f --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SE.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SG.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SG.png Binary files differnew file mode 100755 index 0000000..eba51bc --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SG.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SI.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SI.png Binary files differnew file mode 100755 index 0000000..3014a8f --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SI.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SK.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SK.png Binary files differnew file mode 100755 index 0000000..f6d6b78 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/SK.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TH.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TH.png Binary files differnew file mode 100755 index 0000000..6e76f54 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TH.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TR.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TR.png Binary files differnew file mode 100755 index 0000000..7c6a798 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TR.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TW.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TW.png Binary files differnew file mode 100755 index 0000000..f87bdc1 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/TW.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/US.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/US.png Binary files differnew file mode 100755 index 0000000..33819b5 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/US.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/UY.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/UY.png Binary files differnew file mode 100755 index 0000000..de0498a --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/UY.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/VE.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/VE.png Binary files differnew file mode 100755 index 0000000..35d6608 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/VE.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ZA.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ZA.png Binary files differnew file mode 100755 index 0000000..6e9d2e3 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/flags/ZA.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/info.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/info.png Binary files differnew file mode 100755 index 0000000..7b01c03 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/info.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/kcalc.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/kcalc.png Binary files differnew file mode 100755 index 0000000..6d5cb68 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/kcalc.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/new.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/new.png Binary files differnew file mode 100755 index 0000000..5b9f95d --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/new.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/qashmoney.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/qashmoney.png Binary files differnew file mode 100755 index 0000000..c17d28f --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/qashmoney.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/redo.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/redo.png Binary files differnew file mode 100755 index 0000000..ade2ea8 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/redo.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/save.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/save.png Binary files differnew file mode 100755 index 0000000..22f20ea --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/save.png diff --git a/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/transfer.png b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/transfer.png Binary files differnew file mode 100755 index 0000000..3738987 --- a/dev/null +++ b/noncore/apps/qashmoney/install/opt/QtPalmtop/pics/transfer.png diff --git a/noncore/apps/qashmoney/ipkg-build b/noncore/apps/qashmoney/ipkg-build new file mode 100755 index 0000000..3ec1364 --- a/dev/null +++ b/noncore/apps/qashmoney/ipkg-build @@ -0,0 +1,163 @@ +#!/bin/sh + +# ipkg-build -- construct a .ipk from a directory +# Carl Worth <cworth@east.isi.edu> +# based on a script by Steve Redler IV, steve@sr-tech.com 5-21-2001 +set -e + +ipkg_extract_value() { + sed -e "s/^[^:]*:[[:space:]]*//" +} + +required_field() { + field=$1 + + value=`grep "^$field:" < $CONTROL/control | ipkg_extract_value` + if [ -z "$value" ]; then + echo "*** Error: $CONTROL/control is missing field $field" >&2 + return 1 + fi + echo $value + return 0 +} + +pkg_appears_sane() { + local pkg_dir=$1 + + local owd=`pwd` + cd $pkg_dir + + PKG_ERROR=0 + + large_uid_files=`find . -uid +99` + if [ -n "$large_uid_files" ]; then + echo "*** Warning: The following files have a UID greater than 99. +You probably want to chown these to a system user: " >&2 + ls -ld $large_uid_files + echo >&2 + fi + + + if [ ! -f "$CONTROL/control" ]; then + echo "*** Error: Control file $pkg_dir/$CONTROL/control not found." >&2 + cd $owd + return 1 + fi + + pkg=`required_field Package` + [ "$?" -ne 0 ] && PKG_ERROR=1 + + version=`required_field Version | sed 's/.*://;'` + [ "$?" -ne 0 ] && PKG_ERROR=1 + + arch=`required_field Architecture` + [ "$?" -ne 0 ] && PKG_ERROR=1 + + required_field Maintainer >/dev/null + [ "$?" -ne 0 ] && PKG_ERROR=1 + + required_field Description >/dev/null + [ "$?" -ne 0 ] && PKG_ERROR=1 + + section=`required_field Section` + [ "$?" -ne 0 ] && PKG_ERROR=1 + if [ -z "$section" ]; then + echo "The Section field should have one of the following values:" >&2 + echo "Games, Multimedia, Communications, Settings, Utilies, Applications, Console, Misc" >&2 + fi + + priority=`required_field Priority` + [ "$?" -ne 0 ] && PKG_ERROR=1 + if [ -z "$priority" ]; then + echo "The Priority field should have one of the following values:" >&2 + echo "required, important, standard, optional, extra." >&2 + echo "If you don't know which priority value you should be using, then use \`optional'" >&2 + fi + + if echo $pkg | grep '[^a-z0-9.+-]'; then + echo "*** Error: Package name $name contains illegal characters, (other than [a-z0-9.+-])" >&2 + PKG_ERROR=1; + fi + + local bad_fields=`sed -ne 's/^\([^[:space:]][^:[:space:]]\+[[:space:]]\+\)[^:].*/\1/p' < $CONTROL/control | sed -e 's/\\n//'` + if [ -n "$bad_fields" ]; then + bad_fields=`echo $bad_fields` + echo "*** Error: The following fields in $CONTROL/control are missing a ':'" >&2 + echo " $bad_fields" >&2 + echo "ipkg-build: This may be due to a missing initial space for a multi-line field value" >&2 + PKG_ERROR=1 + fi + + for script in $CONTROL/preinst $CONTROL/postinst $CONTROL/prerm $CONTROL/postrm; do + if [ -f $script -a ! -x $script ]; then + echo "*** Error: package script $script is not executable" >&2 + PKG_ERROR=1 + fi + done + + if [ -f $CONTROL/conffiles ]; then + for cf in `cat $CONTROL/conffiles`; do + if [ ! -f ./$cf ]; then + echo "*** Error: $CONTROL/conffiles mentions conffile $cf which does not exist" >&2 + PKG_ERROR=1 + fi + done + fi + + cd $owd + return $PKG_ERROR +} + +### +# ipkg-build "main" +### + +case $# in +1) + dest_dir=. + ;; +2) + dest_dir=$2 + ;; +*) + echo "Usage: ipkg-build <pkg_directory> [<destination_directory>]" >&2 + exit 1 + ;; +esac + +pkg_dir=$1 + +if [ ! -d $pkg_dir ]; then + echo "*** Error: Directory $pkg_dir does not exist" >&2 + exit 1 +fi + +# CONTROL is second so that it takes precedence +CONTROL= +[ -d $pkg_dir/DEBIAN ] && CONTROL=DEBIAN +[ -d $pkg_dir/CONTROL ] && CONTROL=CONTROL +if [ -z "$CONTROL" ]; then + echo "*** Error: Directory $pkg_dir has no CONTROL subdirectory." >&2 + exit 1 +fi + +if ! pkg_appears_sane $pkg_dir; then + echo >&2 + echo "ipkg-build: Please fix the above errors and try again." >&2 + exit 1 +fi + +tmp_dir=$dest_dir/IPKG_BUILD.$$ +mkdir $tmp_dir + +tar -C $pkg_dir -czf $tmp_dir/data.tar.gz . --exclude=$CONTROL +tar -C $pkg_dir/$CONTROL -czf $tmp_dir/control.tar.gz . + +echo "2.0" > $tmp_dir/debian-binary + +pkg_file=$dest_dir/${pkg}_${version}_${arch}.ipk +tar -C $tmp_dir -czf $pkg_file ./debian-binary ./data.tar.gz ./control.tar.gz +rm $tmp_dir/debian-binary $tmp_dir/data.tar.gz $tmp_dir/control.tar.gz +rmdir $tmp_dir + +echo "Packaged contents of $pkg_dir into $pkg_file" diff --git a/noncore/apps/qashmoney/main.cpp b/noncore/apps/qashmoney/main.cpp new file mode 100755 index 0000000..f86be89 --- a/dev/null +++ b/noncore/apps/qashmoney/main.cpp @@ -0,0 +1,13 @@ +#include <qpe/qpeapplication.h> +#include "qashmoney.h" + +int main( int argc, char **argv ) + { + QPEApplication a ( argc, argv ); + QashMoney qashmoney; + a.showMainWidget ( &qashmoney ); + return a.exec(); + } + + + diff --git a/noncore/apps/qashmoney/make_ipk b/noncore/apps/qashmoney/make_ipk new file mode 100755 index 0000000..d477c83 --- a/dev/null +++ b/noncore/apps/qashmoney/make_ipk @@ -0,0 +1,41 @@ +# Use this script to make the IPK file for distribution +# It assumes you are the root user. Ipkg likes to have all +# its files owned by root and this script does that. +# Change the user name from "allen" to your user name +# If you want to use this script + +# Set the environment variables for the arm environment +echo "Setting environment variables..." +source arm.sh + +# Remove any exisitng IPK files +echo "Removing exisiting IPK files..." +rm -rf *.ipk + +# Strip the binary file +echo "Stripping the binary file..." +arm-linux-strip qashmoney + +# Move the file to the right location +echo "Moving the binary file..." +mv qashmoney install/opt/QtPalmtop/bin && + +# Change ownership of all the files +echo "Changing ownership of all files..." +chown -R root install +chgrp -R root install +chmod -R 0777 install + +# Make the IPK +echo "Making the IPK file..." +./ipkg-build install + +# Remove the binary from the bin directory so we can make the tarball +echo "Removing qashmoney binary file..." +rm -rf install/opt/QtPalmtop/bin/qashmoney + +# Restore ownership of all files +echo "Restoring ownership of all files..." +chown -R allen install +chgrp -R allen install +chmod -R 0777 install diff --git a/noncore/apps/qashmoney/memorydialog.cpp b/noncore/apps/qashmoney/memorydialog.cpp new file mode 100755 index 0000000..e9ebd54 --- a/dev/null +++ b/noncore/apps/qashmoney/memorydialog.cpp @@ -0,0 +1,86 @@ +#include "memorydialog.h" +#include "memory.h" +#include <qmessagebox.h> + +extern Memory *memory; + +MemoryDialog::MemoryDialog () : QDialog ( 0, 0, TRUE ) +{ + setCaption ( tr ( "Edit Memory" ) ); + + listbox = new QListBox ( this, "listbox" ); + memory->displayMemoryItems ( listbox ); + listbox->clearSelection(); + + secondline = new QHBox ( this ); + + newbutton = new QPushButton ( secondline ); + newbutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/new.png") ); + connect ( newbutton, SIGNAL ( released () ), this, SLOT ( addItem () ) ); + + editbutton = new QPushButton ( secondline ); + editbutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); + connect ( editbutton, SIGNAL ( released () ), this, SLOT ( editItem () ) ); + + deletebutton = new QPushButton( secondline ); + deletebutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/delete.png") ); + connect ( deletebutton, SIGNAL ( released () ), this, SLOT ( deleteItem () ) ); + + lineedit = new QLineEdit ( this ); + + layout = new QVBoxLayout ( this, 2, 2 ); + layout->addWidget ( listbox ); + layout->addWidget ( secondline ); + layout->addWidget ( lineedit ); +} + +MemoryDialog::~MemoryDialog() + { + } + +void MemoryDialog::addItem () + { + if ( lineedit->text().length() != 0 ) + { + memory->addMemoryItem ( lineedit->text() ); + listbox->clear (); + memory->displayMemoryItems ( listbox ); + listbox->clearFocus(); + listbox->clearSelection (); + lineedit->clear(); + } + } + +void MemoryDialog::editItem () + { + if ( listbox->currentItem() != -1 ) + { + lineedit->setText ( listbox->currentText() ); + memory->deleteMemoryItem ( listbox->currentText() ); + listbox->clear (); + memory->displayMemoryItems ( listbox ); + listbox->clearSelection(); + } + else + QMessageBox::warning ( this, "QashMoney", "Please select an item to edit." ); + } + +void MemoryDialog::deleteItem () + { + if ( listbox->currentItem() != -1 ) + { + memory->deleteMemoryItem ( listbox->currentText() ); + listbox->clear (); + memory->displayMemoryItems ( listbox ); + listbox->clearSelection(); + } + else + QMessageBox::warning ( this, "QashMoney", "Please select an item to delete." ); + } + + + + + + + diff --git a/noncore/apps/qashmoney/memorydialog.h b/noncore/apps/qashmoney/memorydialog.h new file mode 100755 index 0000000..3491823 --- a/dev/null +++ b/noncore/apps/qashmoney/memorydialog.h @@ -0,0 +1,40 @@ +#ifndef MEMORYDIALOG_H +#define MEMORYDIALOG_H + +#include <qdialog.h> +#include <qlistbox.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qlayout.h> +#include <qstring.h> +#include <qhbox.h> + +class MemoryDialog : public QDialog + { + Q_OBJECT + + public: + MemoryDialog(); + ~MemoryDialog(); + + private slots: + void addItem(); + void editItem(); + void deleteItem(); + + private: + + QHBox *secondline; + + QListBox* listbox; + + QLineEdit* lineedit; + + QPushButton* newbutton; + QPushButton* editbutton; + QPushButton* deletebutton; + + QBoxLayout *layout; +}; + +#endif diff --git a/noncore/apps/qashmoney/newaccount.cpp b/noncore/apps/qashmoney/newaccount.cpp new file mode 100755 index 0000000..2ad8f60 --- a/dev/null +++ b/noncore/apps/qashmoney/newaccount.cpp @@ -0,0 +1,209 @@ +#include "newaccount.h" +#include "calculator.h" +#include "datepicker.h" +#include "transaction.h" +#include "preferences.h" +#include <qdatetime.h> +#include <qmultilineedit.h> + +extern Preferences *preferences; + +NewAccount::NewAccount ( QWidget *parent, const char *name, bool modal ) : QDialog ( parent, name, modal ) + { + accountdescription = ""; + dateedited = FALSE; + setCaption( tr( "Account" ) ); + + namelabel = new QLabel ( "Account Name", this ); + + accountbox = new QHBox ( this ); + accountname = new QLineEdit ( accountbox ); + descriptionbutton = new QPushButton ( accountbox ); + descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); + + datelabel = new QLabel ( "Date", this ); + + datebox = new QHBox ( this ); + startdate = new QLineEdit ( datebox ); + startdate->setDisabled ( TRUE ); + datebutton = new QPushButton ( datebox ); + datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); + + childcheckbox = new QCheckBox ( this ); + childcheckbox->setText( tr ( "Child Account" ) ); + + childlabel = new QLabel ( "Child of", this ); + childbox = new QComboBox ( FALSE, this ); + hideChildPulldownMenu (); + + balancelabel = new QLabel ( "Balance", this ); + + balancebox = new QHBox ( this ); + accountbalance = new QLineEdit ( balancebox ); + accountbalance->setText ( "0.00" ); + balancecalculator = new QPushButton( balancebox ); + balancecalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); + + creditlimitlabel = new QLabel ( "Credit Limit", this ); + + creditlimitbox = new QHBox ( this ); + creditlimit = new QLineEdit ( creditlimitbox ); + creditlimitbox->setEnabled ( FALSE ); + creditlimitcalculator = new QPushButton( creditlimitbox ); + creditlimitcalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); + + currencybox = new Currency ( this ); + + typelabel = new QLabel ( "Type", this ); + accounttype = new QComboBox ( FALSE, this ); + accounttype->insertItem( tr( "Bank" ) ); + accounttype->insertItem( tr( "Cash" ) ); + accounttype->insertItem( tr( "Credit Card" ) ); + accounttype->insertItem( tr( "Equity" ) ); + accounttype->insertItem( tr( "Asset" ) ); + accounttype->insertItem( tr( "Liability" ) ); + + layout = new QGridLayout ( this, 7, 2, 4, 2 ); + layout->addWidget ( namelabel , 0, 0, Qt::AlignLeft ); + layout->addWidget ( accountbox, 1, 0, Qt::AlignLeft ); + layout->addWidget ( datelabel, 2, 0, Qt::AlignLeft ); + layout->addWidget ( datebox, 3, 0, Qt::AlignLeft ); + layout->addWidget ( childcheckbox, 4, 0, Qt::AlignLeft ); + layout->addWidget ( childlabel, 5, 0, Qt::AlignLeft ); + layout->addWidget ( childbox, 6, 0, Qt::AlignLeft ); + layout->addWidget ( balancelabel, 0, 1, Qt::AlignLeft ); + layout->addWidget ( balancebox, 1, 1, Qt::AlignLeft ); + layout->addWidget ( creditlimitlabel, 2, 1, Qt::AlignLeft ); + layout->addWidget ( creditlimitbox, 3, 1, Qt::AlignLeft ); + layout->addWidget ( currencybox, 4, 1, Qt::AlignLeft ); + layout->addWidget ( typelabel, 5, 1, Qt::AlignLeft ); + layout->addWidget ( accounttype, 6, 1, Qt::AlignLeft ); + + connect ( childcheckbox, SIGNAL ( clicked () ), this, SLOT ( showChildPulldownMenu() ) ); + connect ( balancecalculator, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); + connect ( creditlimitcalculator, SIGNAL ( released() ), this, SLOT ( showCreditLimitCalculator() ) ); + connect ( accounttype, SIGNAL ( activated ( int ) ), this, SLOT ( activateCreditLimit ( int ) ) ); + connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); + connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addAccountDescription() ) ); +} + +NewAccount::~NewAccount () + { + } + +void NewAccount::showChildPulldownMenu () + { + if ( childcheckbox->isChecked() == TRUE ) + { + childlabel->setEnabled ( TRUE ); + childbox->setEnabled ( TRUE ); + } + else + hideChildPulldownMenu(); + } + +void NewAccount::hideChildPulldownMenu () + { + childlabel->setEnabled ( FALSE ); + childbox->setEnabled ( FALSE ); + } + +void NewAccount::showCalculator () + { + Calculator *calculator = new Calculator ( this ); + calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); + if ( calculator->exec () == QDialog::Accepted ) + accountbalance->setText ( calculator->display->text() ); + } + +void NewAccount::showCreditLimitCalculator () + { + Calculator *calculator = new Calculator ( this ); + calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); + if ( calculator->exec () == QDialog::Accepted ) + creditlimit->setText ( calculator->display->text() ); + } + +void NewAccount::activateCreditLimit ( int index ) + { + if ( index == 2 || index == 5 ) + creditlimitbox->setEnabled ( TRUE ); + else + { + creditlimit->clear (); + creditlimitbox->setEnabled ( FALSE ); + } + } + +void NewAccount::showCalendar () + { + QDate newDate = QDate::currentDate (); + DatePicker *dp = new DatePicker ( newDate ); + dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); + + int response = dp->exec(); + if ( response == QDialog::Accepted ) + { + // Set date integers + year = dp->getYear(); + month = dp->getMonth(); + day = dp->getDay(); + + // Set dateedited to TRUE + // This tells the accountdisplay object that the user edited an account + // and did change the date + dateedited = TRUE; + + // Display date with our selected format + startdate->setText ( preferences->getDate ( year, month, day ) ); + } + } + +bool NewAccount::getDateEdited () + { + return dateedited; + } + +int NewAccount::getDay () + { + return day; + } + +int NewAccount::getMonth () + { + return month; + } + +int NewAccount::getYear () + { + return year; + } + +QString NewAccount::getDescription () + { + return accountdescription; + } + +void NewAccount::setDescription ( QString description ) + { + accountdescription = description; + } + +void NewAccount::addAccountDescription () + { + // Function for adding or editing an account description. + QDialog *description = new QDialog ( this, "description", TRUE ); + description->setCaption ( "Notes" ); + QMultiLineEdit *enter = new QMultiLineEdit ( description ); + enter->setFixedSize ( ( int ) (this->width() * 0.75 ), ( int ) ( this->height() * 0.5 ) ); + enter->setWrapColumnOrWidth ( ( int ) (this->width() * 0.75 ) ); + enter->setWordWrap ( QMultiLineEdit::WidgetWidth ); + if ( accountdescription != "(NULL)" ) + enter->setText ( accountdescription ); + if ( description->exec () == QDialog::Accepted ) + accountdescription = enter->text (); + } + + + + diff --git a/noncore/apps/qashmoney/newaccount.h b/noncore/apps/qashmoney/newaccount.h new file mode 100755 index 0000000..f8235d5 --- a/dev/null +++ b/noncore/apps/qashmoney/newaccount.h @@ -0,0 +1,87 @@ +#ifndef NEWACCOUNT_H +#define NEWACCOUNT_H + +#include <qbuttongroup.h> +#include <qcombobox.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qradiobutton.h> +#include <qlayout.h> +#include <qdialog.h> +#include <qlabel.h> +#include <qhbox.h> +#include <qcheckbox.h> + +#include "account.h" +#include "preferences.h" +#include "currency.h" + +class NewAccount : public QDialog + { + Q_OBJECT + + public: + NewAccount ( QWidget *parent = 0, const char *name = 0, bool modal = TRUE ); + ~NewAccount(); + + QLabel *namelabel; + QHBox *accountbox; + QLineEdit* accountname; + QPushButton* descriptionbutton; + + QHBox *datebox; + QLabel *datelabel; + QLineEdit* startdate; + QPushButton* datebutton; + + QCheckBox* childcheckbox; + + QLabel *childlabel; + QComboBox *childbox; + + QLabel *balancelabel; + QHBox *balancebox; + QLineEdit* accountbalance; + QPushButton* balancecalculator; + + QLabel *creditlimitlabel; + QHBox *creditlimitbox; + QLineEdit* creditlimit; + QPushButton* creditlimitcalculator; + + Currency *currencybox; + + QLabel *typelabel; + QComboBox* accounttype; + + QGridLayout *layout; + + int getDay (); + int getMonth (); + int getYear (); + QString getDescription (); + void setDescription ( QString ); + + // When a user edits an account and edits the date, this flag + // is set to TRUE adding the new date to the account. Otherwise, + // the old date is used for the edited account. This prevents a date + // from reverting to 0/0/0 if the date is not edited + bool getDateEdited (); + + public slots: + void showChildPulldownMenu(); + void hideChildPulldownMenu(); + void showCalculator(); + void showCreditLimitCalculator (); + void activateCreditLimit ( int ); + void showCalendar (); + void addAccountDescription (); + + private: + int index, year, month, day, currencypreference; + QString accountdescription; + bool dateedited; +}; + +#endif + diff --git a/noncore/apps/qashmoney/newtransaction.cpp b/noncore/apps/qashmoney/newtransaction.cpp new file mode 100755 index 0000000..630a8b8 --- a/dev/null +++ b/noncore/apps/qashmoney/newtransaction.cpp @@ -0,0 +1,276 @@ +#include "newtransaction.h" +#include "calculator.h" +#include "datepicker.h" +#include "memory.h" +#include "budget.h" + +#include <qdatetime.h> +#include <qmultilineedit.h> + +extern Budget *budget; +extern Preferences *preferences; + +NewTransaction::NewTransaction ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) + { + transactiondescription = ""; + currentlineitem = -1; + currentbudget = -1; + dateedited = FALSE; + setCaption( tr( "Transaction" ) ); + + // START FIRST COLUMN + + namelabel = new QLabel ( "Transaction", this ); + + transactionnamebox = new QHBox ( this ); + transactionname = new QComboBox ( transactionnamebox ); + transactionname->setEditable ( TRUE ); + descriptionbutton = new QPushButton ( transactionnamebox ); + descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); + connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addTransactionDescription() ) ); + + amountlabel = new QLabel ( "Amount", this ); + + transactionamountbox = new QHBox ( this ); + transactionamount = new QLineEdit ( transactionamountbox ); + transactionamount->setAlignment ( Qt::AlignRight ); + transactionamount->setText ( "0.00" ); + calculatorbutton = new QPushButton( transactionamountbox ); + calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); + connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); + + datelabel = new QLabel ( "Date", this ); + + transactiondatebox = new QHBox ( this ); + transactiondate = new QLineEdit ( transactiondatebox ); + transactiondate->setAlignment ( Qt::AlignRight ); + transactiondate->setDisabled ( TRUE ); + datebutton = new QPushButton( transactiondatebox ); + datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); + connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); + + clearedcheckbox = new QCheckBox ( "Cleared", this ); + depositbox = new QCheckBox ( "Credit", this ); + + // START SECOND COLUMN + + numberlabel = new QLabel ( "Number", this ); + transactionnumber = new QLineEdit ( this ); + + budgetlabel = new QLabel ( "Budget", this ); + budgetbox = new QComboBox ( FALSE, this ); + + lineitemlabel = new QLabel ( "LineItem", this ); + lineitembox = new QComboBox ( FALSE, this ); + + layout = new QGridLayout ( this, 7, 2, 2, 2 ); + layout->addWidget ( namelabel, 0, 0, Qt::AlignLeft ); + layout->addWidget ( transactionnamebox, 1, 0, Qt::AlignLeft ); + layout->addWidget ( amountlabel, 2, 0, Qt::AlignLeft ); + layout->addWidget ( transactionamountbox, 3, 0, Qt::AlignLeft ); + layout->addWidget ( datelabel, 4, 0, Qt::AlignLeft ); + layout->addWidget ( transactiondatebox, 5, 0, Qt::AlignLeft ); + layout->addWidget ( clearedcheckbox, 6, 0, Qt::AlignLeft ); + layout->addWidget ( numberlabel, 0, 1, Qt::AlignLeft ); + layout->addWidget ( transactionnumber, 1, 1, Qt::AlignLeft ); + layout->addWidget ( budgetlabel, 2, 1, Qt::AlignLeft ); + layout->addWidget ( budgetbox, 3, 1, Qt::AlignLeft ); + layout->addWidget ( lineitemlabel, 4, 1, Qt::AlignLeft ); + layout->addWidget ( lineitembox, 5, 1, Qt::AlignLeft ); + layout->addWidget ( depositbox, 6, 1, Qt::AlignLeft ); + + if ( budget->getNumberOfBudgets() != 0 ) + { + budgetnameslist = budget->getBudgetNames(); + budgetidslist = budget->getBudgetIDs(); + budgetbox->insertStringList ( *budgetnameslist ); + lineitemlabel->setEnabled ( FALSE ); + lineitembox->setEnabled ( FALSE ); + connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); + connect ( lineitembox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentLineItem ( int ) ) ); + } + else + { + budgetlabel->setEnabled ( FALSE ); + budgetbox->setEnabled ( FALSE ); + lineitemlabel->setEnabled ( FALSE ); + lineitembox->setEnabled ( FALSE ); + } + +} + +NewTransaction::~NewTransaction () + { + } + +void NewTransaction::showCalculator () +{ + Calculator *calculator = new Calculator ( this ); + calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); + if ( calculator->exec () == QDialog::Accepted ) + transactionamount->setText ( calculator->display->text() ); +} + +void NewTransaction::showCalendar () + { + QDate newDate = QDate::currentDate (); + DatePicker *dp = new DatePicker ( newDate ); + dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); + + int response = dp->exec(); + if ( response == QDialog::Accepted ) + { + // Set date integers + year = dp->getYear(); + month = dp->getMonth(); + day = dp->getDay(); + + // Set dateedited to TRUE + // This tells the transactiondisplay object that the user edited an transaction + // and did change the date3 + dateedited = TRUE; + + // Display date with our selected format + transactiondate->setText ( preferences->getDate ( year, month, day ) ); + } + } + +bool NewTransaction::getDateEdited () + { + return dateedited; + } + +int NewTransaction::getDay () + { + return day; + } + +int NewTransaction::getMonth () + { + return month; + } + +int NewTransaction::getYear () + { + return year; + } + +QString NewTransaction::getDescription () + { + return transactiondescription; + } + +void NewTransaction::setDescription ( QString description ) + { + transactiondescription = description; + } + +void NewTransaction::addTransactionDescription () + { + // Function for adding or editing an transaction description. + QDialog *description = new QDialog ( this, "description", TRUE ); + description->setCaption ( "Notes" ); + QMultiLineEdit *enter = new QMultiLineEdit ( description ); + enter->setFixedSize ( ( int ) (this->width() * 0.75 ), ( int ) ( this->height() * 0.5 ) ); + enter->setWrapColumnOrWidth ( ( int ) (this->width() * 0.75 ) ); + enter->setWordWrap ( QMultiLineEdit::WidgetWidth ); + if ( transactiondescription != "(NULL)" ) + enter->setText ( transactiondescription ); + if ( description->exec () == QDialog::Accepted ) + transactiondescription = enter->text (); + } + +int NewTransaction::getNameIndex ( QString name ) + { + int counter; + int items = transactionname->count(); + for ( counter = 0; ( items - 1 ); counter++ ) + { + if ( name == transactionname->text ( counter ) ) + { + return counter; + break; + } + } + return 0; + } + +void NewTransaction::setCurrentBudget ( int index ) + { + if ( index != 0 ) + { + currentbudget = budgetidslist->operator[] ( index - 1 ).toInt(); + lineitemslist = budget->getLineItems ( currentbudget ); + lineitemidslist = budget->getLineItemIDs ( currentbudget ); + lineitemlabel->setEnabled ( TRUE ); + lineitembox->setEnabled ( TRUE ); + lineitembox->clear(); + lineitembox->insertStringList ( lineitemslist ); + setCurrentLineItem ( 0 ); + } + else + { + lineitembox->clear(); + lineitemlabel->setEnabled ( FALSE ); + lineitembox->setEnabled ( FALSE ); + currentlineitem = -1; + currentbudget = -1; + } + } + +void NewTransaction::setCurrentLineItem ( int index ) + { + currentlineitem = ( lineitemidslist.operator[] ( index ).toInt() ); + } + +int NewTransaction::getCurrentBudget () + { + return currentbudget; + } + +int NewTransaction::getBudgetIndex ( int budgetid ) + { + currentbudget = budgetid; + const QString budget = QString::number ( budgetid ); + return budgetidslist->findIndex ( budget ); + } + +int NewTransaction::getLineItemIndex ( int lineitemid ) + { + currentlineitem = lineitemid; + const QString lineitem = QString::number ( lineitemid ); + return lineitemidslist.findIndex ( lineitem ); + } + +void NewTransaction::setLineItems () + { + lineitemslist = budget->getLineItems ( currentbudget ); + lineitemidslist = budget->getLineItemIDs ( currentbudget ); + lineitemlabel->setEnabled ( TRUE ); + lineitembox->setEnabled ( TRUE ); + lineitembox->clear(); + lineitembox->insertStringList ( lineitemslist ); + } + +int NewTransaction::getCurrentLineItem () + { + return currentlineitem; + } + +void NewTransaction::setComboBoxes ( int budgetid, int lineitemid ) + { + const QString budgetname = QString::number ( budgetid ); + budgetbox->setCurrentItem ( ( budgetidslist->findIndex ( budgetname ) ) ); + currentbudget = budgetidslist->operator[] ( budgetbox->currentItem() - 1 ).toInt(); + + lineitemslist = budget->getLineItems ( currentbudget ); + lineitemidslist = budget->getLineItemIDs ( currentbudget ); + lineitemlabel->setEnabled ( TRUE ); + lineitembox->setEnabled ( TRUE ); + lineitembox->clear(); + lineitembox->insertStringList ( lineitemslist ); + + const QString lineitem = QString::number ( lineitemid ); + lineitembox->setCurrentItem ( lineitemidslist.findIndex ( lineitem ) ); + currentlineitem = ( lineitemidslist.operator[] ( lineitembox->currentItem() ).toInt() ); + } diff --git a/noncore/apps/qashmoney/newtransaction.h b/noncore/apps/qashmoney/newtransaction.h new file mode 100755 index 0000000..4ee3b9d --- a/dev/null +++ b/noncore/apps/qashmoney/newtransaction.h @@ -0,0 +1,95 @@ +#ifndef NEWTRANSACTION_H +#define NEWTRANSACTION_H + +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qlayout.h> +#include <qcheckbox.h> +#include <qdialog.h> +#include <qlabel.h> +#include <qstringlist.h> +#include <qhbox.h> + +#include "transaction.h" +#include "preferences.h" + +class NewTransaction : public QDialog +{ + Q_OBJECT + + public: + + int year, month, day; + + NewTransaction ( QWidget* parent ); + ~NewTransaction(); + + QLabel *namelabel; + QHBox *transactionnamebox; + QComboBox* transactionname; + QPushButton* descriptionbutton; + + QLabel *amountlabel; + QHBox *transactionamountbox; + QLineEdit* transactionamount; + QPushButton* calculatorbutton; + + QLabel *datelabel; + QHBox *transactiondatebox; + QLineEdit* transactiondate; + QPushButton* datebutton; + + QCheckBox *clearedcheckbox; + + QLabel *numberlabel; + QLineEdit *transactionnumber; + + QLabel *budgetlabel; + QComboBox *budgetbox; + + QLabel *lineitemlabel; + QComboBox *lineitembox; + + QCheckBox *depositbox; + + QGridLayout *layout; + + int getDay (); + int getMonth (); + int getYear (); + QString getDescription (); + void setDescription ( QString ); + void setComboBoxes ( int, int ); + + // When a user edits an transaction and edits the date, this flag + // is set to TRUE adding the new date to the transaction. Otherwise, + // the old date is used for the edited transaction. This prevents a date + // from reverting to 0/0/0 if the date is not edited + bool getDateEdited (); + + public slots: + + void showCalculator(); + void showCalendar (); + void addTransactionDescription (); + int getNameIndex ( QString name ); + int getCurrentBudget (); + int getCurrentLineItem (); + int getBudgetIndex ( int budgetid ); + int getLineItemIndex ( int lineitemid ); + void setLineItems (); + + private slots: + void setCurrentBudget ( int index ); + void setCurrentLineItem ( int index ); + + private: + bool dateedited; + int index, currentbudget, currentlineitem; + QString transactiondescription; + QStringList *budgetnameslist, *budgetidslist; + QStringList lineitemslist, lineitemidslist; + +}; + +#endif diff --git a/noncore/apps/qashmoney/qashmoney.h b/noncore/apps/qashmoney/qashmoney.h new file mode 100755 index 0000000..cf0bd42 --- a/dev/null +++ b/noncore/apps/qashmoney/qashmoney.h @@ -0,0 +1,61 @@ +#ifndef QASHMONEY_H +#define QASHMONEY_H + +#include <qpe/qpemenubar.h> +#include <qpopupmenu.h> +#include <qlayout.h> +#include <qtabwidget.h> + +#include "accountdisplay.h" +#include "transactiondisplay.h" +#include "budgetdisplay.h" +#include "account.h" +#include "preferences.h" +#include "transaction.h" +#include "transfer.h" +#include "memory.h" +#include "budget.h" + +class QashMoney : public QWidget + { + Q_OBJECT + + public: + QashMoney (); + ~QashMoney(); + + QTabWidget* maintabs; + QWidget* tab; + QWidget* tab_2; + QWidget* tab_3; + + QPEMenuBar *mainmenu; + QPopupMenu *preferencesmenu; + QPopupMenu *utilitiesmenu; + + public slots: + void displayDatePreferencesDialog (); + void displayTransactionPreferencesDialog (); + void displayAccountPreferencesDialog (); + void displayMemoryDialog (); + void setTransactionTab (); + + private slots: + void changeTabDisplay (); + void showTransactions (); + void enableOneTouchViewing (); + void disableOneTouchViewing (); + void toggleOneTouchViewing ( bool ); + + private: + QVBoxLayout *layout; + QVBoxLayout *tabslayout; + AccountDisplay *accountdisplay; + TransactionDisplay *transactiondisplay; + BudgetDisplay *budgetdisplay; + int tabheight; + + }; + +#endif + diff --git a/noncore/apps/qashmoney/qashmoney.pro b/noncore/apps/qashmoney/qashmoney.pro new file mode 100755 index 0000000..1070767 --- a/dev/null +++ b/noncore/apps/qashmoney/qashmoney.pro @@ -0,0 +1,41 @@ +TEMPLATE = app +CONFIG = qt warn_on release +HEADERS = qashmoney.h \ + accountdisplay.h \ + account.h \ + transaction.h \ + transactiondisplay.h \ + newtransaction.h \ + transfer.h \ + transferdialog.h \ + preferences.h \ + preferencedialogs.h \ + memory.h \ + memorydialog.h \ + newaccount.h \ + calculator.h \ + datepicker.h \ + budget.h \ + budgetdisplay.h \ + currency.h +SOURCES = qashmoney.cpp \ + accountdisplay.cpp \ + account.cpp \ + transaction.cpp \ + transactiondisplay.cpp \ + newtransaction.cpp \ + transfer.cpp \ + transferdialog.cpp \ + preferences.cpp \ + preferencedialogs.cpp \ + memory.cpp \ + memorydialog.cpp \ + newaccount.cpp \ + calculator.cpp \ + datepicker.cpp \ + main.cpp \ + budget.cpp \ + budgetdisplay.cpp \ + currency.cpp +unix:LIBS += -lm +LIBS += -lqpe -lqte -lstdc++ -lsqlite diff --git a/noncore/apps/qashmoney/transferdialog.cpp b/noncore/apps/qashmoney/transferdialog.cpp new file mode 100755 index 0000000..7bc3eb0 --- a/dev/null +++ b/noncore/apps/qashmoney/transferdialog.cpp @@ -0,0 +1,114 @@ +#include "transferdialog.h" +#include "datepicker.h" +#include "calculator.h" + +#include <qdatetime.h> +#include <qfont.h> + +extern Preferences *preferences; +extern Account *account; + +TransferDialog::TransferDialog ( QWidget *parent, int fromaccountid, int toaccountid ) : QDialog ( parent, 0, TRUE ) + { + dateedited = FALSE; + setCaption ( "Transfer" ); + + fromaccountlabel = new QLabel ( "From account:", this ); + QFont f = this->font(); + f.setWeight ( QFont::Bold ); + fromaccountlabel->setFont ( f ); + fromaccount = new QLabel ( account->getAccountName ( fromaccountid ), this ); + + toaccountlabel = new QLabel ( "To Account:", this ); + toaccountlabel->setFont ( f ); + toaccount = new QLabel ( account->getAccountName ( toaccountid ), this ); + + datelabel = new QLabel ( "Date", this ); + + datebox = new QHBox ( this ); + datebox->setSpacing ( 2 ); + date = new QLineEdit ( datebox ); + date->setAlignment ( Qt::AlignRight ); + date->setDisabled ( TRUE ); + datebutton = new QPushButton ( datebox ); + datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); + connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); + + amounttlabel = new QLabel ( "Amount", this ); + + amountbox = new QHBox ( this ); + amountbox->setSpacing ( 2 ); + amount = new QLineEdit ( amountbox ); + amount->setAlignment ( Qt::AlignRight ); + calculatorbutton = new QPushButton( amountbox ); + calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); + connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); + + clearedcheckbox = new QCheckBox ( "Cleared", this ); + + layout = new QVBoxLayout ( this, 4, 2 ); + layout->addWidget ( fromaccountlabel, Qt::AlignLeft ); + layout->addWidget ( fromaccount, Qt::AlignLeft ); + layout->addWidget ( toaccountlabel, Qt::AlignLeft ); + layout->addWidget ( toaccount, Qt::AlignLeft ); + layout->addSpacing ( 5 ); + layout->addWidget ( datelabel, Qt::AlignLeft ); + layout->addWidget ( datebox, Qt::AlignLeft ); + layout->addWidget ( amounttlabel, Qt::AlignLeft ); + layout->addWidget ( amountbox, Qt::AlignLeft ); + layout->addWidget ( clearedcheckbox, Qt::AlignLeft ); + } + +bool TransferDialog::getDateEdited () + { + return dateedited; + } + +void TransferDialog::showCalendar () + { + QDate newDate = QDate::currentDate (); + DatePicker *dp = new DatePicker ( newDate ); + if ( dp->exec () == QDialog::Accepted ) + { + // Set date integers + year = dp->getYear(); + month = dp->getMonth(); + day = dp->getDay(); + + // Set dateedited to TRUE + // This tells the accountdisplay object that the user edited an account + // and did change the date + dateedited = TRUE; + + // Display date with our selected format + date->setText ( preferences->getDate ( year, month, day ) ); + } + } + +int TransferDialog::getDay () + { + return day; + } + +int TransferDialog::getMonth () + { + return month; + } + +int TransferDialog::getYear () + { + return day; + } + +void TransferDialog::showCalculator () + { + Calculator *calculator = new Calculator ( this ); + if ( calculator->exec () == QDialog::Accepted ) + amount->setText ( calculator->display->text() ); + } + + + + + + diff --git a/noncore/apps/qashmoney/transferdialog.h b/noncore/apps/qashmoney/transferdialog.h new file mode 100755 index 0000000..dd55879 --- a/dev/null +++ b/noncore/apps/qashmoney/transferdialog.h @@ -0,0 +1,62 @@ +#ifndef TRANSFERDIALOG_H +#define TRANSFERDIALOG_H + +#include <qdialog.h> +#include <qlayout.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qcheckbox.h> +#include <qhbox.h> +#include <qlabel.h> + +#include "preferences.h" +#include "account.h" + +class TransferDialog : public QDialog +{ + Q_OBJECT + +public: + TransferDialog ( QWidget *parent, int fromaccountid, int toaccountid ); + + QLabel *fromaccountlabel; + QLabel *fromaccount; + + QLabel *toaccountlabel; + QLabel *toaccount; + + QLabel *datelabel; + + QHBox *datebox; + QLineEdit *date; + QPushButton *datebutton; + + QLabel *amounttlabel; + + QHBox *amountbox; + QLineEdit *amount; + QPushButton *calculatorbutton; + + QCheckBox *clearedcheckbox; + + QBoxLayout *layout; + + bool getDateEdited (); + +public slots: + + void showCalendar (); + void showCalculator (); + int getDay (); + int getMonth (); + int getYear (); + +private: + + int fromaccountid; + int toaccountid; + int year, month, day; + bool dateedited; +}; + +#endif diff --git a/noncore/apps/qashmoney/x86.sh b/noncore/apps/qashmoney/x86.sh new file mode 100755 index 0000000..b539aba --- a/dev/null +++ b/noncore/apps/qashmoney/x86.sh @@ -0,0 +1,10 @@ +# !/bin/bash +CROSSCOMPILE=/opt/Embedix/tools +QTDIR=/opt/Qtopia +QPEDIR=/opt/Qtopia +PATH=$PATH:$QTDIR/bin:$QPEDIR/bin:/opt/Embedix/tools/bin:$QTDIR/tmake/bin +TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-x86-g++/ +LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib:/usr/lib +INCPATH=/usr/include/g++-3 +export QPEDIR QTDIR PATH TMAKEPATH LD_LIBRARY_PATH PS1 +echo "Altered environment for Sharp Zaurus Development x86" |