20#include "kpttaskprogresspanel.h"
22#include <tqbuttongroup.h>
23#include <tqradiobutton.h>
24#include <tqcheckbox.h>
28#include <kdatetimewidget.h>
31#include <tdemessagebox.h>
37#include "kptcommand.h"
38#include "kptdurationwidget.h"
39#include "kptcalendar.h"
44TaskProgressPanel::TaskProgressPanel(
Task &task, StandardWorktime *workTime, TQWidget *parent,
const char *name)
45 : TaskProgressPanelImpl(parent, name),
49 kdDebug()<<k_funcinfo<<endl;
50 m_progress = task.progress();
51 started->setChecked(m_progress.started);
52 finished->setChecked(m_progress.finished);
53 startTime->setDateTime(m_progress.startTime);
54 finishTime->setDateTime(m_progress.finishTime);
56 percentFinished->setValue(m_progress.percentFinished);
59 kdDebug()<<k_funcinfo<<
"daylength="<<workTime->durationDay().hours()<<endl;
60 m_dayLength = workTime->durationDay().hours();
61 setEstimateScales(m_dayLength);
63 remainingEffort->setValue(m_progress.remainingEffort);
64 remainingEffort->setVisibleFields(DurationWidget::Days | DurationWidget::Hours | DurationWidget::Minutes);
65 remainingEffort->setFieldUnit(0, i18n(
"day",
"d"));
66 remainingEffort->setFieldUnit(1, i18n(
"hour",
"h"));
67 remainingEffort->setFieldUnit(2, i18n(
"minute",
"m"));
69 m_progress.totalPerformed = task.actualEffort();
70 actualEffort->setValue(m_progress.totalPerformed);
71 actualEffort->setVisibleFields(DurationWidget::Days | DurationWidget::Hours | DurationWidget::Minutes);
72 actualEffort->setFieldUnit(0, i18n(
"day",
"d"));
73 actualEffort->setFieldUnit(1, i18n(
"hour",
"h"));
74 actualEffort->setFieldUnit(2, i18n(
"minute",
"m"));
76 scheduledStart->setDateTime(task.startTime());
77 scheduledFinish->setDateTime(task.endTime());
78 scheduledEffort->setValue(task.effort()->expected());
79 scheduledEffort->setVisibleFields(DurationWidget::Days | DurationWidget::Hours | DurationWidget::Minutes);
80 scheduledEffort->setFieldUnit(0, i18n(
"day",
"d"));
81 scheduledEffort->setFieldUnit(1, i18n(
"hour",
"h"));
82 scheduledEffort->setFieldUnit(2, i18n(
"minute",
"m"));
90bool TaskProgressPanel::ok() {
91 m_progress.started = started->isChecked();
92 m_progress.finished = finished->isChecked();
93 m_progress.startTime = startTime->dateTime();
94 m_progress.finishTime = finishTime->dateTime();
95 m_progress.percentFinished = percentFinished->value();
96 m_progress.remainingEffort = remainingEffort->value();
97 m_progress.totalPerformed = actualEffort->value();
101KCommand *TaskProgressPanel::buildCommand(Part *part) {
103 TQString c = i18n(
"Modify progress");
104 if (m_task.progress() != m_progress) {
105 cmd =
new TaskModifyProgressCmd(part, m_task, m_progress, c);
110void TaskProgressPanel::setEstimateScales(
int day )
112 remainingEffort->setFieldScale(0, day);
113 remainingEffort->setFieldRightscale(0, day);
114 remainingEffort->setFieldLeftscale(1, day);
116 actualEffort->setFieldScale(0, day);
117 actualEffort->setFieldRightscale(0, day);
118 actualEffort->setFieldLeftscale(1, day);
120 scheduledEffort->setFieldScale(0, day);
121 scheduledEffort->setFieldRightscale(0, day);
122 scheduledEffort->setFieldLeftscale(1, day);
127TaskProgressPanelImpl::TaskProgressPanelImpl(TQWidget *parent,
const char *name, WFlags f)
128 : TaskProgressPanelBase(parent, name, f) {
130 connect(started, TQ_SIGNAL(toggled(
bool)), TQ_SLOT(slotStartedChanged(
bool)));
131 connect(finished, TQ_SIGNAL(toggled(
bool)), TQ_SLOT(slotFinishedChanged(
bool)));
133 connect(percentFinished, TQ_SIGNAL(valueChanged(
int)), TQ_SLOT(slotPercentFinishedChanged(
int)));
134 connect(percentFinished, TQ_SIGNAL(valueChanged(
int)), TQ_SLOT(slotChanged()));
136 connect(startTime, TQ_SIGNAL(valueChanged(
const TQDateTime &)), TQ_SLOT(slotChanged()));
137 connect(finishTime, TQ_SIGNAL(valueChanged(
const TQDateTime &)), TQ_SLOT(slotChanged()));
139 connect(remainingEffort, TQ_SIGNAL(valueChanged()), TQ_SLOT(slotChanged()));
140 connect(actualEffort, TQ_SIGNAL(valueChanged()), TQ_SLOT(slotChanged()));
144void TaskProgressPanelImpl::slotChanged() {
148void TaskProgressPanelImpl::slotStartedChanged(
bool state) {
150 startTime->setDateTime(TQDateTime::currentDateTime());
151 percentFinished->setValue(0);
157void TaskProgressPanelImpl::slotFinishedChanged(
bool state) {
159 percentFinished->setValue(100);
160 if (!finishTime->dateTime().isValid()) {
161 finishTime->setDateTime(TQDateTime::currentDateTime());
168void TaskProgressPanelImpl::enableWidgets() {
169 started->setEnabled(!finished->isChecked());
170 finished->setEnabled(started->isChecked());
171 finishTime->setEnabled(started->isChecked());
172 startTime->setEnabled(started->isChecked() && !finished->isChecked());
173 performedGroup->setEnabled(started->isChecked() && !finished->isChecked());
175 scheduledStart->setEnabled(
false);
176 scheduledFinish->setEnabled(
false);
177 scheduledEffort->setEnabled(
false);
181void TaskProgressPanelImpl::slotPercentFinishedChanged(
int value ) {
190#include "kpttaskprogresspanel.moc"
A task in the scheduling software is represented by this class.