diff options
author | Michele Calgaro <[email protected]> | 2021-05-23 20:48:35 +0900 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2021-05-29 15:16:28 +0900 |
commit | 8b78a8791bc539bcffe7159f9d9714d577cb3d7d (patch) | |
tree | 1328291f966f19a22d7b13657d3f01a588eb1083 /kplato/kptresourceappointmentsview.cpp | |
parent | 95834e2bdc5e01ae1bd21ac0dfa4fa1d2417fae9 (diff) | |
download | koffice-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/kptresourceappointmentsview.cpp')
-rw-r--r-- | kplato/kptresourceappointmentsview.cpp | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/kplato/kptresourceappointmentsview.cpp b/kplato/kptresourceappointmentsview.cpp new file mode 100644 index 00000000..a251eddb --- /dev/null +++ b/kplato/kptresourceappointmentsview.cpp @@ -0,0 +1,233 @@ +/* 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; either + version 2 of the License, or (at your option) any later version. + + 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 "kptresourceappointmentsview.h" + +#include "kptappointment.h" +#include "kptcalendar.h" +#include "kptnode.h" +#include "kptresource.h" +#include "kptview.h" + +#include <tqapplication.h> +#include <kcalendarsystem.h> +#include <tdeglobal.h> +#include <tdelocale.h> + +#include <tqdatetime.h> +#include <tqheader.h> + +namespace KPlato +{ + +ResourceAppointmentsView::NodeItem::NodeItem(Node *t, TQListView *parent, bool highlight) + : DoubleListViewBase::MasterListItem(parent, t->name(), highlight), + node(t) { + + setFormat(0, 'f', 1); + //kdDebug()<<k_funcinfo<<endl; +} +ResourceAppointmentsView::NodeItem::NodeItem(Node *t, TQListViewItem *p, bool highlight) + : DoubleListViewBase::MasterListItem(p, t->name(), highlight), + node(t) { + + setFormat(0, 'f', 1); + //kdDebug()<<k_funcinfo<<endl; +} + +ResourceAppointmentsView::NodeItem::NodeItem(TQString text, TQListViewItem *parent, bool highlight) + : DoubleListViewBase::MasterListItem(parent, text, highlight), + node(0) { + + setFormat(0, 'f', 1); + //kdDebug()<<k_funcinfo<<endl; +} + +ResourceAppointmentsView::NodeItem::NodeItem(TQString text, TQListView *parent, bool highlight) + : DoubleListViewBase::MasterListItem(parent, text, highlight), + node(0) { + + setFormat(0, 'f', 1); + //kdDebug()<<k_funcinfo<<endl; +} + +//------------------------------------------- +ResourceAppointmentsView::ResourceAppointmentsView(View *view, TQWidget *parent) + : DoubleListViewBase(parent), + m_mainview(view), + m_resource(0), + m_availItem(0), + m_totalItem(0) { + + setNameHeader(i18n("Task")); + + + TQValueList<int> list = sizes(); + int tot = list[0] + list[1]; + list[0] = TQMIN(35, tot); + list[1] = tot-list[0]; + setSizes(list); +} + +void ResourceAppointmentsView::zoom(double zoom) { + Q_UNUSED(zoom); +} + + +void ResourceAppointmentsView::draw(Resource *resource, const TQDate &start, const TQDate &end) { + m_resource = resource; + m_start = start; + m_end = end; + draw(); +} + +void ResourceAppointmentsView::draw() { + //kdDebug()<<k_funcinfo<<endl; + clear(); + if (!m_resource) + return; + + m_totalItem = new ResourceAppointmentsView::NodeItem(i18n("Total"), masterListView()); + m_totalItem->setExpandable(true); + m_totalItem->setOpen(true); + m_availItem = new ResourceAppointmentsView::NodeItem(i18n("Available"), masterListView()); + TQPtrList<Appointment> lst = m_resource->appointments(); + //kdDebug()<<k_funcinfo<<lst.count()<<endl; + TQPtrListIterator<Appointment> it(lst); + for (; it.current(); ++it) { + //kdDebug()<<k_funcinfo<<endl; + Node *n = it.current()->node()->node(); + ResourceAppointmentsView::NodeItem *item = new ResourceAppointmentsView::NodeItem(n, m_totalItem); + + item->effortMap = it.current()->plannedPrDay(m_start, m_end); + } + slotUpdate(); +} + +void ResourceAppointmentsView::slotUpdate() { + //kdDebug()<<k_funcinfo<<endl; + if (!m_resource) + return; + TQApplication::setOverrideCursor(TQt::waitCursor); + createSlaveItems(); + TDELocale *locale = TDEGlobal::locale(); + const KCalendarSystem *cal = locale->calendar(); + const Calendar *resCal = m_resource->calendar(); + const TQDateTime availFrom = m_resource->availableFrom(); + const TQDateTime availUntil = m_resource->availableUntil(); + // Add columns for selected period/periods + //kdDebug()<<k_funcinfo<<start.toString()<<" - "<<end.toString()<<endl; + int c=0; + for (TQDate dt = m_start; dt <= m_end; dt = cal->addDays(dt, 1), ++c) { + TQString df = locale->formatDate(dt, true); + addSlaveColumn(df); + } + if (m_totalItem) { + m_totalItem->setHighlight(true); + m_totalItem->setSlaveHighlight(true); + } + TQListViewItemIterator it(masterListView()); + for (;it.current(); ++it) { + ResourceAppointmentsView::NodeItem *item = static_cast<ResourceAppointmentsView::NodeItem*>(it.current()); + if (!item || item->firstChild()) { + continue; + } + double eff; + double avail; + int col=0; + for (TQDate d=m_start; d <= m_end; d = cal->addDays(d, 1), ++col) { + if (item == m_availItem && resCal) { + TQDateTime f(d); + TQDateTime u(d, TQTime(23, 59, 59, 999)); + if (f >= availUntil || u <= availFrom) { + avail = 0.0; + } else { + if (availFrom > f) { + f = availFrom; + } + if (availUntil < u) { + u = availUntil; + } + avail = ((double)(resCal->effort(f.date(), f.time(), u.time())*(double)(m_resource->units())/100.0).minutes()/60.0); + } + m_availItem->setSlaveItem(col, avail); + m_availItem->addToTotal(avail); + if (m_totalItem) { + m_totalItem->setSlaveLimit(col, avail); + } + } + if (item != m_availItem) { + eff = (double)(item->effortMap.effortOnDate(d).minutes())/60.0; + item->setSlaveItem(col, eff); + item->addToTotal(eff); + } + } + } + if (m_totalItem && m_availItem) { + m_totalItem->setLimit(m_availItem->value()); + //kdDebug()<<k_funcinfo<<"avail="<<m_availItem->value()<<endl; + } + calculate(); + TQApplication::restoreOverrideCursor(); +} + + +void ResourceAppointmentsView::print(KPrinter &/*printer*/) { + kdDebug()<<k_funcinfo<<endl; +} + +// bool ResourceAppointmentsView::setContext(Context::ResourceAppointmentsView &context) { +// //kdDebug()<<k_funcinfo<<endl; +// +// TQValueList<int> list; +// list << context.accountsviewsize << context.periodviewsize; +// m_dlv->setSizes(list); +// m_date = context.date; +// if (!m_date.isValid()) +// m_date = TQDate::currentDate(); +// m_period = context.period; +// m_cumulative = context.cumulative; +// +// return true; +// } +// +// void ResourceAppointmentsView::getContext(Context::ResourceAppointmentsView &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; +// } + +void ResourceAppointmentsView::clear() { + clearLists(); + m_availItem = 0; + m_totalItem = 0; +} + +void ResourceAppointmentsView::createSlaveItems() { + DoubleListViewBase::createSlaveItems(); + setSlaveFormat(0, 'f', 1); +} + +} //KPlato namespace + +#include "kptresourceappointmentsview.moc" |