From dadc34655c3ab961b0b0b94a10eaaba710f0b5e8 Mon Sep 17 00:00:00 2001 From: tpearson Date: Mon, 4 Jul 2011 22:38:03 +0000 Subject: Added kmymoney git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmymoney@1239792 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kmymoney2/widgets/kmymoneyaccounttree.cpp | 147 ++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 kmymoney2/widgets/kmymoneyaccounttree.cpp (limited to 'kmymoney2/widgets/kmymoneyaccounttree.cpp') diff --git a/kmymoney2/widgets/kmymoneyaccounttree.cpp b/kmymoney2/widgets/kmymoneyaccounttree.cpp new file mode 100644 index 0000000..1b669ef --- /dev/null +++ b/kmymoney2/widgets/kmymoneyaccounttree.cpp @@ -0,0 +1,147 @@ +/*************************************************************************** + kmymoneyaccounttree.cpp - description + ------------------- + begin : Sat Jan 1 2005 + copyright : (C) 2005 by Thomas Baumgart + email : Thomas Baumgart +***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ + +// ---------------------------------------------------------------------------- +// QT Includes + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ---------------------------------------------------------------------------- +// KDE Includes + +#include +#include +#include +#include +#include + +// ---------------------------------------------------------------------------- +// Project Includes + +#include +#include +#include + +#include + +KMyMoneyAccountTree::KMyMoneyAccountTree(QWidget* parent, const char *name) : + KMyMoneyAccountTreeBase(parent,name) +{ + showType(); + + m_taxReportColumn = addColumn(i18n("Column heading for category in tax report", "Tax")); + setColumnWidthMode(m_taxReportColumn, QListView::Manual); + setColumnAlignment(m_taxReportColumn, Qt::AlignHCenter); + + m_vatCategoryColumn = addColumn(i18n("Column heading for VAT category", "VAT")); + setColumnWidthMode(m_vatCategoryColumn, QListView::Manual); + setColumnAlignment(m_vatCategoryColumn, Qt::AlignHCenter); + + showValue(); +} + +KMyMoneyAccountTreeItem::KMyMoneyAccountTreeItem(KListView *parent, const MyMoneyAccount& account, const MyMoneySecurity& security , const QString& name) : + KMyMoneyAccountTreeBaseItem(parent,account,security,name), + m_reconcileFlag(false) +{ + updateAccount(); +} + +KMyMoneyAccountTreeItem::KMyMoneyAccountTreeItem(KMyMoneyAccountTreeBaseItem *parent, const MyMoneyAccount& account, const QValueList& price, const MyMoneySecurity& security) : + KMyMoneyAccountTreeBaseItem(parent,account,price,security), + m_reconcileFlag(false) +{ + updateAccount(); +} + +KMyMoneyAccountTreeItem::KMyMoneyAccountTreeItem(KListView *parent, const MyMoneyInstitution& institution) : + KMyMoneyAccountTreeBaseItem(parent,institution), + m_reconcileFlag(false) +{ +} + +void KMyMoneyAccountTreeItem::fillColumns() +{ + KMyMoneyAccountTree* lv = dynamic_cast(listView()); + if (!lv) + return; + KMyMoneyAccountTreeBaseItem::fillColumns(); + QPixmap checkMark = QPixmap(KGlobal::iconLoader()->loadIcon("ok", KIcon::Small)); + MyMoneyMoney vatRate; + if (!isInstitution()) + setPixmap(lv->nameColumn(), m_account.accountPixmap(m_reconcileFlag, 22)); + switch(m_account.accountType()) { + case MyMoneyAccount::Income: + case MyMoneyAccount::Expense: + case MyMoneyAccount::Asset: + case MyMoneyAccount::Liability: + if(m_account.value("Tax").lower() == "yes") + setPixmap(lv->taxReportColumn(), checkMark); + if(!m_account.value("VatAccount").isEmpty()) { + setPixmap(lv->vatCategoryColumn(), checkMark); + } + if(!m_account.value("VatRate").isEmpty()) { + vatRate = MyMoneyMoney(m_account.value("VatRate")) * MyMoneyMoney(100,1); + setText(lv->vatCategoryColumn(), QString("%1 %").arg(vatRate.formatMoney("", 1))); + } + break; + default: + break; + } +} + +void KMyMoneyAccountTreeItem::setReconciliation(bool on) +{ + if(m_reconcileFlag == on) + return; + m_reconcileFlag = on; + updateAccount(); +} + +MyMoneyMoney KMyMoneyAccountTreeItem::balance() const +{ + MyMoneyMoney result; + // account.balance() is not compatable with stock accounts + if ( m_account.isInvest() ) + result = MyMoneyFile::instance()->balance(m_account.id()); + else + result = m_account.balance(); + // for income and liability accounts, we reverse the sign + switch(m_account.accountGroup()) { + case MyMoneyAccount::Income: + case MyMoneyAccount::Liability: + case MyMoneyAccount::Equity: + result = -result; + break; + + default: + break; + } + return result; +} + + +#include "kmymoneyaccounttree.moc" +// vim:cin:si:ai:et:ts=2:sw=2: -- cgit v1.2.1