288 }else { |
289 }else { |
289 // No change in repeat value |
290 // No change in repeat value |
290 repeatPropertyChange = false; |
291 repeatPropertyChange = false; |
291 } |
292 } |
292 QDate repeatUntilDate = mRepeatUntilDate; |
293 QDate repeatUntilDate = mRepeatUntilDate; |
293 |
294 // Update the repeat type only if its has been changed |
294 if (value != mRepeatRoleValue) |
295 // ie. if the previous repeatrole is different from the current repeat role |
295 { |
296 if (value != mRepeatRoleValue) { |
296 mRepeatRoleValue = value; |
297 mRepeatRoleValue = value; |
297 switch (value) { |
298 switch (value) { |
298 case DailyRole: { |
299 case DailyRole: { |
299 if (!mRepeatUntilItemAdded) { |
300 if (!mRepeatUntilItemAdded) { |
300 insertRepeatUntilItem(); |
301 insertRepeatUntilItem(); |
301 } |
302 } |
302 if (mCustomRepeatUntilItem) { |
303 if (mCustomRepeatUntilItem) { |
303 // Show default repeat until date till one year for daily rule |
304 // Show default repeat until date till one year for daily rule |
304 mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); |
305 mRepeatUntilDate = |
305 mCustomRepeatUntilItem->setContentWidgetData( "text", |
306 mCalenEditor->editedEntry()->startTime().date().addYears(1); |
306 locale.format( mRepeatUntilDate, |
307 mCustomRepeatUntilItem->setContentWidgetData( "text", |
307 r_qtn_date_usual_with_zero)); |
308 locale.format( |
308 } |
309 mRepeatUntilDate, r_qtn_date_usual_with_zero)); |
309 mRepeatRuleType = AgendaRepeatRule::DailyRule; |
310 } |
|
311 mRepeatRuleType = AgendaRepeatRule::DailyRule; |
|
312 } |
|
313 break; |
|
314 case WorkdaysRole: { |
|
315 if (!mRepeatUntilItemAdded) { |
|
316 insertRepeatUntilItem(); |
|
317 } |
|
318 if (mCustomRepeatUntilItem) { |
|
319 // Show default repeat until date till one year for workdays rule |
|
320 mRepeatUntilDate = |
|
321 mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
322 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
323 locale.format( |
|
324 mRepeatUntilDate, r_qtn_date_usual_with_zero)); |
|
325 } |
|
326 mRepeatRuleType = AgendaRepeatRule::WeeklyRule; |
|
327 mIsWorkdays = true; |
|
328 } |
|
329 break; |
|
330 case WeeklyRole: { |
|
331 if (!mRepeatUntilItemAdded) { |
|
332 insertRepeatUntilItem(); |
|
333 } |
|
334 if (mCustomRepeatUntilItem) { |
|
335 // Show default repeat until date till one year for weekly rule |
|
336 mRepeatUntilDate = |
|
337 mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
338 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
339 locale.format( |
|
340 mRepeatUntilDate, r_qtn_date_usual_with_zero)); |
|
341 } |
|
342 mRepeatRuleType = AgendaRepeatRule::WeeklyRule; |
|
343 } |
|
344 break; |
|
345 case BiWeeklyRole: { |
|
346 if (!mRepeatUntilItemAdded) { |
|
347 insertRepeatUntilItem(); |
|
348 } |
|
349 if (mCustomRepeatUntilItem) { |
|
350 // Show default repeat until date till one year for bi-weekly rule |
|
351 mRepeatUntilDate = |
|
352 mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
353 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
354 locale.format( |
|
355 mRepeatUntilDate, r_qtn_date_usual_with_zero)); |
|
356 } |
|
357 mRepeatRuleType = AgendaRepeatRule::WeeklyRule; |
|
358 mIsBiWeekly = true; |
|
359 } |
|
360 break; |
|
361 case MonthlyRole: { |
|
362 if (!mRepeatUntilItemAdded) { |
|
363 insertRepeatUntilItem(); |
|
364 } |
|
365 if (mCustomRepeatUntilItem) { |
|
366 // Show default repeat until date till one year for monthly rule |
|
367 mRepeatUntilDate = |
|
368 mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
369 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
370 locale.format( |
|
371 mRepeatUntilDate, r_qtn_date_usual_with_zero)); |
|
372 } |
|
373 mRepeatRuleType = AgendaRepeatRule::MonthlyRule; |
|
374 } |
|
375 break; |
|
376 case YearlyRole: { |
|
377 if (!mRepeatUntilItemAdded) { |
|
378 insertRepeatUntilItem(); |
|
379 } |
|
380 if (mCustomRepeatUntilItem) { |
|
381 // Show default repeat until date till ten years for yearly rule |
|
382 mRepeatUntilDate = |
|
383 mCalenEditor->editedEntry()->startTime().date().addYears(10); |
|
384 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
385 locale.format( |
|
386 mRepeatUntilDate, r_qtn_date_usual_with_zero)); |
|
387 } |
|
388 mRepeatRuleType = AgendaRepeatRule::YearlyRule; |
|
389 } |
|
390 break; |
|
391 default: { |
|
392 removeRepeatUntilItem(); |
|
393 } |
|
394 break; |
310 } |
395 } |
311 break; |
|
312 case WorkdaysRole: { |
|
313 if (!mRepeatUntilItemAdded) { |
|
314 insertRepeatUntilItem(); |
|
315 } |
|
316 if (mCustomRepeatUntilItem) { |
|
317 // Show default repeat until date till one year for workdays rule |
|
318 mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
319 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
320 locale.format( mRepeatUntilDate, |
|
321 r_qtn_date_usual_with_zero)); |
|
322 } |
|
323 mRepeatRuleType = AgendaRepeatRule::WeeklyRule; |
|
324 mIsWorkdays = true; |
|
325 } |
|
326 break; |
|
327 case WeeklyRole: { |
|
328 if (!mRepeatUntilItemAdded) { |
|
329 insertRepeatUntilItem(); |
|
330 } |
|
331 if (mCustomRepeatUntilItem) { |
|
332 // Show default repeat until date till one year for weekly rule |
|
333 mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
334 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
335 locale.format( mRepeatUntilDate, |
|
336 r_qtn_date_usual_with_zero)); |
|
337 } |
|
338 mRepeatRuleType = AgendaRepeatRule::WeeklyRule; |
|
339 } |
|
340 break; |
|
341 case BiWeeklyRole: { |
|
342 if (!mRepeatUntilItemAdded) { |
|
343 insertRepeatUntilItem(); |
|
344 } |
|
345 if (mCustomRepeatUntilItem) { |
|
346 // Show default repeat until date till one year for bi-weekly rule |
|
347 mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
348 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
349 locale.format( mRepeatUntilDate, |
|
350 r_qtn_date_usual_with_zero)); |
|
351 } |
|
352 mRepeatRuleType = AgendaRepeatRule::WeeklyRule; |
|
353 mIsBiWeekly = true; |
|
354 } |
|
355 break; |
|
356 case MonthlyRole: { |
|
357 if (!mRepeatUntilItemAdded) { |
|
358 insertRepeatUntilItem(); |
|
359 } |
|
360 if (mCustomRepeatUntilItem) { |
|
361 // Show default repeat until date till one year for monthly rule |
|
362 mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); |
|
363 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
364 locale.format( mRepeatUntilDate, |
|
365 r_qtn_date_usual_with_zero)); |
|
366 } |
|
367 mRepeatRuleType = AgendaRepeatRule::MonthlyRule; |
|
368 } |
|
369 break; |
|
370 case YearlyRole: { |
|
371 if (!mRepeatUntilItemAdded) { |
|
372 insertRepeatUntilItem(); |
|
373 } |
|
374 if (mCustomRepeatUntilItem) { |
|
375 // Show default repeat until date till ten years for yearly rule |
|
376 mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(10); |
|
377 mCustomRepeatUntilItem->setContentWidgetData( "text", |
|
378 locale.format( mRepeatUntilDate, |
|
379 r_qtn_date_usual_with_zero)); |
|
380 } |
|
381 mRepeatRuleType = AgendaRepeatRule::YearlyRule; |
|
382 } |
|
383 break; |
|
384 default: { |
|
385 removeRepeatUntilItem(); |
|
386 } |
|
387 break; |
|
388 } |
|
389 } |
396 } |
390 if(!mCalenEditor->isNewEntry()) { |
397 if(!mCalenEditor->isNewEntry()) { |
391 mCalenEditor->addDiscardAction(); |
398 mCalenEditor->addDiscardAction(); |
392 } |
399 } |
393 // Depending on repeatPropertyChange value and the repeatuntil date change |
400 // Depending on repeatPropertyChange value and the repeatuntil date change |
394 // the reminder choices are updated |
401 // the reminder choices are updated |
395 if(repeatPropertyChange || repeatUntilDate != mRepeatUntilDate) { |
402 if(repeatPropertyChange || repeatUntilDate != mRepeatUntilDate) { |
396 mCalenEditor->updateReminderChoices(); |
403 mCalenEditor->updateReminderChoices(); |
|
404 // Once the entry is changed from non repeating to repeating |
|
405 // and if the alarm set is off |
|
406 // Then change the reminder option to the default 'one day before' |
|
407 // if the option is valid |
|
408 if (mCalenEditor->isAllDayEvent() && |
|
409 repeatPropertyChange && mRepeatUntilItemAdded) { |
|
410 if(!mCalenEditor->isReminderTimeForAllDayAdded() && |
|
411 mCalenEditor->getReminderCount() >= 3) { |
|
412 mCalenEditor->setCurrentIndexOfReminderField( |
|
413 CalenEditorReminderField::ReminderOneDayBefore); |
|
414 } |
|
415 } |
397 } |
416 } |
398 OstTraceFunctionExit0( CALENEDITORREPEATFIELD_HANDLEREPEATINDEXCHANGED_EXIT ); |
417 OstTraceFunctionExit0( CALENEDITORREPEATFIELD_HANDLEREPEATINDEXCHANGED_EXIT ); |
399 } |
418 } |
400 |
419 |
401 /*! |
420 /*! |
515 Sets the repeat until date on the repeat until item |
534 Sets the repeat until date on the repeat until item |
516 */ |
535 */ |
517 void CalenEditorRepeatField::setRepeatUntilDate() |
536 void CalenEditorRepeatField::setRepeatUntilDate() |
518 { |
537 { |
519 OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_ENTRY ); |
538 OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_ENTRY ); |
|
539 //Get the previous date which was set |
|
540 QDate previousDate = mRepeatUntilDate; |
520 mRepeatUntilDate = mDatePicker->date(); |
541 mRepeatUntilDate = mDatePicker->date(); |
521 if (mRepeatUntilDate.isValid()) { |
542 if (mRepeatUntilDate.isValid()) { |
522 HbExtendedLocale locale = HbExtendedLocale::system(); |
543 HbExtendedLocale locale = HbExtendedLocale::system(); |
523 QString dateString = locale.format(mRepeatUntilDate, |
544 QString dateString = locale.format(mRepeatUntilDate, |
524 r_qtn_date_usual_with_zero); |
545 r_qtn_date_usual_with_zero); |
525 mCustomRepeatUntilItem->setContentWidgetData("text", dateString); |
546 mCustomRepeatUntilItem->setContentWidgetData("text", dateString); |
526 } |
547 } |
527 mCalenEditor->updateReminderChoices(); |
548 mCalenEditor->updateReminderChoices(); |
|
549 // If the entry's repeatuntil date is changed from past to a future date |
|
550 // And if the alarm set set is off |
|
551 // Then change the reminder option to the default 'one day before' |
|
552 // if the option is valid |
|
553 if (mCalenEditor->isAllDayEvent() && previousDate <= QDate::currentDate()) { |
|
554 if(mRepeatUntilDate > QDate::currentDate() && |
|
555 !mCalenEditor->isReminderTimeForAllDayAdded() && |
|
556 mCalenEditor->getReminderCount() >= 3) { |
|
557 mCalenEditor->setCurrentIndexOfReminderField( |
|
558 CalenEditorReminderField::ReminderOneDayBefore); |
|
559 } |
|
560 } |
528 OstTraceFunctionExit0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_EXIT ); |
561 OstTraceFunctionExit0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_EXIT ); |
529 } |
562 } |
530 |
563 |
531 /*! |
564 /*! |
532 Returns the repeatuntildate displayed. |
565 Returns the repeatuntildate displayed. |