-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 4 | ||||
-rw-r--r-- | korganizer/koeditorgeneraltodo.cpp | 52 | ||||
-rw-r--r-- | korganizer/koeditorgeneraltodo.h | 2 |
3 files changed, 46 insertions, 12 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index 8f63d1c..b8080b5 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -1195,30 +1195,30 @@ | |||
1195 | { "Allday:","Ganztägig:" }, | 1195 | { "Allday:","Ganztägig:" }, |
1196 | { "compl.todos","erled.Todos" }, | 1196 | { "compl.todos","erled.Todos" }, |
1197 | { "Day view","Tagesansicht" }, | 1197 | { "Day view","Tagesansicht" }, |
1198 | { "Next days","Nächste Tage" }, | 1198 | { "Next days","Nächste Tage" }, |
1199 | { "Next week","Nächste Woche" }, | 1199 | { "Next week","Nächste Woche" }, |
1200 | { "Next two weeks","Nächste zwei Wochen" }, | 1200 | { "Next two weeks","Nächste zwei Wochen" }, |
1201 | { "Next month","Nächster Monat" }, | 1201 | { "Next month","Nächster Monat" }, |
1202 | { "Journal view","Journal" }, | 1202 | { "Journal view","Journal" }, |
1203 | { "Display all opened","Zeige alle geöffnet" }, | 1203 | { "Display all opened","Zeige alle geöffnet" }, |
1204 | { "Display all closed","Zeige alle geschlossen" }, | 1204 | { "Display all closed","Zeige alle geschlossen" }, |
1205 | { "Display all flat","Zeige alle flach" }, | 1205 | { "Display all flat","Zeige alle flach" }, |
1206 | { "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, | 1206 | { "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, |
1207 | { "Default todo done color:","Standard Todo erledigt Farbe" }, | 1207 | { "Default todo done color:","Standard Todo erledigt Farbe" }, |
1208 | { "Select week %1-%2","Selektiere Woche %1-%2" }, | 1208 | { "Select week %1-%2","Selektiere Woche %1-%2" }, |
1209 | { "Select Week","Selektiere Woche" }, | 1209 | { "Select Week","Selektiere Woche" }, |
1210 | { "Set alarm for selected...","Setze Alarm für Selekt..." }, | 1210 | { "Set alarm for selected...","Setze Alarm für Selekt..." }, |
1211 | { "Set Alarm!","Setze Alarm!" }, | 1211 | { "Set Alarm!","Setze Alarm!" }, |
1212 | { "Canged alarm for %1 items","Alarm für %1 Items geändert" }, | 1212 | { "Canged alarm for %1 items","Alarm für %1 Items geändert" }, |
1213 | { " and "," und " }, | 1213 | { " and "," und " }, |
1214 | { "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, | 1214 | { "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, |
1215 | { "Mail to selected","Mail an Ausgewählte" }, | 1215 | { "Mail to selected","Mail an Ausgewählte" }, |
1216 | { "Mail to all","Mail an Alle" }, | 1216 | { "Mail to all","Mail an Alle" }, |
1217 | { "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, | 1217 | { "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, |
1218 | { "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, | 1218 | { "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, |
1219 | { "","" }, | 1219 | { " on"," am" }, |
1220 | { "","" }, | 1220 | { " completed on "," erledigt am " }, |
1221 | { "","" }, | 1221 | { "","" }, |
1222 | { "","" }, | 1222 | { "","" }, |
1223 | { "","" }, | 1223 | { "","" }, |
1224 | { "","" }, | 1224 | { "","" }, |
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp index b9a028b..ce0d7a9 100644 --- a/korganizer/koeditorgeneraltodo.cpp +++ b/korganizer/koeditorgeneraltodo.cpp | |||
@@ -127,59 +127,72 @@ void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) | |||
127 | // some more layouting | 127 | // some more layouting |
128 | //layoutTimeBox->setColStretch(3,1); | 128 | //layoutTimeBox->setColStretch(3,1); |
129 | } | 129 | } |
130 | 130 | ||
131 | 131 | ||
132 | void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) | 132 | void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) |
133 | { | 133 | { |
134 | mCompletedCombo = new QComboBox(parent); | 134 | mCompletedCombo = new QComboBox(parent); |
135 | // xgettext:no-c-format | 135 | // xgettext:no-c-format |
136 | mCompletedCombo->insertItem(i18n(" 0 %")); | 136 | mCompletedCombo->insertItem(i18n(" 0 %")); |
137 | // xgettext:no-c-format | 137 | // xgettext:no-c-format |
138 | mCompletedCombo->insertItem(i18n(" 20 %")); | 138 | mCompletedCombo->insertItem(i18n(" 20 %")); |
139 | // xgettext:no-c-format | 139 | // xgettext:no-c-format |
140 | mCompletedCombo->insertItem(i18n(" 40 %")); | 140 | mCompletedCombo->insertItem(i18n(" 40 %")); |
141 | // xgettext:no-c-format | 141 | // xgettext:no-c-format |
142 | mCompletedCombo->insertItem(i18n(" 60 %")); | 142 | mCompletedCombo->insertItem(i18n(" 60 %")); |
143 | // xgettext:no-c-format | 143 | // xgettext:no-c-format |
144 | mCompletedCombo->insertItem(i18n(" 80 %")); | 144 | mCompletedCombo->insertItem(i18n(" 80 %")); |
145 | // xgettext:no-c-format | 145 | // xgettext:no-c-format |
146 | mCompletedCombo->insertItem(i18n("100 %")); | 146 | mCompletedCombo->insertItem(i18n("100 %")); |
147 | connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); | 147 | connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); |
148 | topLayout->addWidget(mCompletedCombo); | 148 | topLayout->addWidget(mCompletedCombo); |
149 | 149 | ||
150 | mCompletedLabel = new QLabel(i18n("completed"),parent); | 150 | mCompletedLabel = new QLabel(i18n("completed"),parent); |
151 | topLayout->addWidget(mCompletedLabel); | 151 | topLayout->addWidget(mCompletedLabel); |
152 | |||
153 | mCompleteDateEdit = new KDateEdit(parent); | ||
154 | topLayout->addWidget(mCompleteDateEdit ); | ||
155 | |||
156 | mCompleteTimeEdit = new KOTimeEdit(parent); | ||
157 | topLayout->addWidget( mCompleteTimeEdit); | ||
158 | |||
159 | mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); | ||
160 | mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); | ||
161 | |||
162 | if ( QApplication::desktop()->width() < 320 ) { | ||
163 | mCompleteDateEdit->setMaximumWidth( 85 ); | ||
164 | topLayout->setSpacing( 0 ); | ||
165 | } | ||
152 | } | 166 | } |
153 | 167 | ||
154 | void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) | 168 | void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) |
155 | { | 169 | { |
156 | 170 | ||
157 | QHBox* h = new QHBox ( parent ); | 171 | QHBox* h = new QHBox ( parent ); |
158 | topLayout->addWidget( h ); | 172 | topLayout->addWidget( h ); |
159 | QLabel *priorityLabel = new QLabel(i18n("Priority:"), h); | 173 | QLabel *priorityLabel = new QLabel(i18n("Priority:"), h); |
160 | // topLayout->addWidget(priorityLabel); | 174 | // topLayout->addWidget(priorityLabel); |
161 | |||
162 | mPriorityCombo = new QComboBox( h ); | 175 | mPriorityCombo = new QComboBox( h ); |
163 | mPriorityCombo->insertItem(i18n("1 (high)")); | 176 | mPriorityCombo->insertItem(i18n("1 (high)")); |
164 | mPriorityCombo->insertItem(i18n("2")); | 177 | mPriorityCombo->insertItem(i18n("2")); |
165 | mPriorityCombo->insertItem(i18n("3")); | 178 | mPriorityCombo->insertItem(i18n("3")); |
166 | mPriorityCombo->insertItem(i18n("4")); | 179 | mPriorityCombo->insertItem(i18n("4")); |
167 | mPriorityCombo->insertItem(i18n("5 (low)")); | 180 | mPriorityCombo->insertItem(i18n("5 (low)")); |
168 | //topLayout->addWidget(mPriorityCombo); | 181 | //topLayout->addWidget(mPriorityCombo); |
169 | } | 182 | } |
170 | 183 | ||
171 | void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) | 184 | void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) |
172 | { | 185 | { |
173 | QBoxLayout *statusLayout = new QHBoxLayout(topLayout); | 186 | QBoxLayout *statusLayout = new QHBoxLayout(topLayout); |
174 | 187 | ||
175 | initCompletion( parent, statusLayout ); | 188 | initCompletion( parent, statusLayout ); |
176 | 189 | ||
177 | statusLayout->addStretch( 1 ); | 190 | statusLayout->addStretch( 1 ); |
178 | 191 | ||
179 | initPriority( parent, statusLayout ); | 192 | initPriority( parent, statusLayout ); |
180 | } | 193 | } |
181 | 194 | ||
182 | void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) | 195 | void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) |
183 | { | 196 | { |
184 | 197 | ||
185 | mSummaryEdit->load(KOLocationBox::SUMMARYTODO); | 198 | mSummaryEdit->load(KOLocationBox::SUMMARYTODO); |
@@ -291,57 +304,66 @@ void KOEditorGeneralTodo::writeTodo(Todo *todo) | |||
291 | todo->setDtDue(tmpDT); | 304 | todo->setDtDue(tmpDT); |
292 | 305 | ||
293 | // set start date/time | 306 | // set start date/time |
294 | tmpDate = mStartDateEdit->date(); | 307 | tmpDate = mStartDateEdit->date(); |
295 | tmpTime = mStartTimeEdit->getTime(); | 308 | tmpTime = mStartTimeEdit->getTime(); |
296 | tmpDT.setDate(tmpDate); | 309 | tmpDT.setDate(tmpDate); |
297 | tmpDT.setTime(tmpTime); | 310 | tmpDT.setTime(tmpTime); |
298 | todo->setDtStart(tmpDT); | 311 | todo->setDtStart(tmpDT); |
299 | } else { | 312 | } else { |
300 | todo->setFloats(true); | 313 | todo->setFloats(true); |
301 | 314 | ||
302 | // need to change this. | 315 | // need to change this. |
303 | tmpDate = mDueDateEdit->date(); | 316 | tmpDate = mDueDateEdit->date(); |
304 | tmpTime.setHMS(0,0,0); | 317 | tmpTime.setHMS(0,0,0); |
305 | tmpDT.setDate(tmpDate); | 318 | tmpDT.setDate(tmpDate); |
306 | tmpDT.setTime(tmpTime); | 319 | tmpDT.setTime(tmpTime); |
307 | todo->setDtDue(tmpDT); | 320 | todo->setDtDue(tmpDT); |
308 | 321 | ||
309 | tmpDate = mStartDateEdit->date(); | 322 | tmpDate = mStartDateEdit->date(); |
310 | tmpTime.setHMS(0,0,0); | 323 | tmpTime.setHMS(0,0,0); |
311 | tmpDT.setDate(tmpDate); | 324 | tmpDT.setDate(tmpDate); |
312 | tmpDT.setTime(tmpTime); | 325 | tmpDT.setTime(tmpTime); |
313 | todo->setDtStart(tmpDT); | 326 | todo->setDtStart(tmpDT); |
314 | } | 327 | } |
315 | |||
316 | todo->setPriority(mPriorityCombo->currentItem()+1); | 328 | todo->setPriority(mPriorityCombo->currentItem()+1); |
317 | 329 | ||
318 | // set completion state | 330 | // set completion state |
319 | todo->setPercentComplete(mCompletedCombo->currentItem() * 20); | 331 | if ( mCompletedCombo->currentItem() == 5 ) { |
320 | 332 | QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() ); | |
321 | if (mCompletedCombo->currentItem() == 5 && mCompleted.isValid()) { | 333 | if ( comp.isValid () ) { |
322 | todo->setCompleted(mCompleted); | 334 | todo->setPercentComplete(0); |
335 | todo->setPercentComplete(100); | ||
336 | todo->setCompleted(comp); | ||
337 | } else { | ||
338 | todo->setPercentComplete( 100 ); | ||
339 | if ( mCompleted.isValid() ) | ||
340 | todo->setCompleted(mCompleted); | ||
341 | } | ||
342 | } else { | ||
343 | todo->setPercentComplete(mCompletedCombo->currentItem() * 20); | ||
323 | } | 344 | } |
345 | |||
324 | mSummaryEdit->save(KOLocationBox::SUMMARYTODO); | 346 | mSummaryEdit->save(KOLocationBox::SUMMARYTODO); |
325 | } | 347 | } |
326 | 348 | ||
327 | void KOEditorGeneralTodo::enableDueEdit(bool enable) | 349 | void KOEditorGeneralTodo::enableDueEdit(bool enable) |
328 | { | 350 | { |
329 | mDueDateEdit->setEnabled( enable ); | 351 | mDueDateEdit->setEnabled( enable ); |
330 | 352 | ||
331 | if(mDueCheck->isChecked() || mStartCheck->isChecked()) { | 353 | if(mDueCheck->isChecked() || mStartCheck->isChecked()) { |
332 | mTimeButton->setEnabled(true); | 354 | mTimeButton->setEnabled(true); |
333 | } | 355 | } |
334 | else { | 356 | else { |
335 | mTimeButton->setEnabled(false); | 357 | mTimeButton->setEnabled(false); |
336 | mTimeButton->setChecked(false); | 358 | mTimeButton->setChecked(false); |
337 | } | 359 | } |
338 | 360 | ||
339 | if (enable) { | 361 | if (enable) { |
340 | mDueTimeEdit->setEnabled( mTimeButton->isChecked() ); | 362 | mDueTimeEdit->setEnabled( mTimeButton->isChecked() ); |
341 | } else { | 363 | } else { |
342 | mDueTimeEdit->setEnabled( false ); | 364 | mDueTimeEdit->setEnabled( false ); |
343 | } | 365 | } |
344 | } | 366 | } |
345 | 367 | ||
346 | void KOEditorGeneralTodo::enableStartEdit( bool enable ) | 368 | void KOEditorGeneralTodo::enableStartEdit( bool enable ) |
347 | { | 369 | { |
@@ -399,60 +421,70 @@ bool KOEditorGeneralTodo::validateInput() | |||
399 | } | 421 | } |
400 | 422 | ||
401 | if (mStartCheck->isChecked() && mDueCheck->isChecked()) { | 423 | if (mStartCheck->isChecked() && mDueCheck->isChecked()) { |
402 | QDateTime startDate; | 424 | QDateTime startDate; |
403 | QDateTime dueDate; | 425 | QDateTime dueDate; |
404 | startDate.setDate(mStartDateEdit->date()); | 426 | startDate.setDate(mStartDateEdit->date()); |
405 | dueDate.setDate(mDueDateEdit->date()); | 427 | dueDate.setDate(mDueDateEdit->date()); |
406 | if (mTimeButton->isChecked()) { | 428 | if (mTimeButton->isChecked()) { |
407 | startDate.setTime(mStartTimeEdit->getTime()); | 429 | startDate.setTime(mStartTimeEdit->getTime()); |
408 | dueDate.setTime(mDueTimeEdit->getTime()); | 430 | dueDate.setTime(mDueTimeEdit->getTime()); |
409 | } | 431 | } |
410 | if (startDate > dueDate) { | 432 | if (startDate > dueDate) { |
411 | KMessageBox::sorry(0, | 433 | KMessageBox::sorry(0, |
412 | i18n("The start date cannot be after the due date.")); | 434 | i18n("The start date cannot be after the due date.")); |
413 | return false; | 435 | return false; |
414 | } | 436 | } |
415 | } | 437 | } |
416 | 438 | ||
417 | return KOEditorGeneral::validateInput(); | 439 | return KOEditorGeneral::validateInput(); |
418 | } | 440 | } |
419 | 441 | ||
420 | void KOEditorGeneralTodo::completedChanged(int index) | 442 | void KOEditorGeneralTodo::completedChanged(int index) |
421 | { | 443 | { |
422 | if (index == 5) { | 444 | if (index == 5) { |
423 | mCompleted = QDateTime::currentDateTime(); | 445 | //get rid of milli sec |
446 | mCompleted = QDateTime::currentDateTime(); | ||
424 | } | 447 | } |
425 | setCompletedDate(); | 448 | setCompletedDate(); |
426 | } | 449 | } |
427 | 450 | ||
428 | void KOEditorGeneralTodo::setCompletedDate() | 451 | void KOEditorGeneralTodo::setCompletedDate() |
429 | { | 452 | { |
430 | if (mCompletedCombo->currentItem() == 5 && mCompleted.isValid()) { | 453 | if (mCompletedCombo->currentItem() == 5 && mCompleted.isValid()) { |
431 | mCompletedLabel->setText(i18n("completed on %1") | 454 | if ( QApplication::desktop()->width() < 480 ) { |
432 | .arg(KGlobal::locale()->formatDateTime(mCompleted))); | 455 | mCompletedLabel->setText(i18n(" on")); |
456 | } | ||
457 | else | ||
458 | mCompletedLabel->setText(i18n(" completed on ")); | ||
459 | mCompleteDateEdit->show(); | ||
460 | mCompleteTimeEdit->show(); | ||
461 | mCompleteTimeEdit->setTime( mCompleted.time() ); | ||
462 | mCompleteDateEdit->setDate( mCompleted.date() ); | ||
433 | } else { | 463 | } else { |
434 | mCompletedLabel->setText(i18n("completed")); | 464 | mCompletedLabel->setText(i18n("completed")); |
465 | mCompleteDateEdit->hide(); | ||
466 | mCompleteTimeEdit->hide(); | ||
435 | } | 467 | } |
436 | } | 468 | } |
437 | 469 | ||
438 | void KOEditorGeneralTodo::modified (Todo* todo, int modification) | 470 | void KOEditorGeneralTodo::modified (Todo* todo, int modification) |
439 | { | 471 | { |
440 | switch (modification) { | 472 | switch (modification) { |
441 | case KOGlobals::PRIORITY_MODIFIED: | 473 | case KOGlobals::PRIORITY_MODIFIED: |
442 | mPriorityCombo->setCurrentItem(todo->priority()-1); | 474 | mPriorityCombo->setCurrentItem(todo->priority()-1); |
443 | break; | 475 | break; |
444 | case KOGlobals::COMPLETION_MODIFIED: | 476 | case KOGlobals::COMPLETION_MODIFIED: |
445 | mCompletedCombo->setCurrentItem(todo->percentComplete() / 20); | 477 | mCompletedCombo->setCurrentItem(todo->percentComplete() / 20); |
446 | if (todo->isCompleted() && todo->hasCompletedDate()) { | 478 | if (todo->isCompleted() && todo->hasCompletedDate()) { |
447 | mCompleted = todo->completed(); | 479 | mCompleted = todo->completed(); |
448 | } | 480 | } |
449 | setCompletedDate(); | 481 | setCompletedDate(); |
450 | break; | 482 | break; |
451 | case KOGlobals::CATEGORY_MODIFIED: | 483 | case KOGlobals::CATEGORY_MODIFIED: |
452 | setCategories (todo->categoriesStr ()); | 484 | setCategories (todo->categoriesStr ()); |
453 | break; | 485 | break; |
454 | case KOGlobals::UNKNOWN_MODIFIED: // fall through | 486 | case KOGlobals::UNKNOWN_MODIFIED: // fall through |
455 | default: | 487 | default: |
456 | readTodo( todo ); | 488 | readTodo( todo ); |
457 | break; | 489 | break; |
458 | } | 490 | } |
diff --git a/korganizer/koeditorgeneraltodo.h b/korganizer/koeditorgeneraltodo.h index 5f1c3cc..98f43dd 100644 --- a/korganizer/koeditorgeneraltodo.h +++ b/korganizer/koeditorgeneraltodo.h | |||
@@ -67,40 +67,42 @@ class KOEditorGeneralTodo : public KOEditorGeneral | |||
67 | /** Check if the input is valid. */ | 67 | /** Check if the input is valid. */ |
68 | bool validateInput(); | 68 | bool validateInput(); |
69 | 69 | ||
70 | /** The todo has been modified externally */ | 70 | /** The todo has been modified externally */ |
71 | void modified (Todo*, int); | 71 | void modified (Todo*, int); |
72 | 72 | ||
73 | signals: | 73 | signals: |
74 | void openCategoryDialog(); | 74 | void openCategoryDialog(); |
75 | 75 | ||
76 | protected slots: | 76 | protected slots: |
77 | void completedChanged(int); | 77 | void completedChanged(int); |
78 | 78 | ||
79 | void enableDueEdit( bool enable ); | 79 | void enableDueEdit( bool enable ); |
80 | void enableStartEdit( bool enable ); | 80 | void enableStartEdit( bool enable ); |
81 | void enableTimeEdits( bool enable ); | 81 | void enableTimeEdits( bool enable ); |
82 | void showAlarm(); | 82 | void showAlarm(); |
83 | 83 | ||
84 | protected: | 84 | protected: |
85 | void setCompletedDate(); | 85 | void setCompletedDate(); |
86 | 86 | ||
87 | private: | 87 | private: |
88 | friend class KOTodoEditor; | 88 | friend class KOTodoEditor; |
89 | KDateEdit *mStartDateEdit; | 89 | KDateEdit *mStartDateEdit; |
90 | KOTimeEdit *mStartTimeEdit; | 90 | KOTimeEdit *mStartTimeEdit; |
91 | KDateEdit *mCompleteDateEdit; | ||
92 | KOTimeEdit *mCompleteTimeEdit; | ||
91 | QCheckBox *mTimeButton; | 93 | QCheckBox *mTimeButton; |
92 | QCheckBox *mDueCheck; | 94 | QCheckBox *mDueCheck; |
93 | KDateEdit *mDueDateEdit; | 95 | KDateEdit *mDueDateEdit; |
94 | KOTimeEdit *mDueTimeEdit; | 96 | KOTimeEdit *mDueTimeEdit; |
95 | QComboBox *mCompletedCombo; | 97 | QComboBox *mCompletedCombo; |
96 | QLabel *mCompletedLabel; | 98 | QLabel *mCompletedLabel; |
97 | QLabel *mPriorityLabel; | 99 | QLabel *mPriorityLabel; |
98 | QComboBox *mPriorityCombo; | 100 | QComboBox *mPriorityCombo; |
99 | 101 | ||
100 | QCheckBox *mStartCheck; | 102 | QCheckBox *mStartCheck; |
101 | 103 | ||
102 | QDateTime mCompleted; | 104 | QDateTime mCompleted; |
103 | }; | 105 | }; |
104 | 106 | ||
105 | 107 | ||
106 | #endif | 108 | #endif |