calendarui/caleneditor/src/caleneditorrepeatfield.cpp
changeset 75 7ac58b2aae6f
parent 70 a5ed90760192
equal deleted inserted replaced
72:27feeedec790 75:7ac58b2aae6f
    94 	mEditorForm(form), 
    94 	mEditorForm(form), 
    95 	mCalenEditorModel(model), 
    95 	mCalenEditorModel(model), 
    96 	mRepeatItem(0),
    96 	mRepeatItem(0),
    97 	mRepeatComboBox(0),
    97 	mRepeatComboBox(0),
    98 	mCustomRepeatUntilItem(0),
    98 	mCustomRepeatUntilItem(0),
       
    99 	mDatePicker(0),
    99 	mRepeatRoleValue(0),
   100 	mRepeatRoleValue(0),
   100 	mIsBiWeekly(false),
   101 	mIsBiWeekly(false),
   101 	mIsWorkdays(false),
   102 	mIsWorkdays(false),
   102 	mRepeatUntilItemAdded(false)
   103 	mRepeatUntilItemAdded(false)
   103 {
   104 {
   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