summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt4
-rw-r--r--korganizer/koeditorgeneraltodo.cpp52
-rw-r--r--korganizer/koeditorgeneraltodo.h2
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
132void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) 132void 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
154void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) 168void 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
171void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) 184void 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
182void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) 195void 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
327void KOEditorGeneralTodo::enableDueEdit(bool enable) 349void 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
346void KOEditorGeneralTodo::enableStartEdit( bool enable ) 368void 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
420void KOEditorGeneralTodo::completedChanged(int index) 442void 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
428void KOEditorGeneralTodo::setCompletedDate() 451void 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
438void KOEditorGeneralTodo::modified (Todo* todo, int modification) 470void 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