summaryrefslogtreecommitdiffstats
path: root/kplato/kptmilestoneprogresspanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kplato/kptmilestoneprogresspanel.cpp')
-rw-r--r--kplato/kptmilestoneprogresspanel.cpp103
1 files changed, 103 insertions, 0 deletions
diff --git a/kplato/kptmilestoneprogresspanel.cpp b/kplato/kptmilestoneprogresspanel.cpp
new file mode 100644
index 00000000..977878f1
--- /dev/null
+++ b/kplato/kptmilestoneprogresspanel.cpp
@@ -0,0 +1,103 @@
+/* This file is part of the KDE project
+ Copyright (C) 2005 Dag Andersen <danders@get2net.dk>
+
+ 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 "kptmilestoneprogresspanel.h"
+
+#include <tqcheckbox.h>
+
+#include <kdatetimewidget.h>
+#include <tdelocale.h>
+#include <tdemessagebox.h>
+#include <kcommand.h>
+
+#include <kdebug.h>
+
+#include "kpttask.h"
+#include "kptcommand.h"
+
+namespace KPlato
+{
+
+MilestoneProgressPanel::MilestoneProgressPanel(Task &task, TQWidget *parent, const char *name)
+ : MilestoneProgressPanelImpl(parent, name),
+ m_task(task)
+{
+ kdDebug()<<k_funcinfo<<endl;
+ m_progress = task.progress();
+ finished->setChecked(m_progress.finished);
+ finishTime->setDateTime(m_progress.finishTime);
+
+ enableWidgets();
+ finished->setFocus();
+}
+
+
+bool MilestoneProgressPanel::ok() {
+ m_progress.started = finished->isChecked();
+ m_progress.finished = finished->isChecked();
+ m_progress.startTime = finishTime->dateTime();
+ m_progress.finishTime = finishTime->dateTime();
+ m_progress.percentFinished = m_progress.finished ? 100 : 0;
+ return true;
+}
+
+KCommand *MilestoneProgressPanel::buildCommand(Part *part) {
+ KCommand *cmd = 0;
+ TQString c = i18n("Modify progress");
+ if (m_task.progress() != m_progress) {
+ cmd = new TaskModifyProgressCmd(part, m_task, m_progress, c);
+ }
+ return cmd;
+}
+
+//-------------------------------------
+
+MilestoneProgressPanelImpl::MilestoneProgressPanelImpl(TQWidget *parent, const char *name, WFlags f)
+ : MilestoneProgressPanelBase(parent, name, f) {
+
+ connect(finished, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotFinishedChanged(bool)));
+ connect(finished, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged()));
+
+ connect(finishTime, TQT_SIGNAL(valueChanged(const TQDateTime &)), TQT_SLOT(slotChanged()));
+
+}
+
+void MilestoneProgressPanelImpl::slotChanged() {
+ emit changed();
+}
+
+void MilestoneProgressPanelImpl::slotFinishedChanged(bool state) {
+ if (state) {
+ if (!finishTime->dateTime().isValid()) {
+ finishTime->setDateTime(TQDateTime::currentDateTime());
+ }
+ }
+ enableWidgets();
+}
+
+
+void MilestoneProgressPanelImpl::enableWidgets() {
+ finished->setEnabled(true);
+ finishTime->setEnabled(finished->isChecked());
+}
+
+
+} //KPlato namespace
+
+#include "kptmilestoneprogresspanel.moc"