summaryrefslogtreecommitdiffabout
path: root/korganizer
Side-by-side diff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koeditorgeneraltodo.cpp52
-rw-r--r--korganizer/koeditorgeneraltodo.h2
2 files changed, 44 insertions, 10 deletions
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index b9a028b..ce0d7a9 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -148,7 +148,21 @@ void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout)
topLayout->addWidget(mCompletedCombo);
mCompletedLabel = new QLabel(i18n("completed"),parent);
- topLayout->addWidget(mCompletedLabel);
+ topLayout->addWidget(mCompletedLabel);
+
+ mCompleteDateEdit = new KDateEdit(parent);
+ topLayout->addWidget(mCompleteDateEdit );
+
+ mCompleteTimeEdit = new KOTimeEdit(parent);
+ topLayout->addWidget( mCompleteTimeEdit);
+
+ mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) );
+ mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) );
+
+ if ( QApplication::desktop()->width() < 320 ) {
+ mCompleteDateEdit->setMaximumWidth( 85 );
+ topLayout->setSpacing( 0 );
+ }
}
void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
@@ -158,7 +172,6 @@ void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
topLayout->addWidget( h );
QLabel *priorityLabel = new QLabel(i18n("Priority:"), h);
// topLayout->addWidget(priorityLabel);
-
mPriorityCombo = new QComboBox( h );
mPriorityCombo->insertItem(i18n("1 (high)"));
mPriorityCombo->insertItem(i18n("2"));
@@ -312,15 +325,24 @@ void KOEditorGeneralTodo::writeTodo(Todo *todo)
tmpDT.setTime(tmpTime);
todo->setDtStart(tmpDT);
}
-
todo->setPriority(mPriorityCombo->currentItem()+1);
// set completion state
- todo->setPercentComplete(mCompletedCombo->currentItem() * 20);
-
- if (mCompletedCombo->currentItem() == 5 && mCompleted.isValid()) {
- todo->setCompleted(mCompleted);
+ if ( mCompletedCombo->currentItem() == 5 ) {
+ QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() );
+ if ( comp.isValid () ) {
+ todo->setPercentComplete(0);
+ todo->setPercentComplete(100);
+ todo->setCompleted(comp);
+ } else {
+ todo->setPercentComplete( 100 );
+ if ( mCompleted.isValid() )
+ todo->setCompleted(mCompleted);
+ }
+ } else {
+ todo->setPercentComplete(mCompletedCombo->currentItem() * 20);
}
+
mSummaryEdit->save(KOLocationBox::SUMMARYTODO);
}
@@ -420,7 +442,8 @@ bool KOEditorGeneralTodo::validateInput()
void KOEditorGeneralTodo::completedChanged(int index)
{
if (index == 5) {
- mCompleted = QDateTime::currentDateTime();
+ //get rid of milli sec
+ mCompleted = QDateTime::currentDateTime();
}
setCompletedDate();
}
@@ -428,10 +451,19 @@ void KOEditorGeneralTodo::completedChanged(int index)
void KOEditorGeneralTodo::setCompletedDate()
{
if (mCompletedCombo->currentItem() == 5 && mCompleted.isValid()) {
- mCompletedLabel->setText(i18n("completed on %1")
- .arg(KGlobal::locale()->formatDateTime(mCompleted)));
+ if ( QApplication::desktop()->width() < 480 ) {
+ mCompletedLabel->setText(i18n(" on"));
+ }
+ else
+ mCompletedLabel->setText(i18n(" completed on "));
+ mCompleteDateEdit->show();
+ mCompleteTimeEdit->show();
+ mCompleteTimeEdit->setTime( mCompleted.time() );
+ mCompleteDateEdit->setDate( mCompleted.date() );
} else {
mCompletedLabel->setText(i18n("completed"));
+ mCompleteDateEdit->hide();
+ mCompleteTimeEdit->hide();
}
}
diff --git a/korganizer/koeditorgeneraltodo.h b/korganizer/koeditorgeneraltodo.h
index 5f1c3cc..98f43dd 100644
--- a/korganizer/koeditorgeneraltodo.h
+++ b/korganizer/koeditorgeneraltodo.h
@@ -88,6 +88,8 @@ class KOEditorGeneralTodo : public KOEditorGeneral
friend class KOTodoEditor;
KDateEdit *mStartDateEdit;
KOTimeEdit *mStartTimeEdit;
+ KDateEdit *mCompleteDateEdit;
+ KOTimeEdit *mCompleteTimeEdit;
QCheckBox *mTimeButton;
QCheckBox *mDueCheck;
KDateEdit *mDueDateEdit;