calendarui/caleneditor/src/caleneditorrepeatfield.cpp
changeset 63 a3cb48f6c889
parent 57 bb2d3e476f29
child 64 1881ad52dc45
equal deleted inserted replaced
57:bb2d3e476f29 63:a3cb48f6c889
   288 	}else {
   288 	}else {
   289 		// No change in repeat value
   289 		// No change in repeat value
   290 		repeatPropertyChange = false;
   290 		repeatPropertyChange = false;
   291 	}
   291 	}
   292 	QDate repeatUntilDate = mRepeatUntilDate;
   292 	QDate repeatUntilDate = mRepeatUntilDate;
   293 
   293 	// Update the repeat type only if its has been changed
   294 	if (value != mRepeatRoleValue)
   294 	// ie. if the previous repeatrole is different from the current repeat role
   295 	{
   295 	if (value != mRepeatRoleValue) {
   296 	    mRepeatRoleValue = value;
   296 		mRepeatRoleValue = value;
   297 	    switch (value) {
   297 		switch (value) {
   298 		case DailyRole: {
   298 			case DailyRole: {
   299 			if (!mRepeatUntilItemAdded) {
   299 				if (!mRepeatUntilItemAdded) {
   300 				insertRepeatUntilItem();
   300 					insertRepeatUntilItem();
   301 			}
   301 				}
   302 			if (mCustomRepeatUntilItem) {
   302 				if (mCustomRepeatUntilItem) {
   303 				// Show default repeat until date till one year for daily rule 
   303 					// Show default repeat until date till one year for daily rule 
   304 				mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1);
   304 					mRepeatUntilDate = 
   305 				mCustomRepeatUntilItem->setContentWidgetData( "text", 
   305 						mCalenEditor->editedEntry()->startTime().date().addYears(1);
   306 												locale.format( mRepeatUntilDate,
   306 					mCustomRepeatUntilItem->setContentWidgetData( "text", 
   307 												r_qtn_date_usual_with_zero));
   307 						locale.format( 
   308 			}
   308 								mRepeatUntilDate, r_qtn_date_usual_with_zero));
   309 			mRepeatRuleType = AgendaRepeatRule::DailyRule;
   309 				}
       
   310 				mRepeatRuleType = AgendaRepeatRule::DailyRule;
       
   311 			}
       
   312 			break;
       
   313 			case WorkdaysRole: {
       
   314 				if (!mRepeatUntilItemAdded) {
       
   315 					insertRepeatUntilItem();
       
   316 				}
       
   317 				if (mCustomRepeatUntilItem) {
       
   318 					// Show default repeat until date till one year for workdays rule
       
   319 					mRepeatUntilDate = 
       
   320 						mCalenEditor->editedEntry()->startTime().date().addYears(1);
       
   321 					mCustomRepeatUntilItem->setContentWidgetData( "text",
       
   322 						locale.format( 
       
   323 								mRepeatUntilDate, r_qtn_date_usual_with_zero));
       
   324 				}
       
   325 				mRepeatRuleType = AgendaRepeatRule::WeeklyRule;
       
   326 				mIsWorkdays = true;
       
   327 			}
       
   328 			break;
       
   329 			case WeeklyRole: {
       
   330 				if (!mRepeatUntilItemAdded) {
       
   331 					insertRepeatUntilItem();
       
   332 				}
       
   333 				if (mCustomRepeatUntilItem) {
       
   334 					// Show default repeat until date till one year for weekly rule
       
   335 					mRepeatUntilDate = 
       
   336 						mCalenEditor->editedEntry()->startTime().date().addYears(1);
       
   337 					mCustomRepeatUntilItem->setContentWidgetData( "text",
       
   338 						locale.format( 
       
   339 								mRepeatUntilDate, r_qtn_date_usual_with_zero));
       
   340 				}
       
   341 				mRepeatRuleType = AgendaRepeatRule::WeeklyRule;
       
   342 			}
       
   343 			break;
       
   344 			case BiWeeklyRole: {
       
   345 				if (!mRepeatUntilItemAdded) {
       
   346 					insertRepeatUntilItem();
       
   347 				}
       
   348 				if (mCustomRepeatUntilItem) {
       
   349 					// Show default repeat until date till one year for bi-weekly rule
       
   350 					mRepeatUntilDate = 
       
   351 						mCalenEditor->editedEntry()->startTime().date().addYears(1);
       
   352 					mCustomRepeatUntilItem->setContentWidgetData( "text",
       
   353 						locale.format( 
       
   354 							mRepeatUntilDate, r_qtn_date_usual_with_zero));
       
   355 				}
       
   356 				mRepeatRuleType = AgendaRepeatRule::WeeklyRule;
       
   357 				mIsBiWeekly = true;
       
   358 			}
       
   359 			break;
       
   360 			case MonthlyRole: {
       
   361 				if (!mRepeatUntilItemAdded) {
       
   362 					insertRepeatUntilItem();
       
   363 				}
       
   364 				if (mCustomRepeatUntilItem) {
       
   365 					// Show default repeat until date till one year for monthly rule
       
   366 					mRepeatUntilDate = 
       
   367 						mCalenEditor->editedEntry()->startTime().date().addYears(1);
       
   368 					mCustomRepeatUntilItem->setContentWidgetData( "text",
       
   369 						locale.format(
       
   370 								mRepeatUntilDate, r_qtn_date_usual_with_zero));
       
   371 				}
       
   372 				mRepeatRuleType = AgendaRepeatRule::MonthlyRule;
       
   373 			}
       
   374 			break;
       
   375 			case YearlyRole: {
       
   376 				if (!mRepeatUntilItemAdded) {
       
   377 					insertRepeatUntilItem();
       
   378 				}
       
   379 				if (mCustomRepeatUntilItem) {
       
   380 					// Show default repeat until date till ten years for yearly rule
       
   381 					mRepeatUntilDate = 
       
   382 						mCalenEditor->editedEntry()->startTime().date().addYears(10);
       
   383 					mCustomRepeatUntilItem->setContentWidgetData( "text",
       
   384 						locale.format(
       
   385 							mRepeatUntilDate, r_qtn_date_usual_with_zero));
       
   386 				}
       
   387 				mRepeatRuleType = AgendaRepeatRule::YearlyRule;
       
   388 			}
       
   389 			break;
       
   390 			default: {
       
   391 				removeRepeatUntilItem();
       
   392 			}
       
   393 			break;
   310 		}
   394 		}
   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 	}
   395 	}
   390 	if(!mCalenEditor->isNewEntry()) {
   396 	if(!mCalenEditor->isNewEntry()) {
   391 		mCalenEditor->addDiscardAction();
   397 		mCalenEditor->addDiscardAction();
   392 	}
   398 	}
   393 	// Depending on repeatPropertyChange value and the repeatuntil date change 
   399 	// Depending on repeatPropertyChange value and the repeatuntil date change 
   666 	}
   672 	}
   667 	
   673 	
   668 	//Connecting back the slot for repeat index change before setting index.
   674 	//Connecting back the slot for repeat index change before setting index.
   669 	connect(mRepeatComboBox, SIGNAL(currentIndexChanged(int)), this,
   675 	connect(mRepeatComboBox, SIGNAL(currentIndexChanged(int)), this,
   670 				SLOT(handleRepeatIndexChanged(int)));
   676 				SLOT(handleRepeatIndexChanged(int)));
       
   677 	// By default the repeat combobox index will be 0
   671 	// Set the previous user's choice
   678 	// Set the previous user's choice
   672 	mRepeatComboBox->setCurrentIndex(choice);
   679 	mRepeatComboBox->setCurrentIndex(choice);
       
   680 	// If the previous user's choice is also zero, then slot 
       
   681 	// handleRepeatIndexChanged will not be called as 
       
   682 	// there is no change in current index
       
   683 	// So explicitly call updateReminderChoices to update the reminder choices
       
   684 	// for choice : 0 (Not repeated)
       
   685 	if(choice == 0) {
       
   686 		mCalenEditor->updateReminderChoices();
       
   687 	}
   673 	OstTraceFunctionExit0( DUP1_CALENEDITORREPEATFIELD_UPDATEREPEATCHOICES_EXIT );
   688 	OstTraceFunctionExit0( DUP1_CALENEDITORREPEATFIELD_UPDATEREPEATCHOICES_EXIT );
   674 }
   689 }
   675 
   690 
   676 /*!
   691 /*!
   677 	Save RepeatRule to the edited entry
   692 	Save RepeatRule to the edited entry