summaryrefslogtreecommitdiffstats
path: root/kplato/kptaccountsview.cc
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2021-05-23 20:48:35 +0900
committerMichele Calgaro <[email protected]>2021-05-29 15:16:28 +0900
commit8b78a8791bc539bcffe7159f9d9714d577cb3d7d (patch)
tree1328291f966f19a22d7b13657d3f01a588eb1083 /kplato/kptaccountsview.cc
parent95834e2bdc5e01ae1bd21ac0dfa4fa1d2417fae9 (diff)
downloadkoffice-8b78a8791bc539bcffe7159f9d9714d577cb3d7d.tar.gz
koffice-8b78a8791bc539bcffe7159f9d9714d577cb3d7d.zip
Renaming of files in preparation for code style tools.
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'kplato/kptaccountsview.cc')
-rw-r--r--kplato/kptaccountsview.cc451
1 files changed, 0 insertions, 451 deletions
diff --git a/kplato/kptaccountsview.cc b/kplato/kptaccountsview.cc
deleted file mode 100644
index 3352a87d..00000000
--- a/kplato/kptaccountsview.cc
+++ /dev/null
@@ -1,451 +0,0 @@
-/* This file is part of the KDE project
- Copyright (C) 2005 Dag Andersen [email protected]>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation;
- version 2 of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "kptaccountsview.h"
-
-#include "kptaccountsviewconfigdialog.h"
-#include "kptcontext.h"
-#include "kptdatetime.h"
-#include "kptproject.h"
-#include "kptview.h"
-#include "kpteffortcostmap.h"
-
-#include <tqapplication.h>
-#include <tqcombobox.h>
-#include <tqdatetime.h>
-#include <tqdatetimeedit.h>
-#include <tqheader.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpainter.h>
-#include <tqpalette.h>
-#include <tqpushbutton.h>
-#include <tqvaluelist.h>
-#include <tqpopupmenu.h>
-#include <tqsizepolicy.h>
-#include <tqhbox.h>
-#include <tqpaintdevicemetrics.h>
-
-#include <kcalendarsystem.h>
-#include <tdeglobal.h>
-#include <tdelistview.h>
-#include <tdelocale.h>
-#include <kprinter.h>
-
-#include <kdebug.h>
-
-namespace KPlato
-{
-
-class Label : public TQLabel
-{
-public:
- Label(TQWidget *w)
- : TQLabel(w)
- {}
- void paintContents(TQPainter *p) {
- drawContents(p);
- }
-};
-
-AccountsView::AccountItem::AccountItem(Account *a, TQListView *parent, bool highlight)
- : DoubleListViewBase::MasterListItem(parent, a->name(), highlight),
- account(a) {
- if (parent->columns() >= 3) {
- setText(2, a->description());
- }
- //kdDebug()<<k_funcinfo<<endl;
-}
-AccountsView::AccountItem::AccountItem(Account *a, TQListViewItem *p, bool highlight)
- : DoubleListViewBase::MasterListItem(p, a->name(), highlight),
- account(a) {
- if (listView() && listView()->columns() >= 3) {
- setText(2, a->description());
- }
- //kdDebug()<<k_funcinfo<<endl;
-}
-
-AccountsView::AccountItem::AccountItem(TQString text, Account *a, TQListViewItem *parent, bool highlight)
- : DoubleListViewBase::MasterListItem(parent, text, highlight),
- account(a) {
- //kdDebug()<<k_funcinfo<<endl;
-}
-
-void AccountsView::AccountItem::add(int col, const TQDate &date, const EffortCost &ec) {
- EffortCost &cm = costMap.add(date, ec);
- if (m_slaveItem)
- m_slaveItem->setText(col, TDEGlobal::locale()->formatMoney(cm.cost(), "", 0));
-}
-
-AccountsView::AccountsView(Project &project, View *view, TQWidget *parent)
- : TQWidget(parent, "Accounts view"),
- m_mainview(view),
- m_project(project),
- m_accounts(project.accounts()) {
-
- m_date = TQDate::currentDate();
- m_period = 0;
- m_periodTexts<<i18n("Day")<<i18n("Week")<<i18n("Month");
- m_cumulative = false;
-
- TQVBoxLayout *lay1 = new TQVBoxLayout(this, 0, KDialog::spacingHint());
-
- TQHBoxLayout *lay2 = new TQHBoxLayout(0, 0, KDialog::spacingHint());
- m_label = new Label(this);
- m_label->setFrameShape(TQLabel::StyledPanel);
- m_label->setFrameShadow(TQLabel::Sunken);
- m_label->setAlignment(int(TQLabel::WordBreak | TQLabel::AlignVCenter));
- lay2->addWidget(m_label);
- m_changeBtn = new TQPushButton(i18n("Configure..."), this);
- m_changeBtn->setSizePolicy(TQSizePolicy((TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)0, 0, 0, m_changeBtn->sizePolicy().hasHeightForWidth()));
- lay2->addWidget(m_changeBtn);
- lay1->addLayout(lay2);
-
- m_dlv = new DoubleListViewBase(this, true);
- m_dlv->setNameHeader(i18n("Account"));
-
- init();
-
- lay1->addWidget(m_dlv);
-
- connect(this, TQT_SIGNAL(update()), TQT_SLOT(slotUpdate()));
- connect(m_changeBtn, TQT_SIGNAL(clicked()), TQT_SLOT(slotConfigure()));
-
- TQValueList<int> list = m_dlv->sizes();
- int tot = list[0] + list[1];
- list[0] = TQMIN(35, tot);
- list[1] = tot-list[0];
- m_dlv->setSizes(list);
-}
-
-void AccountsView::zoom(double zoom) {
- Q_UNUSED(zoom);
-}
-
-void AccountsView::init() {
- m_date = TQDate::currentDate();
- m_period = 0;
- initAccList(m_accounts.accountList());
-}
-
-void AccountsView::draw() {
- //kdDebug()<<k_funcinfo<<endl;
- Context::Accountsview context;
- getContextClosedItems(context, m_dlv->masterListView()->firstChild());
- initAccList(m_accounts.accountList());
- setContextClosedItems(context);
- slotUpdate();
-}
-
-void AccountsView::initAccList(const AccountList &list) {
- m_dlv->clearLists();
- AccountListIterator it = list;
- for (it.toLast(); it.current(); --it) {
- AccountsView::AccountItem *a = new AccountsView::AccountItem(it.current(), m_dlv->masterListView());
- a->setOpen(true);
- a->setExpandable(!it.current()->isElement());
- initAccSubItems(it.current(), a);
- }
- createPeriods();
-}
-
-void AccountsView::initAccSubItems(Account *acc, AccountsView::AccountItem *parent) {
- if (!acc->accountList().isEmpty()) {
-/* AccountsView::AccountItem *a = new AccountsView::AccountItem(i18n("Subaccounts"), acc, parent);
- DoubleListViewBase::SlaveListItem *i = new DoubleListViewBase::SlaveListItem(a, parent->period);
- a->period = i;*/
-
- initAccList(acc->accountList(), parent);
- }
-// AccountsView::AccountItem *a = new AccountsView::AccountItem(i18n("Variance"), acc, parent, true);
-// DoubleListViewBase::SlaveListItem *i = new DoubleListViewBase::SlaveListItem(a, parent->period, true);
-// a->period = i;
-//
-// a = new AccountsView::AccountItem(i18n("Actual"), acc, parent);
-// i = new DoubleListViewBase::SlaveListItem(a, parent->period);
-// a->period = i;
-//
-// a = new AccountsView::AccountItem(i18n("Planned"), acc, parent);
-// i = new DoubleListViewBase::SlaveListItem(a, parent->period);
-// a->period = i;
-
-}
-
-void AccountsView::initAccList(const AccountList &list, AccountsView::AccountItem *parent) {
- AccountListIterator it = list;
- for (it.toLast(); it.current(); --it) {
- AccountsView::AccountItem *a = new AccountsView::AccountItem(it.current(), parent);
- a->setOpen(true);
- a->setExpandable(!it.current()->isElement());
- initAccSubItems(it.current(), a);
- }
-}
-
-void AccountsView::clearPeriods() {
- m_dlv->clearSlaveList();
-}
-
-void AccountsView::createPeriods() {
- m_dlv->createSlaveItems();
-}
-
-void AccountsView::slotUpdate() {
- //kdDebug()<<k_funcinfo<<endl;
- TQApplication::setOverrideCursor(TQt::waitCursor);
- createPeriods();
- TDELocale *locale = TDEGlobal::locale();
- const KCalendarSystem *cal = locale->calendar();
-
- TQString t;
- if (m_cumulative) {
- t += " <b>" + i18n("Cumulative") + "</b> ";
- }
- t += i18n("Cut-off date:%1").arg("<b>" + locale->formatDate(m_date, true) + "</b>");
- t += " " + i18n("Periodicity:%1").arg("<b>" + periodText(m_period) + "</b>");
- m_label->setText(t);
-
- // Add columns for selected period/periods
- TQDate start = m_project.startTime().date();
- TQDate end = m_date;
- //kdDebug()<<k_funcinfo<<start.toString()<<" - "<<end.toString()<<endl;
- int c=0;
- if (m_period == 0) { //Daily
- for (TQDate dt = start; dt <= end; dt = cal->addDays(dt, 1), ++c) {
- TQString df = locale->formatDate(dt, true);
- m_dlv->addSlaveColumn(df);
- }
- TQListViewItemIterator it(m_dlv->masterListView());
- for (;it.current(); ++it) {
- AccountsView::AccountItem *item = dynamic_cast<AccountsView::AccountItem*>(it.current());
- if (!item || !item->account || !item->account->isElement()) {
- continue;
- }
- item->costMap = m_accounts.plannedCost(*(item->account), start, end);
- double cost = 0.0;
- int col=0;
- for (TQDate d=start; d <= end; d = cal->addDays(d, 1), ++col) {
- EffortCost &ec = item->costMap.effortCostOnDate(d);
- cost = (m_cumulative ? cost + ec.cost() : ec.cost());
- item->setSlaveItem(col, cost);
- m_cumulative ? item->setTotal(cost) : item->addToTotal(cost);
- }
- }
- m_dlv->calculate();
- TQApplication::restoreOverrideCursor();
- return;
- }
- if (m_period == 1) { //Weekly
- //TODO make this user controlled
- int weekStartDay = locale->weekStartDay();
-
- TQDate dt = start;
- TQDate pend = cal->addDays(dt, 7 + weekStartDay - 1 - cal->dayOfWeek(dt));
- for (; pend <= end; ++c) {
- //kdDebug()<<k_funcinfo<<c<<": "<<dt<<"-"<<pend<<" : "<<end<<endl;
- int y;
- int w = cal->weekNumber(dt, &y);
- TQString t = i18n("<week>-<year>", "%1-%2").arg(w).arg(y);
- m_dlv->addSlaveColumn(t);
- dt = pend.addDays(1);
- pend = cal->addDays(pend, 7);
- if ((pend.year() == end.year()) && (pend.weekNumber() == end.weekNumber())) {
- pend = end;
- }
- }
- if (c == 0) {
- TQApplication::restoreOverrideCursor();
- return;
- }
- TQListViewItemIterator it(m_dlv->masterListView());
- for (;it.current(); ++it) {
- AccountsView::AccountItem *item = dynamic_cast<AccountsView::AccountItem*>(it.current());
- if (!item || !item->account || !item->account->isElement()) {
- continue;
- }
- item->costMap = m_accounts.plannedCost(*(item->account), start, end);
- double cost = 0.0;
- TQDate d = start;
- TQDate pend = cal->addDays(d, 7 + weekStartDay - 1 - cal->dayOfWeek(d));
- for (int col=0; pend <= end; ++col) {
- double cst = item->costMap.cost(d, d.daysTo(pend)+1);
- cost = (m_cumulative ? cost + cst : cst);
- item->setSlaveItem(col, cost);
- m_cumulative ? item->setTotal(cost) : item->addToTotal(cost);
- d = pend.addDays(1); // 1. next week
- pend = cal->addDays(pend, 7);
- if ((pend.year() == end.year()) && (pend.weekNumber() == end.weekNumber())) {
- pend = end;
- }
- }
- }
- m_dlv->calculate();
- TQApplication::restoreOverrideCursor();
- return;
- }
- if (m_period == 2) { //Monthly
- //TODO make this user controlled
- TQDate dt = start;
- TQDate pend;
- cal->setYMD(pend, dt.year(), dt.month(), dt.daysInMonth());
- for (; pend <= end; ++c) {
- //kdDebug()<<k_funcinfo<<c<<": "<<dt<<"-"<<pend<<" : "<<end<<endl;
- TQString m = cal->monthName(dt, true) + TQString(" %1").arg( dt.year());
- m_dlv->addSlaveColumn(m);
-
- dt = pend.addDays(1); // 1. next month
- pend = cal->addDays(pend, dt.daysInMonth());
- if ((pend.year() == end.year()) && (pend.month() == end.month())) {
- pend = end;
- }
- }
- if (c == 0) {
- TQApplication::restoreOverrideCursor();
- return;
- }
- TQListViewItemIterator it(m_dlv->masterListView());
- for (;it.current(); ++it) {
- AccountsView::AccountItem *item = dynamic_cast<AccountsView::AccountItem*>(it.current());
- if (!item || !item->account || !item->account->isElement()) {
- continue;
- }
- item->costMap = m_accounts.plannedCost(*(item->account), start, end);
- double cost = 0.0;
- TQDate d = start;
- cal->setYMD(pend, d.year(), d.month(), d.daysInMonth());
- for (int col=0; pend <= end; ++col) {
- double cst = item->costMap.cost(d, d.daysTo(pend)+1);
- cost = (m_cumulative ? cost + cst : cst);
- item->setSlaveItem(col, cost);
- m_cumulative ? item->setTotal(cost) : item->addToTotal(cost);
- d = pend.addDays(1); // 1. next month
- pend = cal->addDays(pend, d.daysInMonth());
- if ((pend.year() == end.year()) && (pend.month() == end.month())) {
- pend = end;
- }
- }
- }
- m_dlv->calculate();
- TQApplication::restoreOverrideCursor();
- return;
- }
- TQApplication::restoreOverrideCursor();
-}
-
-void AccountsView::print(KPrinter &printer) {
- //kdDebug()<<k_funcinfo<<endl;
- TQPaintDeviceMetrics m = TQPaintDeviceMetrics ( &printer );
- uint top, left, bottom, right;
- printer.margins(&top, &left, &bottom, &right);
- //kdDebug()<<m.width()<<"x"<<m.height()<<" : "<<top<<", "<<left<<", "<<bottom<<", "<<right<<" : "<<size()<<endl;
- TQPainter p;
- p.begin(&printer);
- p.setViewport(left, top, m.width()-left-right, m.height()-top-bottom);
- p.setClipRect(left, top, m.width()-left-right, m.height()-top-bottom);
- TQRect preg = p.clipRegion(TQPainter::CoordPainter).boundingRect();
- //kdDebug()<<"p="<<preg<<endl;
- //p.drawRect(preg.x(), preg.y(), preg.width()-1, preg.height()-1);
- double scale = TQMIN((double)preg.width()/(double)size().width(), (double)preg.height()/(double)(size().height()));
- //kdDebug()<<"scale="<<scale<<endl;
- if (scale < 1.0) {
- p.scale(scale, scale);
- }
- m_label->paintContents(&p);
- p.translate(0, m_label->size().height());
- m_dlv->paintContents(&p);
- p.end();
-}
-
-bool AccountsView::setContext(Context::Accountsview &context) {
- //kdDebug()<<k_funcinfo<<"---->"<<endl;
- TQValueList<int> list;
- list << context.accountsviewsize << context.periodviewsize;
- //m_dlv->setSizes(list); //NOTE: This doesn't always work!
- m_date = context.date;
- if (!m_date.isValid())
- m_date = TQDate::currentDate();
- m_period = context.period;
- m_cumulative = context.cumulative;
- setContextClosedItems(context);
- //kdDebug()<<k_funcinfo<<"<----"<<endl;
- return true;
-}
-
-void AccountsView::setContextClosedItems(Context::Accountsview &context) {
- for (TQStringList::ConstIterator it = context.closedItems.begin(); it != context.closedItems.end(); ++it) {
- if (m_accounts.findAccount(*it)) {
- TQListViewItemIterator lit(m_dlv->masterListView());
- for (; lit.current(); ++lit) {
- if (lit.current()->text(0) == (*it)) {
- m_dlv->setOpen(lit.current(), false);
- break;
- }
- }
- }
- }
-}
-
-void AccountsView::getContext(Context::Accountsview &context) const {
- //kdDebug()<<k_funcinfo<<endl;
- context.accountsviewsize = m_dlv->sizes()[0];
- context.periodviewsize = m_dlv->sizes()[1];
- context.date = m_date;
- context.period = m_period;
- context.cumulative = m_cumulative;
- //kdDebug()<<k_funcinfo<<"sizes="<<sizes()[0]<<","<<sizes()[1]<<endl;
-
- getContextClosedItems(context, m_dlv->masterListView()->firstChild());
-}
-
-
-void AccountsView::getContextClosedItems(Context::Accountsview &context, TQListViewItem *item) const {
- if (item == 0)
- return;
- for (TQListViewItem *i = item; i; i = i->nextSibling()) {
- if (!i->isOpen()) {
- context.closedItems.append(i->text(0));
- //kdDebug()<<k_funcinfo<<"add closed "<<i->text(0)<<endl;
- }
- getContextClosedItems(context, i->firstChild());
- }
-}
-
-void AccountsView::slotConfigure() {
- //kdDebug()<<k_funcinfo<<endl;
- AccountsviewConfigDialog *dia = new AccountsviewConfigDialog(m_date, m_period, m_periodTexts, m_cumulative, this);
- if (dia->exec()) {
- m_date = dia->date();
- m_period = dia->period();
- m_cumulative = dia->isCumulative();
- emit update();
- }
- delete dia;
-}
-
-TQString AccountsView::periodText(int offset) {
- TQString s;
- TQStringList::const_iterator it = m_periodTexts.at(offset);
- if (it != m_periodTexts.constEnd()) {
- s = (*it);
- }
- return s;
-}
-
-} //KPlato namespace
-
-#include "kptaccountsview.moc"