diff -r eb1f2e154e89 -r f5a1e66df979 fep/aknfep/src/aknfepuiinputstateentrypinyinphrasecreation.cpp --- a/fep/aknfep/src/aknfepuiinputstateentrypinyinphrasecreation.cpp Tue Feb 02 01:02:04 2010 +0200 +++ b/fep/aknfep/src/aknfepuiinputstateentrypinyinphrasecreation.cpp Fri Feb 19 23:09:27 2010 +0200 @@ -47,6 +47,7 @@ #include "AknFepManager.h" const TInt KMaxPhraseCreationCount = 7; +const TInt KMaxPinYinSpellLength = 7; // --------------------------------------------------------- // C++ construct. @@ -348,6 +349,13 @@ CDesCArrayFlat* chinese = popup->ChooseChineseCharacterArray(); TBuf phraseCreated; + CDesCArrayFlat* spellingArray = popup->PhoneticSpellingArray(); + TBuf<100> spellingBuf; + for(TInt i=0;iCount();i++) + { + spellingBuf.Append(spellingArray->MdcaPoint( i )); + } + if ( ( chinese->Count() >= 2 ) && ( 0 == keystrokeCount ) ) { //commit the chinese character. @@ -356,9 +364,28 @@ { phraseCreated.Append( chinese->MdcaPoint( i ) ); } - AddPhraseToDB( phraseCreated ); + fepMan->PinyinPhraseCreation( EFalse ); fepMan->NewTextL( phraseCreated ); + + //here,pass spelling to db + CDesCArrayFlat* chooseChineseCharacterArraySpelling = popup->ChooseChineseCharacterArraySpelling(); + TBuf<(1+KMaxPinYinSpellLength)*KMaxPhraseCreationCount> phraseCreatedWithPinYin;//(Zi+pinyin)* max_Zi + phraseCreatedWithPinYin.FillZ(); + for (TInt i = 0; i < chinese->Count(); i++) + { + TPtrC ptrZi = chinese->MdcaPoint(i); + phraseCreatedWithPinYin.Append(ptrZi); + + TPtrC ptrPinYin = chooseChineseCharacterArraySpelling->MdcaPoint(i); + phraseCreatedWithPinYin.Append(ptrPinYin); + + TInt zeroTail = (1+KMaxPinYinSpellLength)-(ptrZi.Length()+ptrPinYin.Length()); + phraseCreatedWithPinYin.AppendFill(0,zeroTail); + + } + + AddPhraseToDB( phraseCreatedWithPinYin );//pinyin fepMan->CommitInlineEditL(); iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI. }