diff options
23 files changed, 186 insertions, 57 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; } diff --git a/editeng/source/items/numitem.cxx b/editeng/source/items/numitem.cxx index 99ad41eea108..b44355f0b4c9 100644 --- a/editeng/source/items/numitem.cxx +++ b/editeng/source/items/numitem.cxx @@ -42,6 +42,7 @@ #include <com/sun/star/beans/PropertyValue.hpp> #include <comphelper/processfactory.hxx> #include <tools/mapunit.hxx> +#include <unotools/configmgr.hxx> #include <editeng/unonrule.hxx> @@ -99,8 +100,10 @@ SvxNumberType::~SvxNumberType() OUString SvxNumberType::GetNumStr( sal_uLong nNo ) const { - const LanguageTag& rLang = Application::GetSettings().GetLanguageTag(); - return GetNumStr( nNo, rLang.getLocale() ); + LanguageTag aLang = utl::ConfigManager::IsAvoidConfig() ? + LanguageTag("en-US") : + Application::GetSettings().GetLanguageTag(); + return GetNumStr( nNo, aLang.getLocale() ); } OUString SvxNumberType::GetNumStr( sal_uLong nNo, const css::lang::Locale& rLocale ) const diff --git a/i18nutil/Library_i18nutil.mk b/i18nutil/Library_i18nutil.mk index 1c5837c30e16..4dcfbdda64da 100644 --- a/i18nutil/Library_i18nutil.mk +++ b/i18nutil/Library_i18nutil.mk @@ -36,6 +36,7 @@ $(eval $(call gb_Library_add_defs,i18nutil,\ )) $(eval $(call gb_Library_use_libraries,i18nutil,\ + utl \ i18nlangtag \ comphelper \ cppu \ diff --git a/i18nutil/source/utility/paper.cxx b/i18nutil/source/utility/paper.cxx index 73993bffddf6..c61bac6ab0ec 100644 --- a/i18nutil/source/utility/paper.cxx +++ b/i18nutil/source/utility/paper.cxx @@ -30,6 +30,7 @@ #include <utility> #include <cstdlib> +#include <unotools/configmgr.hxx> #ifdef UNX #include <stdio.h> @@ -207,6 +208,9 @@ long PaperInfo::sloppyFitPageDimension(long nDimension) PaperInfo PaperInfo::getSystemDefaultPaper() { + if (utl::ConfigManager::IsAvoidConfig()) + return PaperInfo(PAPER_A4); + OUString aLocaleStr = officecfg::Setup::L10N::ooSetupSystemLocale::get(); #ifdef UNX diff --git a/include/unotools/configmgr.hxx b/include/unotools/configmgr.hxx index 14a5abf34575..7c174f6cd46c 100644 --- a/include/unotools/configmgr.hxx +++ b/include/unotools/configmgr.hxx @@ -73,6 +73,12 @@ public: SAL_DLLPRIVATE void registerConfigItem(utl::ConfigItem * item); + // Avoid using the config layer and rely on defaults + // which is only useful for special test tool targets + // where start-up speed is of the essence + static bool IsAvoidConfig(); + static void EnableAvoidConfig(); + private: ConfigManager(const ConfigManager&) SAL_DELETED_FUNCTION; diff --git a/sfx2/source/control/shell.cxx b/sfx2/source/control/shell.cxx index 607a56191063..5bfac57f1a4f 100644 --- a/sfx2/source/control/shell.cxx +++ b/sfx2/source/control/shell.cxx @@ -28,7 +28,7 @@ #include "itemdel.hxx" #include <svtools/asynclink.hxx> #include <basic/sbx.hxx> - +#include <unotools/configmgr.hxx> #include <sfx2/app.hxx> #include <sfx2/shell.hxx> #include <sfx2/bindings.hxx> @@ -223,9 +223,11 @@ void SfxShell::SetUndoManager( ::svl::IUndoManager *pNewUndoMgr ) // a supported scenario (/me thinks it is not), then we would need to notify all such clients instances. pUndoMgr = pNewUndoMgr; - if ( pUndoMgr ) + if (pUndoMgr && !utl::ConfigManager::IsAvoidConfig()) + { pUndoMgr->SetMaxUndoActionCount( officecfg::Office::Common::Undo::Steps::get()); + } } SfxRepeatTarget* SfxShell::GetRepeatTarget() const diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx index e97cb750f8a0..e39ee4cbdb23 100644 --- a/svtools/source/graphic/grfmgr.cxx +++ b/svtools/source/graphic/grfmgr.cxx @@ -28,6 +28,7 @@ #include <unotools/ucbstreamhelper.hxx> #include <unotools/localfilehelper.hxx> #include <unotools/tempfile.hxx> +#include <unotools/configmgr.hxx> #include <vcl/svapp.hxx> #include <vcl/cvtgrf.hxx> #include <vcl/metaact.hxx> @@ -184,14 +185,25 @@ void GraphicObject::ImplSetGraphicManager( const GraphicManager* pMgr, const OSt { if( !mpGlobalMgr ) { - mpGlobalMgr = new GraphicManager( - (officecfg::Office::Common::Cache::GraphicManager:: - TotalCacheSize::get()), - (officecfg::Office::Common::Cache::GraphicManager:: - ObjectCacheSize::get())); - mpGlobalMgr->SetCacheTimeout( - officecfg::Office::Common::Cache::GraphicManager:: - ObjectReleaseTime::get()); + if (!utl::ConfigManager::IsAvoidConfig()) + { + mpGlobalMgr = new GraphicManager( + (officecfg::Office::Common::Cache::GraphicManager:: + TotalCacheSize::get()), + (officecfg::Office::Common::Cache::GraphicManager:: + ObjectCacheSize::get())); + mpGlobalMgr->SetCacheTimeout( + officecfg::Office::Common::Cache::GraphicManager:: + ObjectReleaseTime::get()); + } + else + { + mpGlobalMgr = new GraphicManager( + 20000, + 20000); + mpGlobalMgr->SetCacheTimeout( + 20000); + } } mpMgr = mpGlobalMgr; diff --git a/svx/source/svdraw/svdetc.cxx b/svx/source/svdraw/svdetc.cxx index 76e75f886405..c18754d1c18c 100644 --- a/svx/source/svdraw/svdetc.cxx +++ b/svx/source/svdraw/svdetc.cxx @@ -45,9 +45,11 @@ #include <svx/xflgrit.hxx> #include <svx/svdoole2.hxx> #include <svl/itempool.hxx> +#include <unotools/configmgr.hxx> #include <unotools/localedatawrapper.hxx> #include <i18nlangtag/lang.h> #include <unotools/syslocale.hxx> +#include <unotools/configmgr.hxx> #include <svx/xflbckit.hxx> #include <svx/extrusionbar.hxx> #include <svx/fontworkbar.hxx> @@ -74,9 +76,11 @@ SdrGlobalData::SdrGlobalData() : pResMgr(NULL), nExchangeFormat(0) { - - svx::ExtrusionBar::RegisterInterface(); - svx::FontworkBar::RegisterInterface(); + if (!utl::ConfigManager::IsAvoidConfig()) + { + svx::ExtrusionBar::RegisterInterface(); + svx::FontworkBar::RegisterInterface(); + } } const SvtSysLocale* SdrGlobalData::GetSysLocale() @@ -104,7 +108,10 @@ SdrGlobalData & GetSdrGlobalData() { OLEObjCache::OLEObjCache() { - nSize = officecfg::Office::Common::Cache::DrawingEngine::OLE_Objects::get(); + if (!utl::ConfigManager::IsAvoidConfig()) + nSize = officecfg::Office::Common::Cache::DrawingEngine::OLE_Objects::get(); + else + nSize = 100; pTimer = new AutoTimer(); Link<Timer *, void> aLink = LINK(this, OLEObjCache, UnloadCheckHdl); diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 8baffe4db637..ff9004e7cba1 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -31,6 +31,7 @@ #include <com/sun/star/embed/ElementModes.hpp> #include <unotools/ucbstreamhelper.hxx> +#include <unotools/configmgr.hxx> #include <svl/whiter.hxx> #include <svx/xit.hxx> @@ -174,9 +175,12 @@ void SdrModel::ImpCtor(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* _pEmbe mbDisableTextEditUsesCommonUndoManager = false; - mnCharCompressType = - officecfg::Office::Common::AsianLayout::CompressCharacterDistance:: - get(); + if (!utl::ConfigManager::IsAvoidConfig()) + mnCharCompressType = + officecfg::Office::Common::AsianLayout::CompressCharacterDistance:: + get(); + else + mnCharCompressType = 0; #ifdef OSL_LITENDIAN nStreamNumberFormat=SvStreamEndian::LITTLE; @@ -714,7 +718,11 @@ void SdrModel::SetTextDefaults( SfxItemPool* pItemPool, sal_uIntPtr nDefTextHgt SvxFontItem aSvxFontItem( EE_CHAR_FONTINFO) ; SvxFontItem aSvxFontItemCJK(EE_CHAR_FONTINFO_CJK); SvxFontItem aSvxFontItemCTL(EE_CHAR_FONTINFO_CTL); - sal_uInt16 nLanguage(Application::GetSettings().GetLanguageTag().getLanguageType()); + sal_uInt16 nLanguage; + if (!utl::ConfigManager::IsAvoidConfig()) + nLanguage = Application::GetSettings().GetLanguageTag().getLanguageType(); + else + nLanguage = LANGUAGE_ENGLISH_US; // get DEFAULTFONT_LATIN_TEXT and set at pool as dynamic default vcl::Font aFont(OutputDevice::GetDefaultFont(DefaultFontType::LATIN_TEXT, nLanguage, GetDefaultFontFlags::OnlyOne, 0)); diff --git a/sw/source/core/bastyp/init.cxx b/sw/source/core/bastyp/init.cxx index 1d3962a105db..9e7858712f0c 100644 --- a/sw/source/core/bastyp/init.cxx +++ b/sw/source/core/bastyp/init.cxx @@ -123,6 +123,7 @@ #include <tools/globname.hxx> #include <tox.hxx> #include <unotools/charclass.hxx> +#include <unotools/configmgr.hxx> #include <unotools/collatorwrapper.hxx> #include <unotools/syslocale.hxx> #include <unotools/transliterationwrapper.hxx> @@ -740,9 +741,16 @@ void _InitCore() pGlobalOLEExcludeList = new std::vector<SvGlobalName*>; - const SvxSwAutoFormatFlags& rAFlags = SvxAutoCorrCfg::Get().GetAutoCorrect()->GetSwFlags(); - SwDoc::mpACmpltWords = new SwAutoCompleteWord( rAFlags.nAutoCmpltListLen, + if (!utl::ConfigManager::IsAvoidConfig()) + { + const SvxSwAutoFormatFlags& rAFlags = SvxAutoCorrCfg::Get().GetAutoCorrect()->GetSwFlags(); + SwDoc::mpACmpltWords = new SwAutoCompleteWord( rAFlags.nAutoCmpltListLen, rAFlags.nAutoCmpltWordLen ); + } + else + { + SwDoc::mpACmpltWords = new SwAutoCompleteWord( 0, 0 ); + } } void _FinitCore() @@ -855,7 +863,9 @@ void SwCalendarWrapper::LoadDefaultCalendar( sal_uInt16 eLang ) LanguageType GetAppLanguage() { - return Application::GetSettings().GetLanguageTag().getLanguageType(); + if (!utl::ConfigManager::IsAvoidConfig()) + return Application::GetSettings().GetLanguageTag().getLanguageType(); + return LANGUAGE_ENGLISH_US; } const LanguageTag& GetAppLanguageTag() diff --git a/sw/source/core/doc/DocumentSettingManager.cxx b/sw/source/core/doc/DocumentSettingManager.cxx index 6970d1f8044e..e9cb58a73f0a 100644 --- a/sw/source/core/doc/DocumentSettingManager.cxx +++ b/sw/source/core/doc/DocumentSettingManager.cxx @@ -26,6 +26,7 @@ #include <editeng/forbiddencharacterstable.hxx> #include <svx/svdmodel.hxx> #include <unotools/compatibility.hxx> +#include <unotools/configmgr.hxx> #include <drawdoc.hxx> #include <swmodule.hxx> #include <linkenum.hxx> @@ -92,19 +93,36 @@ sw::DocumentSettingManager::DocumentSettingManager(SwDoc &rDoc) // Note: Any non-hidden compatibility flag should obtain its default // by asking SvtCompatibilityOptions, see below. - const SvtCompatibilityOptions aOptions; - mbParaSpaceMax = aOptions.IsAddSpacing(); - mbParaSpaceMaxAtPages = aOptions.IsAddSpacingAtPages(); - mbTabCompat = !aOptions.IsUseOurTabStops(); - mbUseVirtualDevice = !aOptions.IsUsePrtDevice(); - mbAddExternalLeading = !aOptions.IsNoExtLeading(); - mbOldLineSpacing = aOptions.IsUseLineSpacing(); - mbAddParaSpacingToTableCells = aOptions.IsAddTableSpacing(); - mbUseFormerObjectPos = aOptions.IsUseObjectPositioning(); - mbUseFormerTextWrapping = aOptions.IsUseOurTextWrapping(); - mbConsiderWrapOnObjPos = aOptions.IsConsiderWrappingStyle(); - - mbDoNotJustifyLinesWithManualBreak = !aOptions.IsExpandWordSpace(); + if (!utl::ConfigManager::IsAvoidConfig()) + { + const SvtCompatibilityOptions aOptions; + mbParaSpaceMax = aOptions.IsAddSpacing(); + mbParaSpaceMaxAtPages = aOptions.IsAddSpacingAtPages(); + mbTabCompat = !aOptions.IsUseOurTabStops(); + mbUseVirtualDevice = !aOptions.IsUsePrtDevice(); + mbAddExternalLeading = !aOptions.IsNoExtLeading(); + mbOldLineSpacing = aOptions.IsUseLineSpacing(); + mbAddParaSpacingToTableCells = aOptions.IsAddTableSpacing(); + mbUseFormerObjectPos = aOptions.IsUseObjectPositioning(); + mbUseFormerTextWrapping = aOptions.IsUseOurTextWrapping(); + mbConsiderWrapOnObjPos = aOptions.IsConsiderWrappingStyle(); + + mbDoNotJustifyLinesWithManualBreak = !aOptions.IsExpandWordSpace(); + } + else + { + mbParaSpaceMax = false; + mbParaSpaceMaxAtPages = false; + mbTabCompat = true; + mbUseVirtualDevice = true; + mbAddExternalLeading = true; + mbOldLineSpacing = false; + mbAddParaSpacingToTableCells = false; + mbUseFormerObjectPos = false; + mbUseFormerTextWrapping = false; + mbConsiderWrapOnObjPos = false; + mbDoNotJustifyLinesWithManualBreak = true; + } // COMPATIBILITY FLAGS END diff --git a/sw/source/core/doc/docdesc.cxx b/sw/source/core/doc/docdesc.cxx index 240d2ea3d518..8663fda3b57b 100644 --- a/sw/source/core/doc/docdesc.cxx +++ b/sw/source/core/doc/docdesc.cxx @@ -56,6 +56,7 @@ #include <SwUndoPageDesc.hxx> #include <pagedeschint.hxx> #include <tgrditem.hxx> +#include <unotools/configmgr.hxx> #include <unotools/syslocale.hxx> #include <boost/scoped_ptr.hpp> @@ -92,7 +93,7 @@ static void lcl_DefaultPageFormat( sal_uInt16 nPoolFormatId, nMinRight = nMinTop = nMinBottom = GetMetricVal( CM_1 ); nMinLeft = nMinRight * 2; } - else if( MEASURE_METRIC == SvtSysLocale().GetLocaleData().getMeasurementSystemEnum() ) + else if (!utl::ConfigManager::IsAvoidConfig() && MEASURE_METRIC == SvtSysLocale().GetLocaleData().getMeasurementSystemEnum() ) { nMinTop = nMinBottom = nMinLeft = nMinRight = 1134; // 2 centimetres } diff --git a/sw/source/core/doc/number.cxx b/sw/source/core/doc/number.cxx index be310a1f54d5..3fd8614989c1 100644 --- a/sw/source/core/doc/number.cxx +++ b/sw/source/core/doc/number.cxx @@ -37,6 +37,7 @@ #include <SwStyleNameMapper.hxx> // Needed to load default bullet list configuration +#include <unotools/configmgr.hxx> #include <unotools/configitem.hxx> #include <numrule.hxx> @@ -1412,6 +1413,9 @@ namespace numfunc SvxNumberFormat::SvxNumPositionAndSpaceMode GetDefaultPositionAndSpaceMode() { + if (utl::ConfigManager::IsAvoidConfig()) + return SvxNumberFormat::LABEL_ALIGNMENT; + SvxNumberFormat::SvxNumPositionAndSpaceMode ePosAndSpaceMode; SvtSaveOptions aSaveOptions; switch ( aSaveOptions.GetODFDefaultVersion() ) diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx index 10130c2dfb0b..3f8bd09a1df6 100644 --- a/sw/source/core/draw/drawdoc.cxx +++ b/sw/source/core/draw/drawdoc.cxx @@ -19,6 +19,7 @@ #include <svx/svxids.hrc> #include <tools/stream.hxx> +#include <unotools/configmgr.hxx> #include <unotools/pathoptions.hxx> #include <sot/storage.hxx> #include <svl/intitem.hxx> @@ -45,6 +46,8 @@ using namespace com::sun::star; const OUString GetPalettePath() { + if (utl::ConfigManager::IsAvoidConfig()) + return OUString(); SvtPathOptions aPathOpt; return aPathOpt.GetPalettePath(); } diff --git a/sw/source/uibase/app/docsh2.cxx b/sw/source/uibase/app/docsh2.cxx index de7796e09613..8037523dfa9c 100644 --- a/sw/source/uibase/app/docsh2.cxx +++ b/sw/source/uibase/app/docsh2.cxx @@ -29,6 +29,7 @@ #include <hintids.hxx> #include <tools/urlobj.hxx> #include <unotools/tempfile.hxx> +#include <unotools/configmgr.hxx> #include <vcl/wrkwin.hxx> #include <vcl/msgbox.hxx> #include <svl/lckbitem.hxx> @@ -1213,6 +1214,8 @@ void SwDocShell::FillClass( SvGlobalName * pClassName, void SwDocShell::SetModified( bool bSet ) { + if (utl::ConfigManager::IsAvoidConfig()) + return; SfxObjectShell::SetModified( bSet ); if( IsEnableSetModified()) { diff --git a/sw/source/uibase/app/docshdrw.cxx b/sw/source/uibase/app/docshdrw.cxx index 00e7c2d079cb..62621400dfcf 100644 --- a/sw/source/uibase/app/docshdrw.cxx +++ b/sw/source/uibase/app/docshdrw.cxx @@ -24,7 +24,7 @@ #include <svx/svdmodel.hxx> #include <svx/svdoutl.hxx> #include <svx/xtable.hxx> - +#include <unotools/configmgr.hxx> #include <docsh.hxx> #include <doc.hxx> #include <drawdoc.hxx> @@ -68,7 +68,7 @@ void InitDrawModelAndDocShell(SwDocShell* pSwDocShell, SwDrawModel* pSwDrawDocum { pSwDocShell->PutItem(SvxColorListItem(xColorList, SID_COLOR_TABLE)); } - else + else if (!utl::ConfigManager::IsAvoidConfig()) { // there wasn't one, get the standard and set to the // docshell and then to the drawdocument diff --git a/unotools/source/config/configitem.cxx b/unotools/source/config/configitem.cxx index bb46aa794a4c..08f2f7180c81 100644 --- a/unotools/source/config/configitem.cxx +++ b/unotools/source/config/configitem.cxx @@ -176,7 +176,10 @@ ConfigItem::ConfigItem(const OUString &rSubTree, ConfigItemMode nSetMode ) : m_bEnableInternalNotification(false), m_nInValueChange(0) { - if(nSetMode & ConfigItemMode::ReleaseTree) + if (utl::ConfigManager::IsAvoidConfig()) + return; + + if (nSetMode & ConfigItemMode::ReleaseTree) ConfigManager::getConfigManager().addConfigItem(*this); else m_xHierarchyAccess = ConfigManager::getConfigManager().addConfigItem(*this); @@ -1110,11 +1113,11 @@ void ConfigItem::ClearModified() m_bIsModified = false; } - - Reference< XHierarchicalNameAccess> ConfigItem::GetTree() { Reference< XHierarchicalNameAccess> xRet; + if (utl::ConfigManager::IsAvoidConfig()) + return xRet; if(!m_xHierarchyAccess.is()) xRet = ConfigManager::acquireTree(*this); else diff --git a/unotools/source/config/configmgr.cxx b/unotools/source/config/configmgr.cxx index bf74b5323653..91a77ef8e8a9 100644 --- a/unotools/source/config/configmgr.cxx +++ b/unotools/source/config/configmgr.cxx @@ -204,4 +204,16 @@ void utl::ConfigManager::doStoreConfigItems() { } } +static bool bIsAvoidConfig = false; + +bool utl::ConfigManager::IsAvoidConfig() +{ + return bIsAvoidConfig; +} + +void utl::ConfigManager::EnableAvoidConfig() +{ + bIsAvoidConfig = true; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/unotools/source/config/saveopt.cxx b/unotools/source/config/saveopt.cxx index ccea2c533af8..fd6f0736233d 100644 --- a/unotools/source/config/saveopt.cxx +++ b/unotools/source/config/saveopt.cxx @@ -567,9 +567,18 @@ SvtSaveOptions_Impl::SvtSaveOptions_Impl() } } - bAutoSave = officecfg::Office::Recovery::AutoSave::Enabled::get(); - nAutoSaveTime = officecfg::Office::Recovery::AutoSave::TimeIntervall::get(); - bUserAutoSave = officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::get(); + if (!utl::ConfigManager::IsAvoidConfig()) + { + bAutoSave = officecfg::Office::Recovery::AutoSave::Enabled::get(); + nAutoSaveTime = officecfg::Office::Recovery::AutoSave::TimeIntervall::get(); + bUserAutoSave = officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::get(); + } + else + { + bAutoSave = false; + nAutoSaveTime = 0; + bUserAutoSave = false; + } } SvtSaveOptions_Impl::~SvtSaveOptions_Impl() diff --git a/unotools/source/config/viewoptions.cxx b/unotools/source/config/viewoptions.cxx index 95282f0e35c9..ef336153f7b3 100644 --- a/unotools/source/config/viewoptions.cxx +++ b/unotools/source/config/viewoptions.cxx @@ -149,6 +149,9 @@ SvtViewOptionsBase_Impl::SvtViewOptionsBase_Impl( const OUString& sList ) , m_nWriteCount( 0 ) #endif { + if (utl::ConfigManager::IsAvoidConfig()) + return; + try { m_xRoot = css::uno::Reference< css::container::XNameAccess >( diff --git a/unotools/source/misc/syslocale.cxx b/unotools/source/misc/syslocale.cxx index 179052045869..117d5d854380 100644 --- a/unotools/source/misc/syslocale.cxx +++ b/unotools/source/misc/syslocale.cxx @@ -20,6 +20,7 @@ #include <sal/config.h> #include <sal/log.hxx> +#include <unotools/configmgr.hxx> #include <unotools/syslocale.hxx> #include <unotools/syslocaleoptions.hxx> #include <comphelper/processfactory.hxx> @@ -54,7 +55,13 @@ private: SvtSysLocale_Impl::SvtSysLocale_Impl() : pCharClass(NULL) { - pLocaleData = new LocaleDataWrapper( aSysLocaleOptions.GetRealLanguageTag() ); + if (utl::ConfigManager::IsAvoidConfig()) + { + pLocaleData = NULL; + return; + } + + pLocaleData = new LocaleDataWrapper(aSysLocaleOptions.GetRealLanguageTag()); setDateAcceptancePatternsConfig(); // listen for further changes @@ -114,6 +121,9 @@ void SvtSysLocale_Impl::setDateAcceptancePatternsConfig() SvtSysLocale::SvtSysLocale() { + if (utl::ConfigManager::IsAvoidConfig()) + return; + MutexGuard aGuard( GetMutex() ); if ( !pImpl ) pImpl = new SvtSysLocale_Impl; |