diff options
Diffstat (limited to 'editeng/source/editeng')
-rw-r--r-- | editeng/source/editeng/editeng.cxx | 24 | ||||
-rw-r--r-- | editeng/source/editeng/impedit.hxx | 4 | ||||
-rw-r--r-- | editeng/source/editeng/impedit2.cxx | 4 |
3 files changed, 21 insertions, 11 deletions
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index 910b4872c844..ea3a5f919c5d 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -1294,18 +1294,24 @@ bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView, v LanguageType eLang = pImpEditEngine->GetLanguage( EditPaM( aStart.GetNode(), aStart.GetIndex()+1)); LanguageTag aLanguageTag( eLang); - if (!pImpEditEngine->xLocaleDataWrapper.isInitialized()) - pImpEditEngine->xLocaleDataWrapper.init( SvtSysLocale().GetLocaleData().getComponentContext(), aLanguageTag); + if (!pImpEditEngine->pLocaleDataWrapper) + pImpEditEngine->pLocaleDataWrapper = new OnDemandLocaleDataWrapper; + + if (!pImpEditEngine->pLocaleDataWrapper->isInitialized()) + pImpEditEngine->pLocaleDataWrapper->init( SvtSysLocale().GetLocaleData().getComponentContext(), aLanguageTag); else - pImpEditEngine->xLocaleDataWrapper.changeLocale( aLanguageTag); + pImpEditEngine->pLocaleDataWrapper->changeLocale( aLanguageTag); + + if (!pImpEditEngine->pTransliterationWrapper) + pImpEditEngine->pTransliterationWrapper = new OnDemandTransliterationWrapper; - if (!pImpEditEngine->xTransliterationWrapper.isInitialized()) - pImpEditEngine->xTransliterationWrapper.init( SvtSysLocale().GetLocaleData().getComponentContext(), eLang, i18n::TransliterationModules_IGNORE_CASE); + if (!pImpEditEngine->pTransliterationWrapper->isInitialized()) + pImpEditEngine->pTransliterationWrapper->init( SvtSysLocale().GetLocaleData().getComponentContext(), eLang, i18n::TransliterationModules_IGNORE_CASE); else - pImpEditEngine->xTransliterationWrapper.changeLocale( eLang); + pImpEditEngine->pTransliterationWrapper->changeLocale( eLang); - const ::utl::TransliterationWrapper* pTransliteration = pImpEditEngine->xTransliterationWrapper.get(); - Sequence< i18n::CalendarItem2 > xItem = pImpEditEngine->xLocaleDataWrapper->getDefaultCalendarDays(); + const ::utl::TransliterationWrapper* pTransliteration = pImpEditEngine->pTransliterationWrapper->get(); + Sequence< i18n::CalendarItem2 > xItem = pImpEditEngine->pLocaleDataWrapper->get()->getDefaultCalendarDays(); sal_Int32 nCount = xItem.getLength(); const i18n::CalendarItem2* pArr = xItem.getArray(); for( sal_Int32 n = 0; n <= nCount; ++n ) @@ -1320,7 +1326,7 @@ bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView, v if ( aComplete.isEmpty() ) { - xItem = pImpEditEngine->xLocaleDataWrapper->getDefaultCalendarMonths(); + xItem = pImpEditEngine->pLocaleDataWrapper->get()->getDefaultCalendarMonths(); sal_Int32 nMonthCount = xItem.getLength(); const i18n::CalendarItem2* pMonthArr = xItem.getArray(); for( sal_Int32 n = 0; n <= nMonthCount; ++n ) diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 793a85eb1331..5ce5524ed385 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -464,8 +464,8 @@ private: LanguageType eDefLanguage; - OnDemandLocaleDataWrapper xLocaleDataWrapper; - OnDemandTransliterationWrapper xTransliterationWrapper; + OnDemandLocaleDataWrapper* pLocaleDataWrapper; + OnDemandTransliterationWrapper* pTransliterationWrapper; // For Formatting / Update .... boost::ptr_vector<DeletedNodeInfo> aDeletedNodes; diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 8269dae61488..9dec70e0e0f1 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -129,6 +129,8 @@ ImpEditEngine::ImpEditEngine( EditEngine* pEE, SfxItemPool* pItemPool ) : nStretchY = 100; eDefLanguage = LANGUAGE_DONTKNOW; + pLocaleDataWrapper = 0; + pTransliterationWrapper = 0; maBackgroundColor = COL_AUTO; nAsianCompressionMode = text::CharacterCompressionType::NONE; @@ -182,6 +184,8 @@ ImpEditEngine::~ImpEditEngine() delete pCTLOptions; if ( bOwnerOfRefDev ) pRefDev.disposeAndClear(); + delete pLocaleDataWrapper; + delete pTransliterationWrapper; delete pSpellInfo; } |