diff options
Diffstat (limited to 'framework/source/accelerators/presethandler.cxx')
-rw-r--r-- | framework/source/accelerators/presethandler.cxx | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/framework/source/accelerators/presethandler.cxx b/framework/source/accelerators/presethandler.cxx index bce2e3861499..f1879af97f70 100644 --- a/framework/source/accelerators/presethandler.cxx +++ b/framework/source/accelerators/presethandler.cxx @@ -30,6 +30,7 @@ #include <com/sun/star/lang/XSingleServiceFactory.hpp> #include <com/sun/star/util/thePathSettings.hpp> +#include <utility> #include <vcl/svapp.hxx> #include <cppuhelper/exc_hlp.hxx> #include <rtl/ustrbuf.hxx> @@ -57,8 +58,6 @@ struct TSharedStorages final StorageHolder m_lStoragesUser; TSharedStorages() - : m_lStoragesShare() - , m_lStoragesUser () {}; }; @@ -66,14 +65,17 @@ struct TSharedStorages final a) shared root storages b) shared "inbetween" storages of the share and user layer. */ -struct SharedStorages: public rtl::Static<TSharedStorages, SharedStorages> {}; +TSharedStorages& SharedStorages() +{ + static TSharedStorages theStorages; + return theStorages; +} } -PresetHandler::PresetHandler(const css::uno::Reference< css::uno::XComponentContext >& xContext) - : m_xContext(xContext) +PresetHandler::PresetHandler(css::uno::Reference< css::uno::XComponentContext > xContext) + : m_xContext(std::move(xContext)) , m_eConfigType(E_GLOBAL) - , m_lDocumentStorages() { } @@ -105,7 +107,7 @@ PresetHandler::~PresetHandler() Otherwise we will disconnect all other open configuration access objects which base on these storages. */ - auto & sharedStorages = SharedStorages::get(); + auto & sharedStorages = SharedStorages(); sharedStorages.m_lStoragesShare.closePath(m_sRelPathShare); sharedStorages.m_lStoragesUser.closePath (m_sRelPathUser ); @@ -171,7 +173,7 @@ void lcl_throwCorruptedUIConfigurationException( css::uno::Reference< css::embed::XStorage > PresetHandler::getOrCreateRootStorageShare() { - auto & sharedStorages = SharedStorages::get(); + auto & sharedStorages = SharedStorages(); css::uno::Reference< css::embed::XStorage > xRoot = sharedStorages.m_lStoragesShare.getRootStorage(); if (xRoot.is()) return xRoot; @@ -204,9 +206,10 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::getOrCreateRootStorag // based of a system directory. This must be used so, till the storage implementation // can work on directories too. */ - css::uno::Sequence< css::uno::Any > lArgs(2); - lArgs[0] <<= sShareLayer; - lArgs[1] <<= css::embed::ElementModes::READ | css::embed::ElementModes::NOCREATE; + css::uno::Sequence< css::uno::Any > lArgs{ + css::uno::Any(sShareLayer), + css::uno::Any(css::embed::ElementModes::READ | css::embed::ElementModes::NOCREATE) + }; css::uno::Reference< css::lang::XSingleServiceFactory > xStorageFactory = css::embed::FileSystemStorageFactory::create( xContext ); css::uno::Reference< css::embed::XStorage > xStorage; @@ -229,7 +232,7 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::getOrCreateRootStorag css::uno::Reference< css::embed::XStorage > PresetHandler::getOrCreateRootStorageUser() { - auto & sharedStorages = SharedStorages::get(); + auto & sharedStorages = SharedStorages(); css::uno::Reference< css::embed::XStorage > xRoot = sharedStorages.m_lStoragesUser.getRootStorage(); if (xRoot.is()) return xRoot; @@ -252,9 +255,8 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::getOrCreateRootStorag sUserLayer += "soffice.cfg"; // storage file - css::uno::Sequence< css::uno::Any > lArgs(2); - lArgs[0] <<= sUserLayer; - lArgs[1] <<= css::embed::ElementModes::READWRITE; + css::uno::Sequence< css::uno::Any > lArgs{ css::uno::Any(sUserLayer), + css::uno::Any(css::embed::ElementModes::READWRITE) }; css::uno::Reference< css::lang::XSingleServiceFactory > xStorageFactory = css::embed::FileSystemStorageFactory::create( xContext ); css::uno::Reference< css::embed::XStorage > xStorage; @@ -289,7 +291,7 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::getParentStorageShare xWorking = m_xWorkingStorageShare; } - return SharedStorages::get().m_lStoragesShare.getParentStorage(xWorking); + return SharedStorages().m_lStoragesShare.getParentStorage(xWorking); } css::uno::Reference< css::embed::XStorage > PresetHandler::getParentStorageUser() @@ -300,12 +302,12 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::getParentStorageUser( xWorking = m_xWorkingStorageUser; } - return SharedStorages::get().m_lStoragesUser.getParentStorage(xWorking); + return SharedStorages().m_lStoragesUser.getParentStorage(xWorking); } void PresetHandler::connectToResource( PresetHandler::EConfigType eConfigType , - const OUString& sResource , - const OUString& sModule , + std::u16string_view sResource , + std::u16string_view sModule , const css::uno::Reference< css::embed::XStorage >& xDocumentRoot, const LanguageTag& rLanguageTag ) { @@ -355,10 +357,7 @@ void PresetHandler::connectToResource( PresetHandler::EConfigType { case E_GLOBAL : { - sRelPathBuf.append("global"); - sRelPathBuf.append("/"); - sRelPathBuf.append(sResource); - sRelPathShare = sRelPathBuf.makeStringAndClear(); + sRelPathShare = OUString::Concat("global/") + sResource; sRelPathUser = sRelPathShare; xShare = impl_openPathIgnoringErrors(sRelPathShare, eShareMode, true ); @@ -368,12 +367,7 @@ void PresetHandler::connectToResource( PresetHandler::EConfigType case E_MODULES : { - sRelPathBuf.append("modules"); - sRelPathBuf.append("/"); - sRelPathBuf.append(sModule); - sRelPathBuf.append("/"); - sRelPathBuf.append(sResource); - sRelPathShare = sRelPathBuf.makeStringAndClear(); + sRelPathShare = OUString::Concat("modules/") + sModule + "/" + sResource; sRelPathUser = sRelPathShare; xShare = impl_openPathIgnoringErrors(sRelPathShare, eShareMode, true ); @@ -548,7 +542,7 @@ void PresetHandler::commitUserChanges() case E_GLOBAL : case E_MODULES : { - auto & sharedStorages = SharedStorages::get(); + auto & sharedStorages = SharedStorages(); sPath = sharedStorages.m_lStoragesUser.getPathOfStorage(xWorking); sharedStorages.m_lStoragesUser.commitPath(sPath); sharedStorages.m_lStoragesUser.notifyPath(sPath); @@ -583,7 +577,7 @@ void PresetHandler::addStorageListener(XMLBasedAcceleratorConfiguration* pListen case E_GLOBAL : case E_MODULES : { - SharedStorages::get().m_lStoragesUser.addStorageListener(pListener, sRelPath); + SharedStorages().m_lStoragesUser.addStorageListener(pListener, sRelPath); } break; @@ -613,7 +607,7 @@ void PresetHandler::removeStorageListener(XMLBasedAcceleratorConfiguration* pLis case E_GLOBAL : case E_MODULES : { - SharedStorages::get().m_lStoragesUser.removeStorageListener(pListener, sRelPath); + SharedStorages().m_lStoragesUser.removeStorageListener(pListener, sRelPath); } break; @@ -625,6 +619,7 @@ void PresetHandler::removeStorageListener(XMLBasedAcceleratorConfiguration* pLis } } +// static css::uno::Reference< css::embed::XStorage > PresetHandler::impl_openPathIgnoringErrors(const OUString& sPath , sal_Int32 eMode , bool bShare) @@ -633,9 +628,9 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::impl_openPathIgnoring try { if (bShare) - xPath = SharedStorages::get().m_lStoragesShare.openPath(sPath, eMode); + xPath = SharedStorages().m_lStoragesShare.openPath(sPath, eMode); else - xPath = SharedStorages::get().m_lStoragesUser.openPath(sPath, eMode); + xPath = SharedStorages().m_lStoragesUser.openPath(sPath, eMode); } catch(const css::uno::RuntimeException&) { throw; } @@ -644,6 +639,7 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::impl_openPathIgnoring return xPath; } +// static ::std::vector< OUString >::const_iterator PresetHandler::impl_findMatchingLocalizedValue( const ::std::vector< OUString >& lLocalizedValues, OUString& rLanguageTag, @@ -668,6 +664,7 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::impl_openPathIgnoring return pFound; } +// static css::uno::Reference< css::embed::XStorage > PresetHandler::impl_openLocalizedPathIgnoringErrors( OUString& sPath , sal_Int32 eMode , @@ -705,6 +702,7 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::impl_openLocalizedPat return xLocalePath; } +// static ::std::vector< OUString > PresetHandler::impl_getSubFolderNames(const css::uno::Reference< css::embed::XStorage >& xFolder) { if (!xFolder.is()) |