summaryrefslogtreecommitdiffabout
path: root/korganizer/koeditorgeneraltodo.cpp
Unidiff
Diffstat (limited to 'korganizer/koeditorgeneraltodo.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/koeditorgeneraltodo.cpp9
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
85void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) 85void 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
136void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) 137void 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
176void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) 177void 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
359void KOEditorGeneralTodo::enableDueEdit(bool enable) 360void 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
379void KOEditorGeneralTodo::enableStartEdit( bool enable ) 380void 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 399void KOEditorGeneralTodo::startDateChanged(QDate newdate)
400{
401 if ( mDueCheck->isChecked() )
402 emit dateTimesChanged(newdate,mDueDateEdit->date());
403}
399void KOEditorGeneralTodo::enableTimeEdits(bool enable) 404void 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
409void KOEditorGeneralTodo::showAlarm() 414void 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
419bool KOEditorGeneralTodo::validateInput() 424bool 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."));