Diffstat (limited to 'korganizer/koeditorgeneraltodo.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | korganizer/koeditorgeneraltodo.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp index e86b4d0..0a734ee 100644 --- a/korganizer/koeditorgeneraltodo.cpp +++ b/korganizer/koeditorgeneraltodo.cpp | |||
@@ -82,97 +82,98 @@ void KOEditorGeneralTodo::finishSetup() | |||
82 | mSummaryEdit->setFocus(); | 82 | mSummaryEdit->setFocus(); |
83 | } | 83 | } |
84 | 84 | ||
85 | void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) | 85 | void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) |
86 | { | 86 | { |
87 | QBoxLayout *timeLayout = new QVBoxLayout(topLayout); | 87 | QBoxLayout *timeLayout = new QVBoxLayout(topLayout); |
88 | 88 | ||
89 | QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, | 89 | QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, |
90 | i18n("Date && Time"),parent); | 90 | i18n("Date && Time"),parent); |
91 | timeLayout->addWidget(timeGroupBox); | 91 | timeLayout->addWidget(timeGroupBox); |
92 | timeGroupBox->layout()->setSpacing( KDialog::spacingHintSmall() ); | 92 | timeGroupBox->layout()->setSpacing( KDialog::spacingHintSmall() ); |
93 | timeGroupBox->layout()->setMargin( KDialog::marginHint() ); | 93 | timeGroupBox->layout()->setMargin( KDialog::marginHint() ); |
94 | QFrame *timeBoxFrame = new QFrame(timeGroupBox); | 94 | QFrame *timeBoxFrame = new QFrame(timeGroupBox); |
95 | 95 | ||
96 | QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); | 96 | QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); |
97 | layoutTimeBox->setSpacing(KDialog::spacingHintSmall()); | 97 | layoutTimeBox->setSpacing(KDialog::spacingHintSmall()); |
98 | layoutTimeBox->setColStretch( 1, 1 ); | 98 | layoutTimeBox->setColStretch( 1, 1 ); |
99 | 99 | ||
100 | mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); | 100 | mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); |
101 | layoutTimeBox->addWidget(mDueCheck,1,0); | 101 | layoutTimeBox->addWidget(mDueCheck,1,0); |
102 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); | 102 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); |
103 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); | 103 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); |
104 | 104 | ||
105 | 105 | ||
106 | mDueDateEdit = new KDateEdit(timeBoxFrame); | 106 | mDueDateEdit = new KDateEdit(timeBoxFrame); |
107 | layoutTimeBox->addWidget(mDueDateEdit,1,1); | 107 | layoutTimeBox->addWidget(mDueDateEdit,1,1); |
108 | 108 | ||
109 | mDueTimeEdit = new KOTimeEdit(timeBoxFrame); | 109 | mDueTimeEdit = new KOTimeEdit(timeBoxFrame); |
110 | layoutTimeBox->addWidget(mDueTimeEdit,1,2); | 110 | layoutTimeBox->addWidget(mDueTimeEdit,1,2); |
111 | 111 | ||
112 | 112 | ||
113 | mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); | 113 | mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); |
114 | layoutTimeBox->addWidget(mStartCheck,0,0); | 114 | layoutTimeBox->addWidget(mStartCheck,0,0); |
115 | connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); | 115 | connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); |
116 | 116 | ||
117 | mStartDateEdit = new KDateEdit(timeBoxFrame); | 117 | mStartDateEdit = new KDateEdit(timeBoxFrame); |
118 | layoutTimeBox->addWidget(mStartDateEdit,0,1); | 118 | layoutTimeBox->addWidget(mStartDateEdit,0,1); |
119 | 119 | ||
120 | mStartTimeEdit = new KOTimeEdit(timeBoxFrame); | 120 | mStartTimeEdit = new KOTimeEdit(timeBoxFrame); |
121 | layoutTimeBox->addWidget(mStartTimeEdit,0,2); | 121 | layoutTimeBox->addWidget(mStartTimeEdit,0,2); |
122 | 122 | ||
123 | 123 | ||
124 | mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); | 124 | mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); |
125 | layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); | 125 | layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); |
126 | 126 | ||
127 | connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); | 127 | connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); |
128 | connect(mDueDateEdit,SIGNAL(setTimeTo(QTime)),mDueTimeEdit,SLOT(setTime(QTime))); | 128 | connect(mDueDateEdit,SIGNAL(setTimeTo(QTime)),mDueTimeEdit,SLOT(setTime(QTime))); |
129 | connect(mStartDateEdit,SIGNAL(setTimeTo(QTime)),mStartTimeEdit,SLOT(setTime(QTime))); | 129 | connect(mStartDateEdit,SIGNAL(setTimeTo(QTime)),mStartTimeEdit,SLOT(setTime(QTime))); |
130 | 130 | connect(mStartDateEdit, SIGNAL(dateChanged(QDate)), | |
131 | this, SLOT(startDateChanged(QDate))); | ||
131 | // some more layouting | 132 | // some more layouting |
132 | //layoutTimeBox->setColStretch(3,1); | 133 | //layoutTimeBox->setColStretch(3,1); |
133 | } | 134 | } |
134 | 135 | ||
135 | 136 | ||
136 | void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) | 137 | void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) |
137 | { | 138 | { |
138 | mCompletedCombo = new QComboBox(parent); | 139 | mCompletedCombo = new QComboBox(parent); |
139 | // xgettext:no-c-format | 140 | // xgettext:no-c-format |
140 | mCompletedCombo->insertItem(i18n(" 0 %")); | 141 | mCompletedCombo->insertItem(i18n(" 0 %")); |
141 | // xgettext:no-c-format | 142 | // xgettext:no-c-format |
142 | mCompletedCombo->insertItem(i18n(" 20 %")); | 143 | mCompletedCombo->insertItem(i18n(" 20 %")); |
143 | // xgettext:no-c-format | 144 | // xgettext:no-c-format |
144 | mCompletedCombo->insertItem(i18n(" 40 %")); | 145 | mCompletedCombo->insertItem(i18n(" 40 %")); |
145 | // xgettext:no-c-format | 146 | // xgettext:no-c-format |
146 | mCompletedCombo->insertItem(i18n(" 60 %")); | 147 | mCompletedCombo->insertItem(i18n(" 60 %")); |
147 | // xgettext:no-c-format | 148 | // xgettext:no-c-format |
148 | mCompletedCombo->insertItem(i18n(" 80 %")); | 149 | mCompletedCombo->insertItem(i18n(" 80 %")); |
149 | // xgettext:no-c-format | 150 | // xgettext:no-c-format |
150 | mCompletedCombo->insertItem(i18n("100 %")); | 151 | mCompletedCombo->insertItem(i18n("100 %")); |
151 | connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); | 152 | connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); |
152 | topLayout->addWidget(mCompletedCombo); | 153 | topLayout->addWidget(mCompletedCombo); |
153 | 154 | ||
154 | mCompletedLabel = new QLabel(i18n("completed"),parent); | 155 | mCompletedLabel = new QLabel(i18n("completed"),parent); |
155 | topLayout->addWidget(mCompletedLabel); | 156 | topLayout->addWidget(mCompletedLabel); |
156 | 157 | ||
157 | mCompleteDateEdit = new KDateEdit(parent); | 158 | mCompleteDateEdit = new KDateEdit(parent); |
158 | topLayout->addWidget(mCompleteDateEdit ); | 159 | topLayout->addWidget(mCompleteDateEdit ); |
159 | 160 | ||
160 | mCompleteTimeEdit = new KOTimeEdit(parent); | 161 | mCompleteTimeEdit = new KOTimeEdit(parent); |
161 | topLayout->addWidget( mCompleteTimeEdit); | 162 | topLayout->addWidget( mCompleteTimeEdit); |
162 | 163 | ||
163 | mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); | 164 | mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); |
164 | mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); | 165 | mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); |
165 | connect(mCompleteDateEdit,SIGNAL(setTimeTo(QTime)),mCompleteTimeEdit,SLOT(setTime(QTime))); | 166 | connect(mCompleteDateEdit,SIGNAL(setTimeTo(QTime)),mCompleteTimeEdit,SLOT(setTime(QTime))); |
166 | 167 | ||
167 | if ( QApplication::desktop()->width() <= 480 ) { | 168 | if ( QApplication::desktop()->width() <= 480 ) { |
168 | if ( QApplication::desktop()->width() < 320 ) | 169 | if ( QApplication::desktop()->width() < 320 ) |
169 | mCompleteDateEdit->setMaximumWidth( 85 ); | 170 | mCompleteDateEdit->setMaximumWidth( 85 ); |
170 | else | 171 | else |
171 | mCompleteDateEdit->setMaximumWidth( 140 ); | 172 | mCompleteDateEdit->setMaximumWidth( 140 ); |
172 | topLayout->setSpacing( 0 ); | 173 | topLayout->setSpacing( 0 ); |
173 | } | 174 | } |
174 | } | 175 | } |
175 | 176 | ||
176 | void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) | 177 | void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) |
177 | { | 178 | { |
178 | 179 | ||
@@ -350,97 +351,101 @@ void KOEditorGeneralTodo::writeTodo(Todo *todo) | |||
350 | todo->setCompleted(mCompleted); | 351 | todo->setCompleted(mCompleted); |
351 | } | 352 | } |
352 | } else { | 353 | } else { |
353 | todo->setPercentComplete(mCompletedCombo->currentItem() * 20); | 354 | todo->setPercentComplete(mCompletedCombo->currentItem() * 20); |
354 | } | 355 | } |
355 | 356 | ||
356 | mSummaryEdit->save(KOLocationBox::SUMMARYTODO); | 357 | mSummaryEdit->save(KOLocationBox::SUMMARYTODO); |
357 | } | 358 | } |
358 | 359 | ||
359 | void KOEditorGeneralTodo::enableDueEdit(bool enable) | 360 | void KOEditorGeneralTodo::enableDueEdit(bool enable) |
360 | { | 361 | { |
361 | mDueDateEdit->setEnabled( enable ); | 362 | mDueDateEdit->setEnabled( enable ); |
362 | 363 | ||
363 | if(mDueCheck->isChecked() || mStartCheck->isChecked()) { | 364 | if(mDueCheck->isChecked() || mStartCheck->isChecked()) { |
364 | mTimeButton->setEnabled(true); | 365 | mTimeButton->setEnabled(true); |
365 | } | 366 | } |
366 | else { | 367 | else { |
367 | mTimeButton->setEnabled(false); | 368 | mTimeButton->setEnabled(false); |
368 | mTimeButton->setChecked(false); | 369 | mTimeButton->setChecked(false); |
369 | } | 370 | } |
370 | 371 | ||
371 | if (enable) { | 372 | if (enable) { |
372 | mDueTimeEdit->setEnabled( mTimeButton->isChecked() ); | 373 | mDueTimeEdit->setEnabled( mTimeButton->isChecked() ); |
373 | } else { | 374 | } else { |
374 | mDueTimeEdit->setEnabled( false ); | 375 | mDueTimeEdit->setEnabled( false ); |
375 | } | 376 | } |
376 | emit datesChecked(); | 377 | emit datesChecked(); |
377 | } | 378 | } |
378 | 379 | ||
379 | void KOEditorGeneralTodo::enableStartEdit( bool enable ) | 380 | void KOEditorGeneralTodo::enableStartEdit( bool enable ) |
380 | { | 381 | { |
381 | mStartDateEdit->setEnabled( enable ); | 382 | mStartDateEdit->setEnabled( enable ); |
382 | 383 | ||
383 | if(mDueCheck->isChecked() || mStartCheck->isChecked()) { | 384 | if(mDueCheck->isChecked() || mStartCheck->isChecked()) { |
384 | mTimeButton->setEnabled(true); | 385 | mTimeButton->setEnabled(true); |
385 | } | 386 | } |
386 | else { | 387 | else { |
387 | mTimeButton->setEnabled(false); | 388 | mTimeButton->setEnabled(false); |
388 | mTimeButton->setChecked(false); | 389 | mTimeButton->setChecked(false); |
389 | } | 390 | } |
390 | 391 | ||
391 | if (enable) { | 392 | if (enable) { |
392 | mStartTimeEdit->setEnabled( mTimeButton->isChecked() ); | 393 | mStartTimeEdit->setEnabled( mTimeButton->isChecked() ); |
393 | } else { | 394 | } else { |
394 | mStartTimeEdit->setEnabled( false ); | 395 | mStartTimeEdit->setEnabled( false ); |
395 | } | 396 | } |
396 | emit datesChecked(); | 397 | emit datesChecked(); |
397 | } | 398 | } |
398 | 399 | void KOEditorGeneralTodo::startDateChanged(QDate newdate) | |
400 | { | ||
401 | if ( mDueCheck->isChecked() ) | ||
402 | emit dateTimesChanged(newdate,mDueDateEdit->date()); | ||
403 | } | ||
399 | void KOEditorGeneralTodo::enableTimeEdits(bool enable) | 404 | void KOEditorGeneralTodo::enableTimeEdits(bool enable) |
400 | { | 405 | { |
401 | if(mStartCheck->isChecked()) { | 406 | if(mStartCheck->isChecked()) { |
402 | mStartTimeEdit->setEnabled( enable ); | 407 | mStartTimeEdit->setEnabled( enable ); |
403 | } | 408 | } |
404 | if(mDueCheck->isChecked()) { | 409 | if(mDueCheck->isChecked()) { |
405 | mDueTimeEdit->setEnabled( enable ); | 410 | mDueTimeEdit->setEnabled( enable ); |
406 | } | 411 | } |
407 | } | 412 | } |
408 | 413 | ||
409 | void KOEditorGeneralTodo::showAlarm() | 414 | void KOEditorGeneralTodo::showAlarm() |
410 | { | 415 | { |
411 | if ( mDueCheck->isChecked() ) { | 416 | if ( mDueCheck->isChecked() ) { |
412 | alarmDisable(false); | 417 | alarmDisable(false); |
413 | } | 418 | } |
414 | else { | 419 | else { |
415 | alarmDisable(true); | 420 | alarmDisable(true); |
416 | } | 421 | } |
417 | } | 422 | } |
418 | 423 | ||
419 | bool KOEditorGeneralTodo::validateInput() | 424 | bool KOEditorGeneralTodo::validateInput() |
420 | { | 425 | { |
421 | if (mDueCheck->isChecked()) { | 426 | if (mDueCheck->isChecked()) { |
422 | if (!mDueDateEdit->inputIsValid()) { | 427 | if (!mDueDateEdit->inputIsValid()) { |
423 | KMessageBox::sorry(0,i18n("Please specify a valid due date.")); | 428 | KMessageBox::sorry(0,i18n("Please specify a valid due date.")); |
424 | return false; | 429 | return false; |
425 | } | 430 | } |
426 | } | 431 | } |
427 | 432 | ||
428 | if (mStartCheck->isChecked()) { | 433 | if (mStartCheck->isChecked()) { |
429 | if (!mStartDateEdit->inputIsValid()) { | 434 | if (!mStartDateEdit->inputIsValid()) { |
430 | KMessageBox::sorry(0,i18n("Please specify a valid start date.")); | 435 | KMessageBox::sorry(0,i18n("Please specify a valid start date.")); |
431 | return false; | 436 | return false; |
432 | } | 437 | } |
433 | } | 438 | } |
434 | 439 | ||
435 | if (mStartCheck->isChecked() && mDueCheck->isChecked()) { | 440 | if (mStartCheck->isChecked() && mDueCheck->isChecked()) { |
436 | QDateTime startDate; | 441 | QDateTime startDate; |
437 | QDateTime dueDate; | 442 | QDateTime dueDate; |
438 | startDate.setDate(mStartDateEdit->date()); | 443 | startDate.setDate(mStartDateEdit->date()); |
439 | dueDate.setDate(mDueDateEdit->date()); | 444 | dueDate.setDate(mDueDateEdit->date()); |
440 | if (mTimeButton->isChecked()) { | 445 | if (mTimeButton->isChecked()) { |
441 | startDate.setTime(mStartTimeEdit->getTime()); | 446 | startDate.setTime(mStartTimeEdit->getTime()); |
442 | dueDate.setTime(mDueTimeEdit->getTime()); | 447 | dueDate.setTime(mDueTimeEdit->getTime()); |
443 | } | 448 | } |
444 | if (startDate > dueDate) { | 449 | if (startDate > dueDate) { |
445 | KMessageBox::sorry(0, | 450 | KMessageBox::sorry(0, |
446 | i18n("The start date cannot be after the due date.")); | 451 | i18n("The start date cannot be after the due date.")); |