summaryrefslogtreecommitdiff
path: root/noncore/apps/qashmoney/budgetdisplay.cpp
authormickeyl <mickeyl>2004-11-04 10:33:04 (UTC)
committer mickeyl <mickeyl>2004-11-04 10:33:04 (UTC)
commit7855b19ce0241a7b7b4fc72e3a8ddd9bf73b0a77 (patch) (side-by-side diff)
treee76604c6af3da9c19b69dcdcf8105d58bac63f71 /noncore/apps/qashmoney/budgetdisplay.cpp
parentcd2d50799e087fad5b56df9d7fe9aa572a313e64 (diff)
downloadopie-7855b19ce0241a7b7b4fc72e3a8ddd9bf73b0a77.zip
opie-7855b19ce0241a7b7b4fc72e3a8ddd9bf73b0a77.tar.gz
opie-7855b19ce0241a7b7b4fc72e3a8ddd9bf73b0a77.tar.bz2
opie-qashmoney is now unsupported
Diffstat (limited to 'noncore/apps/qashmoney/budgetdisplay.cpp') (more/less context) (ignore whitespace changes)
-rwxr-xr-xnoncore/apps/qashmoney/budgetdisplay.cpp417
1 files changed, 0 insertions, 417 deletions
diff --git a/noncore/apps/qashmoney/budgetdisplay.cpp b/noncore/apps/qashmoney/budgetdisplay.cpp
deleted file mode 100755
index b83eb46..0000000
--- a/noncore/apps/qashmoney/budgetdisplay.cpp
+++ b/dev/null
@@ -1,417 +0,0 @@
-#include <qmessagebox.h>
-#include <qheader.h>
-#include <sqlite3.h>
-
-#include "budgetdisplay.h"
-#include "budget.h"
-#include "datepicker.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 QMenuBar ( 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) ) );
- connect ( listview->header(), SIGNAL ( clicked(int) ), this, SLOT ( saveSortingPreference(int) ) );
-
- // pull the column sorting preference from the preferences table, and configure the listview accordingly
- int column = 0;
- int direction = 0;
- preferences->getSortingPreference ( 3, &column, &direction );
- listview->setSorting ( column, direction );
-
- 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;
- }
- }
-
-void BudgetDisplay::saveSortingPreference ( int column )
- {
- preferences->changeSortingPreference ( 3, column );
- }
-
-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." );
- }
-
-