487 Launches the date picker by tapping on the repaet until pushbutton |
488 Launches the date picker by tapping on the repaet until pushbutton |
488 */ |
489 */ |
489 void CalenEditorRepeatField::launchRepeatUntilDatePicker() |
490 void CalenEditorRepeatField::launchRepeatUntilDatePicker() |
490 { |
491 { |
491 OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_LAUNCHREPEATUNTILDATEPICKER_ENTRY ); |
492 OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_LAUNCHREPEATUNTILDATEPICKER_ENTRY ); |
|
493 QDate minDate; |
492 HbDialog *popUp = new HbDialog(); |
494 HbDialog *popUp = new HbDialog(); |
493 // Set the parent for the dialog |
495 // Set the parent for the dialog |
494 // Once the parent object is deleted the dialog will also be deleted |
496 // Once the parent object is deleted the dialog will also be deleted |
495 popUp->setParent(this); |
497 popUp->setParent(this); |
496 popUp->setDismissPolicy(HbDialog::NoDismiss); |
498 popUp->setDismissPolicy(HbDialog::NoDismiss); |
500 popUp->setAttribute( Qt::WA_DeleteOnClose, true ); |
502 popUp->setAttribute( Qt::WA_DeleteOnClose, true ); |
501 |
503 |
502 if (mDatePicker) { |
504 if (mDatePicker) { |
503 mDatePicker = 0; |
505 mDatePicker = 0; |
504 } |
506 } |
|
507 mDatePicker = new HbDateTimePicker(mRepeatUntilDate, popUp); |
|
508 |
505 if (mRepeatRuleType == AgendaRepeatRule::DailyRule) { |
509 if (mRepeatRuleType == AgendaRepeatRule::DailyRule) { |
506 QDate minDate = mCalenEditor->editedEntry()->endTime().date().addDays(1); |
510 minDate = mCalenEditor->editedEntry()->endTime().date().addDays(1); |
507 mDatePicker = new HbDateTimePicker(mRepeatUntilDate, popUp); |
|
508 mDatePicker->setMinimumDate(minDate); |
|
509 mDatePicker->setMaximumDate(CalenDateUtils::maxTime().date()); |
|
510 mDatePicker->setDate(mRepeatUntilDate); |
|
511 } else if (mRepeatRuleType == AgendaRepeatRule::WeeklyRule) { |
511 } else if (mRepeatRuleType == AgendaRepeatRule::WeeklyRule) { |
512 QDate minDate; |
|
513 if (!mIsBiWeekly || mIsWorkdays) { |
512 if (!mIsBiWeekly || mIsWorkdays) { |
514 minDate = mCalenEditor->editedEntry()->endTime().date().addDays(7); |
513 minDate = mCalenEditor->editedEntry()->endTime().date().addDays(7); |
515 } else { |
514 } else { |
516 minDate = mCalenEditor->editedEntry()->endTime().date().addDays(14); |
515 minDate = mCalenEditor->editedEntry()->endTime().date().addDays(14); |
517 } |
516 } |
518 mDatePicker = new HbDateTimePicker(mRepeatUntilDate, popUp); |
|
519 mDatePicker->setMinimumDate(minDate); |
|
520 mDatePicker->setMaximumDate(CalenDateUtils::maxTime().date()); |
|
521 mDatePicker->setDate(mRepeatUntilDate); |
|
522 } else if (mRepeatRuleType == AgendaRepeatRule::MonthlyRule) { |
517 } else if (mRepeatRuleType == AgendaRepeatRule::MonthlyRule) { |
523 QDate minDate = mCalenEditor->editedEntry()->endTime().date().addMonths(1); |
518 minDate = mCalenEditor->editedEntry()->endTime().date().addMonths(1); |
524 mDatePicker = new HbDateTimePicker(mRepeatUntilDate, popUp); |
|
525 mDatePicker->setMinimumDate(minDate); |
|
526 mDatePicker->setMaximumDate(CalenDateUtils::maxTime().date()); |
|
527 mDatePicker->setDate(mRepeatUntilDate); |
|
528 } else if (mRepeatRuleType == AgendaRepeatRule::YearlyRule) { |
519 } else if (mRepeatRuleType == AgendaRepeatRule::YearlyRule) { |
529 QDate minDate = mCalenEditor->editedEntry()->endTime().date().addYears(1); |
520 minDate = mCalenEditor->editedEntry()->endTime().date().addYears(1); |
530 mDatePicker = new HbDateTimePicker(mRepeatUntilDate, popUp); |
521 } |
531 mDatePicker->setMinimumDate(minDate); |
522 |
532 mDatePicker->setMaximumDate(CalenDateUtils::maxTime().date()); |
523 mDatePicker->setMinimumDate(minDate); |
533 mDatePicker->setDate(mRepeatUntilDate); |
524 mDatePicker->setMaximumDate(CalenDateUtils::maxTime().date()); |
534 } |
525 mDatePicker->setDisplayFormat(CalenDateUtils::dateFormatString()); |
|
526 mDatePicker->setDate(mRepeatUntilDate); |
535 popUp->setContentWidget(mDatePicker); |
527 popUp->setContentWidget(mDatePicker); |
536 |
528 |
537 HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok")); |
529 HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok")); |
538 popUp->addAction(okAction); |
530 popUp->addAction(okAction); |
539 connect(okAction, SIGNAL(triggered()), this, SLOT(setRepeatUntilDate())); |
531 connect(okAction, SIGNAL(triggered()), this, SLOT(setRepeatUntilDate())); |
541 popUp->open(); |
533 popUp->open(); |
542 OstTraceFunctionExit0( CALENEDITORREPEATFIELD_LAUNCHREPEATUNTILDATEPICKER_EXIT ); |
534 OstTraceFunctionExit0( CALENEDITORREPEATFIELD_LAUNCHREPEATUNTILDATEPICKER_EXIT ); |
543 } |
535 } |
544 |
536 |
545 /*! |
537 /*! |
|
538 Refreshes the repeat until date picker when locale with proper date format |
|
539 */ |
|
540 void CalenEditorRepeatField::refreshRepeatUntilDate() |
|
541 { |
|
542 HbExtendedLocale locale = HbExtendedLocale::system(); |
|
543 QString dateString = locale.format(mRepeatUntilDate, |
|
544 r_qtn_date_usual_with_zero); |
|
545 mCustomRepeatUntilItem->setContentWidgetData("text", dateString); |
|
546 |
|
547 if(!(mDatePicker.isNull())) { |
|
548 mDatePicker->setDisplayFormat(CalenDateUtils::dateFormatString()); |
|
549 mDatePicker->setDate(mRepeatUntilDate); |
|
550 } |
|
551 } |
|
552 /*! |
546 Sets the repeat until date on the repeat until item |
553 Sets the repeat until date on the repeat until item |
547 */ |
554 */ |
548 void CalenEditorRepeatField::setRepeatUntilDate() |
555 void CalenEditorRepeatField::setRepeatUntilDate() |
549 { |
556 { |
550 OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_ENTRY ); |
557 OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_ENTRY ); |
551 //Get the previous date which was set |
558 //Get the previous date which was set |
552 QDate previousDate = mRepeatUntilDate; |
559 QDate previousDate = mRepeatUntilDate; |
553 mRepeatUntilDate = mDatePicker->date(); |
560 mRepeatUntilDate = mDatePicker->date(); |
554 if (mRepeatUntilDate.isValid()) { |
561 if (mRepeatUntilDate.isValid()) |
555 HbExtendedLocale locale = HbExtendedLocale::system(); |
562 refreshRepeatUntilDate(); |
556 QString dateString = locale.format(mRepeatUntilDate, |
|
557 r_qtn_date_usual_with_zero); |
|
558 mCustomRepeatUntilItem->setContentWidgetData("text", dateString); |
|
559 } |
|
560 mCalenEditor->updateReminderChoices(); |
563 mCalenEditor->updateReminderChoices(); |
561 // If the entry's repeatuntil date is changed from past to a future date |
564 // If the entry's repeatuntil date is changed from past to a future date |
562 // And if the alarm set set is off |
565 // And if the alarm set set is off |
563 // Then change the reminder option to the default 'one day before' |
566 // Then change the reminder option to the default 'one day before' |
564 // if the option is valid |
567 // if the option is valid |