diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp --- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -29,8 +29,9 @@ #include #include #include +#include -#include + #include "PeninputPluginKrDbg.h" #include "PeninputPluginKr.hrh" // CPeninputPluginKr @@ -56,6 +57,19 @@ //const TInt KFSQUiEngIndex = 3; const TInt KInvalidImplId = 0; +enum TPeninputKoreanWordCombineFlags + { + EKoreanWordCombineVersion = 0x00000001, + EKoreanWordCombineConsonantSsangKiyeok = 0x00000002, + EKoreanWordCombineConsonantSsangTikeut = 0x00000004, + EKoreanWordCombineConsonantSsangPieup = 0x00000008, + EKoreanWordCombineConsonantSsangSios = 0x00000010, + EKoreanWordCombineConsonantCieuc = 0x00000020, + EKoreanWordCombineConsonantYaPlusI = 0x00000040, + EKoreanWordCombineConsonantYuPlusI = 0x00000080, + EKoreanWordCombineConsonantOnSetting = 0x00000100 + }; + LOCAL_C void Cleanup( TAny* aAny ) { RImplInfoPtrArray* implArray = @@ -113,7 +127,7 @@ BaflUtils::NearestLanguageFile(coeEnv->FsSession(), resourceName); iResId = coeEnv->AddResourceFileL(resourceName); - iRepository=CRepository::NewL(KCRUidPtiKoreanQwertyCore); + iRepository=CRepository::NewL(KCRUidAknFep); } @@ -308,9 +322,14 @@ TInt ret(EFalse); if (aCommandId==EPeninputPluginKrDoubleConsonentCmd) { - iRepository->Set(EDblConsonentOnSetting,1); + TInt settingValue; + iRepository->Get(KAknFepKoreanCombineWordFlag,settingValue); + settingValue |= EKoreanWordCombineConsonantOnSetting; + iRepository->Set(EKoreanWordCombineConsonantOnSetting,settingValue); TRAP_IGNORE(ShowListQueryL(R_AKNEXQUERY_MULTI_SELECTION_LIST_QUERY)); - iRepository->Set(EDblConsonentOnSetting,0); + iRepository->Get(KAknFepKoreanCombineWordFlag,settingValue); + settingValue &= 0xFFFFFEFF; + iRepository->Set(EKoreanWordCombineConsonantOnSetting,settingValue); ret=ETrue; } return ret; @@ -563,77 +582,91 @@ new (ELeave) CAknListQueryDialog(arraySelected); dlg->PrepareLC(aResourceId); - TInt set; - if (iRepository->Get(EDblConsonentSsangKiyeok,set)==KErrNone) - { - if (set) arraySelected->AppendL(0); - } - if (iRepository->Get(EDblConsonentSsangTikeut,set)==KErrNone) - { - if (set) arraySelected->AppendL(1); - } - if (iRepository->Get(EDblConsonentSsangPieup,set)==KErrNone) + + TInt settingValue; + + if( iRepository->Get( KAknFepKoreanCombineWordFlag, settingValue ) == KErrNone ) { - if (set) arraySelected->AppendL(2); - } - if (iRepository->Get(EDblConsonentSsangSios,set)==KErrNone) - { - if (set) arraySelected->AppendL(3); - } - if (iRepository->Get(EDblConsonentSsangCieuc,set)==KErrNone) - { - if (set) arraySelected->AppendL(4); - } - if (iRepository->Get(EDblConsonentYaPlusI,set)==KErrNone) - { - if (set) arraySelected->AppendL(5); - } - if (iRepository->Get(EDblConsonentYuPlusI,set)==KErrNone) - { - if (set) arraySelected->AppendL(6); + if( settingValue & EKoreanWordCombineConsonantSsangKiyeok ) + { + arraySelected->AppendL(0); + } + + + if( settingValue & EKoreanWordCombineConsonantSsangTikeut ) + { + arraySelected->AppendL(1); + } + + + if( settingValue & EKoreanWordCombineConsonantSsangPieup ) + { + arraySelected->AppendL(2); + } + + + if( settingValue & EKoreanWordCombineConsonantSsangSios ) + { + arraySelected->AppendL(3); + } + + + if( settingValue & EKoreanWordCombineConsonantCieuc ) + { + arraySelected->AppendL(4); + } + + + if( settingValue & EKoreanWordCombineConsonantYaPlusI ) + { + arraySelected->AppendL(5); + } + + + if( settingValue & EKoreanWordCombineConsonantYuPlusI ) + { + arraySelected->AppendL(6); + } } dlg->ListBox()->SetSelectionIndexesL(arraySelected); if (dlg->RunLD()) { - iRepository->Set(EDblConsonentSsangKiyeok,0); - iRepository->Set(EDblConsonentSsangTikeut,0); - iRepository->Set(EDblConsonentSsangPieup,0); - iRepository->Set(EDblConsonentSsangSios,0); - iRepository->Set(EDblConsonentSsangCieuc,0); - iRepository->Set(EDblConsonentYaPlusI,0); - iRepository->Set(EDblConsonentYuPlusI,0); + settingValue &= 0xFFFFFF01; + iRepository->Set( KAknFepKoreanCombineWordFlag, settingValue ); for (TInt i=0;iCount();i++) { switch (arraySelected->At(i)) { case 0: - iRepository->Set(EDblConsonentSsangKiyeok,1); + settingValue |= EKoreanWordCombineConsonantSsangKiyeok; break; case 1: - iRepository->Set(EDblConsonentSsangTikeut,1); + settingValue |= EKoreanWordCombineConsonantSsangTikeut; break; case 2: - iRepository->Set(EDblConsonentSsangPieup,1); + settingValue |= EKoreanWordCombineConsonantSsangPieup; break; case 3: - iRepository->Set(EDblConsonentSsangSios,1); + settingValue |= EKoreanWordCombineConsonantSsangSios; break; case 4: - iRepository->Set(EDblConsonentSsangCieuc,1); + settingValue |= EKoreanWordCombineConsonantCieuc; break; case 5: - iRepository->Set(EDblConsonentYaPlusI,1); + settingValue |= EKoreanWordCombineConsonantYaPlusI; break; case 6: - iRepository->Set(EDblConsonentYuPlusI,1); + settingValue |= EKoreanWordCombineConsonantYuPlusI; break; default: break; } } } + + iRepository->Set( KAknFepKoreanCombineWordFlag, settingValue ); CleanupStack::PopAndDestroy(arraySelected); }