diff -r bb2d3e476f29 -r a3cb48f6c889 calendarui/caleneditor/src/caleneditorrepeatfield.cpp --- a/calendarui/caleneditor/src/caleneditorrepeatfield.cpp Mon Aug 09 18:30:52 2010 +0530 +++ b/calendarui/caleneditor/src/caleneditorrepeatfield.cpp Wed Aug 25 14:02:13 2010 +0530 @@ -290,102 +290,108 @@ repeatPropertyChange = false; } QDate repeatUntilDate = mRepeatUntilDate; - - if (value != mRepeatRoleValue) - { - mRepeatRoleValue = value; - switch (value) { - case DailyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); + // Update the repeat type only if its has been changed + // ie. if the previous repeatrole is different from the current repeat role + if (value != mRepeatRoleValue) { + mRepeatRoleValue = value; + switch (value) { + case DailyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for daily rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::DailyRule; } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for daily rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); + break; + case WorkdaysRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for workdays rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::WeeklyRule; + mIsWorkdays = true; } - mRepeatRuleType = AgendaRepeatRule::DailyRule; - } - break; - case WorkdaysRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); + break; + case WeeklyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for weekly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::WeeklyRule; } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for workdays rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); + break; + case BiWeeklyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for bi-weekly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::WeeklyRule; + mIsBiWeekly = true; } - mRepeatRuleType = AgendaRepeatRule::WeeklyRule; - mIsWorkdays = true; - } - break; - case WeeklyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); + break; + case MonthlyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for monthly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::MonthlyRule; } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for weekly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); + break; + case YearlyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till ten years for yearly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(10); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::YearlyRule; } - mRepeatRuleType = AgendaRepeatRule::WeeklyRule; + break; + default: { + removeRepeatUntilItem(); + } + break; } - break; - case BiWeeklyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); - } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for bi-weekly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); - } - mRepeatRuleType = AgendaRepeatRule::WeeklyRule; - mIsBiWeekly = true; - } - break; - case MonthlyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); - } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for monthly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); - } - mRepeatRuleType = AgendaRepeatRule::MonthlyRule; - } - break; - case YearlyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); - } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till ten years for yearly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(10); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); - } - mRepeatRuleType = AgendaRepeatRule::YearlyRule; - } - break; - default: { - removeRepeatUntilItem(); - } - break; - } } if(!mCalenEditor->isNewEntry()) { mCalenEditor->addDiscardAction(); @@ -668,8 +674,17 @@ //Connecting back the slot for repeat index change before setting index. connect(mRepeatComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(handleRepeatIndexChanged(int))); + // By default the repeat combobox index will be 0 // Set the previous user's choice mRepeatComboBox->setCurrentIndex(choice); + // If the previous user's choice is also zero, then slot + // handleRepeatIndexChanged will not be called as + // there is no change in current index + // So explicitly call updateReminderChoices to update the reminder choices + // for choice : 0 (Not repeated) + if(choice == 0) { + mCalenEditor->updateReminderChoices(); + } OstTraceFunctionExit0( DUP1_CALENEDITORREPEATFIELD_UPDATEREPEATCHOICES_EXIT ); }