360 LOGSTRING("Creator: CCreatorPhonebook::HasOtherThanGroupsL"); |
360 LOGSTRING("Creator: CCreatorPhonebook::HasOtherThanGroupsL"); |
361 TBool result( EFalse ); |
361 TBool result( EFalse ); |
362 return result; |
362 return result; |
363 } |
363 } |
364 |
364 |
365 QContactDetail CCreatorPhonebook::CreateContactDetail(QString aDetail, QString aFieldContext, QString aFieldString, TInt aRand ) |
365 |
366 { |
|
367 QContactDetail contactDetail; |
|
368 TPtrC contentData; |
|
369 if( aDetail == QContactPhoneNumber::DefinitionName) |
|
370 { |
|
371 QContactPhoneNumber phoneNumber;// = contactDetail; |
|
372 if(!aFieldContext.isEmpty()) |
|
373 { |
|
374 phoneNumber.setContexts(aFieldContext); |
|
375 } |
|
376 phoneNumber.setSubTypes(aFieldString); |
|
377 contentData.Set(iEngine->RandomString((CCreatorEngine::TRandomStringType) aRand)); |
|
378 QString number = QString::fromUtf16(contentData.Ptr(),contentData.Length()); |
|
379 phoneNumber.setNumber(number); |
|
380 return phoneNumber; |
|
381 } |
|
382 else if( aDetail == QContactName::DefinitionName ) //--Contact NAME----------------------------- |
|
383 { |
|
384 QContactName contactName; |
|
385 for(int i = 0 ; i < iParameters->iContactFields.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details |
|
386 { |
|
387 if(iParameters->iContactFields.at(i).definitionName() == QContactName::DefinitionName ) |
|
388 { |
|
389 contactName = iParameters->iContactFields.at(i); |
|
390 } |
|
391 } |
|
392 contentData.Set(iEngine->RandomString((CCreatorEngine::TRandomStringType) aRand)); |
|
393 QString name = QString::fromUtf16(contentData.Ptr(),contentData.Length()); |
|
394 if(aFieldString == QContactName::FieldFirstName) |
|
395 { |
|
396 if(contactName.firstName().isEmpty()) |
|
397 { |
|
398 contactName.setFirstName( name ); |
|
399 } |
|
400 } |
|
401 else if(aFieldString == QContactName::FieldLastName) |
|
402 { |
|
403 if(contactName.lastName().isEmpty()) |
|
404 { |
|
405 contactName.setLastName( name ); |
|
406 } |
|
407 } |
|
408 else if(aFieldString == QContactName::FieldMiddleName) |
|
409 { |
|
410 if(contactName.middleName().isEmpty()) |
|
411 { |
|
412 contactName.setMiddleName( name ); |
|
413 } |
|
414 } |
|
415 else if(aFieldString == QContactName::FieldPrefix) |
|
416 { |
|
417 if(contactName.prefix().isEmpty()) |
|
418 { |
|
419 contactName.setPrefix( name ); |
|
420 } |
|
421 } |
|
422 else if(aFieldString == QContactName::FieldSuffix) |
|
423 { |
|
424 if(contactName.suffix().isEmpty()) |
|
425 { |
|
426 contactName.setSuffix( name ); |
|
427 } |
|
428 } |
|
429 else //QContactName::FieldCustomLabel: |
|
430 { |
|
431 if(contactName.customLabel().isEmpty()) |
|
432 { |
|
433 contactName.setCustomLabel( name ); |
|
434 } |
|
435 } |
|
436 return contactName; |
|
437 } |
|
438 else if( aDetail == QContactOrganization::DefinitionName ) //--Contact Company----------------------------- |
|
439 { |
|
440 QContactOrganization contactCompany; |
|
441 |
|
442 for(int i = 0 ; i < iParameters->iContactFields.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details |
|
443 { |
|
444 if(iParameters->iContactFields.at(i).definitionName() == QContactOrganization::DefinitionName ) |
|
445 { |
|
446 contactCompany = iParameters->iContactFields.at(i); |
|
447 } |
|
448 } |
|
449 contentData.Set(iEngine->RandomString((CCreatorEngine::TRandomStringType) aRand)); |
|
450 QString company = QString::fromUtf16(contentData.Ptr(),contentData.Length()); |
|
451 if(aFieldString == QContactOrganization::FieldName) |
|
452 { |
|
453 if(contactCompany.name().isEmpty()) |
|
454 { |
|
455 contactCompany.setName( company ); |
|
456 } |
|
457 } |
|
458 if(aFieldString == QContactOrganization::FieldTitle) |
|
459 { |
|
460 if(contactCompany.title().isEmpty()) |
|
461 { |
|
462 contactCompany.setTitle( company ); |
|
463 } |
|
464 } |
|
465 if(aFieldString == QContactOrganization::FieldDepartment) |
|
466 { |
|
467 QStringList depList = contactCompany.department(); |
|
468 depList.append(company); |
|
469 contactCompany.setDepartment(depList); |
|
470 } |
|
471 if(aFieldString == QContactOrganization::FieldAssistantName) |
|
472 { |
|
473 if(contactCompany.assistantName().isEmpty()) |
|
474 { |
|
475 contactCompany.setAssistantName( company ); |
|
476 } |
|
477 } |
|
478 return contactCompany; |
|
479 } |
|
480 else if( aDetail == QContactAddress::DefinitionName ) //--Contact Address----------------------------- |
|
481 { |
|
482 QContactAddress contactAddress; |
|
483 |
|
484 for(int i = 0 ; i < iParameters->iContactFields.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details |
|
485 { |
|
486 if(iParameters->iContactFields.at(i).definitionName() == QContactAddress::DefinitionName && iParameters->iContactFields.at(i).value(QContactDetail::FieldContext) == aFieldContext ) |
|
487 { |
|
488 contactAddress = iParameters->iContactFields.at(i); |
|
489 } |
|
490 } |
|
491 |
|
492 contactAddress.setContexts( aFieldContext ); |
|
493 |
|
494 contentData.Set(iEngine->RandomString((CCreatorEngine::TRandomStringType) aRand)); |
|
495 QString address = QString::fromUtf16(contentData.Ptr(),contentData.Length()); |
|
496 if(aFieldString == QContactAddress::FieldStreet ) |
|
497 { |
|
498 if( contactAddress.street().isEmpty() ) |
|
499 { |
|
500 contactAddress.setStreet( address ); |
|
501 } |
|
502 } |
|
503 else if(aFieldString == QContactAddress::FieldLocality ) |
|
504 { |
|
505 if( contactAddress.locality().isEmpty() ) |
|
506 { |
|
507 contactAddress.setLocality( address ); |
|
508 } |
|
509 } |
|
510 else if(aFieldString == QContactAddress::FieldRegion ) |
|
511 { |
|
512 if( contactAddress.region().isEmpty() ) |
|
513 { |
|
514 contactAddress.setRegion( address ); |
|
515 } |
|
516 } |
|
517 else if(aFieldString == QContactAddress::FieldPostcode ) |
|
518 { |
|
519 if( contactAddress.postcode().isEmpty() ) |
|
520 { |
|
521 contactAddress.setPostcode( address ); |
|
522 } |
|
523 } |
|
524 else if(aFieldString == QContactAddress::FieldCountry ) |
|
525 { |
|
526 if( contactAddress.country().isEmpty() ) |
|
527 { |
|
528 contactAddress.setCountry( address ); |
|
529 } |
|
530 } |
|
531 else |
|
532 { |
|
533 return contactDetail; |
|
534 } |
|
535 return contactAddress; |
|
536 } |
|
537 else if( aDetail == QContactNote::DefinitionName ) //--Contact Note----------------------------- |
|
538 { |
|
539 QContactNote contactNote; |
|
540 contentData.Set(iEngine->RandomString((CCreatorEngine::TRandomStringType) aRand)); |
|
541 QString note = QString::fromUtf16(contentData.Ptr(),contentData.Length()); |
|
542 contactNote.setNote(note); |
|
543 return contactNote; |
|
544 } |
|
545 else if( aDetail == QContactFamily::DefinitionName ) //--Contact Family----------------------------- |
|
546 { |
|
547 QContactFamily contactFamily; |
|
548 |
|
549 for(int i = 0 ; i < iParameters->iContactFields.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details |
|
550 { |
|
551 if(iParameters->iContactFields.at(i).definitionName() == QContactFamily::DefinitionName && iParameters->iContactFields.at(i).value(QContactDetail::FieldContext) == aFieldContext ) |
|
552 { |
|
553 contactFamily = iParameters->iContactFields.at(i); |
|
554 } |
|
555 } |
|
556 contentData.Set(iEngine->RandomString((CCreatorEngine::TRandomStringType) aRand)); |
|
557 QString familyData = QString::fromUtf16(contentData.Ptr(),contentData.Length()); |
|
558 if(aFieldString == QContactFamily::FieldSpouse ) |
|
559 { |
|
560 if( contactFamily.spouse().isEmpty() ) |
|
561 { |
|
562 contactFamily.setSpouse( familyData ); |
|
563 } |
|
564 } |
|
565 if(aFieldString == QContactFamily::FieldChildren ) |
|
566 { |
|
567 QStringList children = contactFamily.children(); |
|
568 children.append( familyData ); |
|
569 contactFamily.setChildren( children ); |
|
570 } |
|
571 |
|
572 return contactFamily; |
|
573 } |
|
574 |
|
575 if( aDetail == QContactAvatar::DefinitionName) //--Contact Picture----------------------------- |
|
576 { |
|
577 RFs& fs = CCoeEnv::Static()->FsSession(); |
|
578 QContactAvatar contactAvatar; |
|
579 TBuf<KMaxFileName> srcPath; |
|
580 iEngine->RandomPictureFileL(srcPath); |
|
581 TBuf<KMaxFileName> destPath(KTempPath); |
|
582 |
|
583 if(!BaflUtils::FolderExists( fs, destPath )) |
|
584 { |
|
585 BaflUtils::EnsurePathExistsL( fs, destPath ); |
|
586 } |
|
587 |
|
588 TInt err=BaflUtils::CopyFile( fs, srcPath, destPath ); |
|
589 |
|
590 TParse temp; |
|
591 temp.Set( srcPath,NULL,NULL ); |
|
592 destPath.Append(temp.NameAndExt()); |
|
593 |
|
594 QString avatarFile = QString::fromUtf16( destPath.Ptr(),destPath.Length() ); |
|
595 |
|
596 QPixmap avatarPix(avatarFile); |
|
597 |
|
598 contactAvatar.setAvatar(avatarFile); |
|
599 contactAvatar.setPixmap(avatarPix); |
|
600 |
|
601 return contactAvatar; |
|
602 } |
|
603 if( aDetail == QContactAnniversary::DefinitionName) |
|
604 { |
|
605 QContactAnniversary contactAnniversary; |
|
606 QDate date; |
|
607 TTime datetime = iEngine->RandomDate( CCreatorEngine::EDateFuture ); |
|
608 date.setDate( datetime.DateTime().Year(),(int) (datetime.DateTime().Month()+1), datetime.DateTime().Day() ); |
|
609 contactAnniversary.setOriginalDate( date ); |
|
610 return contactAnniversary; |
|
611 } |
|
612 |
|
613 |
|
614 |
|
615 |
|
616 |
|
617 return contactDetail; |
|
618 } |
|
619 //---------------------------------------------------------------------------- |
366 //---------------------------------------------------------------------------- |
620 |
367 |
621 |
368 |
622 //---------------------------------------------------------------------------- |
369 //---------------------------------------------------------------------------- |
623 void CCreatorPhonebook::StoreLinksForDeleteL( RArray<TUint32>& aLinks, TUid aStoreUid ) |
370 void CCreatorPhonebook::StoreLinksForDeleteL( RArray<TUint32>& aLinks, TUid aStoreUid ) |
709 { |
456 { |
710 // QContactDetail field = CreateContactDetail( CreatorPbkMiscTextFields[tfIndex].iDetail, CreatorPbkMiscTextFields[tfIndex].iFieldContext, CreatorPbkMiscTextFields[tfIndex].iFieldString, CreatorPbkMiscTextFields[tfIndex].iRandomType ); |
457 // QContactDetail field = CreateContactDetail( CreatorPbkMiscTextFields[tfIndex].iDetail, CreatorPbkMiscTextFields[tfIndex].iFieldContext, CreatorPbkMiscTextFields[tfIndex].iFieldString, CreatorPbkMiscTextFields[tfIndex].iRandomType ); |
711 |
458 |
712 CCreatorContactField* field = CCreatorContactField::NewL(); |
459 CCreatorContactField* field = CCreatorContactField::NewL(); |
713 CleanupStack::PushL( field ); |
460 CleanupStack::PushL( field ); |
714 QContactDetail cntDetail = field->CreateContactDetail(iEngine,iParameters,CreatorPbkMiscTextFields[tfIndex].iDetail, CreatorPbkMiscTextFields[tfIndex].iFieldContext, CreatorPbkMiscTextFields[tfIndex].iFieldString, CreatorPbkMiscTextFields[tfIndex].iRandomType ); |
461 QContactDetail cntDetail = field->CreateContactDetailL(iEngine,iParameters,CreatorPbkMiscTextFields[tfIndex].iDetail, CreatorPbkMiscTextFields[tfIndex].iFieldContext, CreatorPbkMiscTextFields[tfIndex].iFieldString, CreatorPbkMiscTextFields[tfIndex].iRandomType ); |
715 if(!cntDetail.isEmpty()) |
462 if(!cntDetail.isEmpty()) |
716 { |
463 { |
717 field->AddFieldToParam( iParameters, cntDetail ); //it will do "param->iContactFields.AppendL(field);" |
464 field->AddFieldToParam( iParameters, cntDetail ); //it will do "param->iContactFields.AppendL(field);" |
718 } |
465 } |
719 CleanupStack::Pop( field ); |
466 CleanupStack::Pop( field ); |
720 } |
467 } |
721 // Add binary fields: |
468 // Add binary fields: |
722 TPtrC emptyData; |
469 TPtrC emptyData; |
723 CCreatorContactField* fieldPicture = CCreatorContactField::NewL(); |
470 CCreatorContactField* fieldPicture = CCreatorContactField::NewL(); |
724 CleanupStack::PushL( fieldPicture ); |
471 CleanupStack::PushL( fieldPicture ); |
725 QContactDetail cntDetail = fieldPicture->CreateContactDetail(iEngine,iParameters,QContactAvatar::DefinitionName,"","",emptyData ); |
472 QContactDetail cntDetail = fieldPicture->CreateContactDetailL(iEngine,iParameters,QContactAvatar::DefinitionName,"","",emptyData ); |
726 if(!cntDetail.isEmpty()) |
473 if(!cntDetail.isEmpty()) |
727 { |
474 { |
728 fieldPicture->AddFieldToParam( iParameters, cntDetail ); //it will do "param->iContactFields.AppendL(field);" |
475 fieldPicture->AddFieldToParam( iParameters, cntDetail ); //it will do "param->iContactFields.AppendL(field);" |
729 } |
476 } |
730 CleanupStack::Pop( fieldPicture ); |
477 CleanupStack::Pop( fieldPicture ); |
731 |
478 |
732 // Add date-time fields: |
479 // Add date-time fields: |
733 CCreatorContactField* fieldAnniv = CCreatorContactField::NewL(); |
480 CCreatorContactField* fieldAnniv = CCreatorContactField::NewL(); |
734 CleanupStack::PushL( fieldAnniv ); |
481 CleanupStack::PushL( fieldAnniv ); |
735 QContactDetail cntDetAnniv = fieldAnniv->CreateContactDetail(iEngine,iParameters,QContactAnniversary::DefinitionName,"","",emptyData ); |
482 QContactDetail cntDetAnniv = fieldAnniv->CreateContactDetailL(iEngine,iParameters,QContactAnniversary::DefinitionName,"","",emptyData ); |
736 if(!cntDetAnniv .isEmpty()) |
483 if(!cntDetAnniv .isEmpty()) |
737 { |
484 { |
738 fieldAnniv->AddFieldToParam( iParameters, cntDetAnniv ); //it will do "param->iContactFields.AppendL(field);" |
485 fieldAnniv->AddFieldToParam( iParameters, cntDetAnniv ); //it will do "param->iContactFields.AppendL(field);" |
739 } |
486 } |
740 CleanupStack::Pop( fieldAnniv ); |
487 CleanupStack::Pop( fieldAnniv ); |