diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2016-01-04 17:42:02 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2016-01-05 12:25:31 +0100 |
commit | ce3dd82ca83eb9f3ec89f0e6eaae4e170febec3a (patch) | |
tree | 3252b77941e6b38d2e79c2cc323c0f73a5cc56bb /xmlhelp | |
parent | 97df0e601a0d76664b4207d075fa6e2a5a51625c (diff) |
Clean up configuration access
Change-Id: I0662e8ddb24f2c6a7197b8a5f23c219484628b78
Diffstat (limited to 'xmlhelp')
-rw-r--r-- | xmlhelp/Library_ucpchelp1.mk | 4 | ||||
-rw-r--r-- | xmlhelp/source/cxxhelp/provider/provider.cxx | 171 | ||||
-rw-r--r-- | xmlhelp/source/cxxhelp/provider/provider.hxx | 17 |
3 files changed, 20 insertions, 172 deletions
diff --git a/xmlhelp/Library_ucpchelp1.mk b/xmlhelp/Library_ucpchelp1.mk index 8109e5e3e683..0eb7d859f45d 100644 --- a/xmlhelp/Library_ucpchelp1.mk +++ b/xmlhelp/Library_ucpchelp1.mk @@ -16,6 +16,10 @@ $(eval $(call gb_Library_set_include,ucpchelp1,\ $$(INCLUDE) \ )) +$(eval $(call gb_Library_use_custom_headers,ucpchelp1, \ + officecfg/registry \ +)) + $(eval $(call gb_Library_use_sdk_api,ucpchelp1)) $(eval $(call gb_Library_use_externals,ucpchelp1,\ diff --git a/xmlhelp/source/cxxhelp/provider/provider.cxx b/xmlhelp/source/cxxhelp/provider/provider.cxx index ffac57dac98e..56a14e48226e 100644 --- a/xmlhelp/source/cxxhelp/provider/provider.cxx +++ b/xmlhelp/source/cxxhelp/provider/provider.cxx @@ -20,16 +20,14 @@ #include <config_folders.h> #include <stdio.h> +#include <officecfg/Office/Common.hxx> +#include <officecfg/Setup.hxx> #include <osl/file.hxx> #include <osl/diagnose.h> #include <ucbhelper/contentidentifier.hxx> -#include <com/sun/star/frame/XConfigManager.hpp> #include <com/sun/star/beans/PropertyAttribute.hpp> #include <com/sun/star/beans/PropertyValue.hpp> -#include <com/sun/star/configuration/theDefaultProvider.hpp> #include <com/sun/star/container/XContainer.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/container/XNameReplace.hpp> #include <com/sun/star/uno/XComponentContext.hpp> #include <comphelper/processfactory.hxx> #include <cppuhelper/supportsservice.hxx> @@ -259,73 +257,32 @@ void ContentProvider::init() osl::MutexGuard aGuard( m_aMutex ); isInitialized = true; - uno::Reference< lang::XMultiServiceFactory > sProvider( - getConfiguration() ); - uno::Reference< container::XHierarchicalNameAccess > xHierAccess( - getHierAccess( sProvider, - "org.openoffice.Office.Common" ) ); - OUString instPath( getKey( xHierAccess,"Path/Current/Help" ) ); + OUString instPath( + officecfg::Office::Common::Path::Current::Help::get(m_xContext)); if( instPath.isEmpty() ) // try to determine path from default instPath = "$(instpath)/" LIBO_SHARE_HELP_FOLDER; // replace anything like $(instpath); subst( instPath ); - OUString stylesheet( getKey( xHierAccess,"Help/HelpStyleSheet" ) ); - try - { - // now adding as configuration change listener for the stylesheet - uno::Reference< container::XNameAccess> xAccess( - xHierAccess, uno::UNO_QUERY ); - if( xAccess.is() ) - { - uno::Any aAny = - xAccess->getByName("Help"); - aAny >>= m_xContainer; - if( m_xContainer.is() ) - m_xContainer->addContainerListener( this ); - } - } - catch( uno::Exception const & ) - { - } + OUString stylesheet( + officecfg::Office::Common::Help::HelpStyleSheet::get(m_xContext)); - xHierAccess = getHierAccess( sProvider, "org.openoffice.Setup" ); + // now adding as configuration change listener for the stylesheet + m_xContainer.set( + officecfg::Office::Common::Help::get(m_xContext), + css::uno::UNO_QUERY_THROW); + m_xContainer->addContainerListener( this ); OUString setupversion( - getKey( xHierAccess,"Product/ooSetupVersion" ) ); - OUString setupextension; - - try - { - uno::Reference< lang::XMultiServiceFactory > xConfigProvider = - configuration::theDefaultProvider::get( m_xContext ); - - uno::Sequence < uno::Any > lParams(1); - beans::PropertyValue aParam ; - aParam.Name = "nodepath"; - aParam.Value <<= OUString("/org.openoffice.Setup/Product"); - lParams[0] = uno::makeAny(aParam); - - // open it - uno::Reference< uno::XInterface > xCFG( xConfigProvider->createInstanceWithArguments( - "com.sun.star.configuration.ConfigurationAccess", - lParams) ); - - uno::Reference< container::XNameAccess > xDirectAccess(xCFG, uno::UNO_QUERY); - uno::Any aRet = xDirectAccess->getByName("ooSetupExtension"); - - aRet >>= setupextension; - } - catch ( uno::Exception& ) - { - } - + officecfg::Setup::Product::ooSetupVersion::get(m_xContext)); + OUString setupextension( + officecfg::Setup::Product::ooSetupExtension::get(m_xContext)); OUString productversion( setupversion + " " + setupextension ); - xHierAccess = getHierAccess( sProvider, "org.openoffice.Office.Common" ); - bool showBasic = getBooleanKey(xHierAccess,"Help/ShowBasic"); + bool showBasic = officecfg::Office::Common::Help::ShowBasic::get( + m_xContext); m_pDatabases = new Databases( showBasic, instPath, utl::ConfigManager::getProductName(), @@ -334,102 +291,6 @@ void ContentProvider::init() m_xContext ); } -uno::Reference< lang::XMultiServiceFactory > -ContentProvider::getConfiguration() const -{ - uno::Reference< lang::XMultiServiceFactory > xProvider; - if( m_xContext.is() ) - { - try - { - xProvider = configuration::theDefaultProvider::get( m_xContext ); - } - catch( const uno::Exception& ) - { - OSL_ENSURE( xProvider.is(), "can not instantiate configuration" ); - } - } - - return xProvider; -} - -uno::Reference< container::XHierarchicalNameAccess > -ContentProvider::getHierAccess( - const uno::Reference< lang::XMultiServiceFactory >& sProvider, - const char* file ) -{ - uno::Reference< container::XHierarchicalNameAccess > xHierAccess; - - if( sProvider.is() ) - { - uno::Sequence< uno::Any > seq( 1 ); - OUString sReaderService( - OUString( - "com.sun.star.configuration.ConfigurationAccess" ) ); - - seq[ 0 ] <<= OUString::createFromAscii( file ); - - try - { - xHierAccess = - uno::Reference< container::XHierarchicalNameAccess >( - sProvider->createInstanceWithArguments( - sReaderService, seq ), - uno::UNO_QUERY ); - } - catch( const uno::Exception& ) - { - } - } - return xHierAccess; -} - -OUString -ContentProvider::getKey( - const uno::Reference< container::XHierarchicalNameAccess >& xHierAccess, - const char* key ) -{ - OUString instPath; - if( xHierAccess.is() ) - { - uno::Any aAny; - try - { - aAny = - xHierAccess->getByHierarchicalName( - OUString::createFromAscii( key ) ); - } - catch( const container::NoSuchElementException& ) - { - } - aAny >>= instPath; - } - return instPath; -} - -bool -ContentProvider::getBooleanKey( - const uno::Reference< container::XHierarchicalNameAccess >& xHierAccess, - const char* key ) -{ - bool ret = false; - if( xHierAccess.is() ) - { - uno::Any aAny; - try - { - aAny = - xHierAccess->getByHierarchicalName( - OUString::createFromAscii( key ) ); - } - catch( const container::NoSuchElementException& ) - { - } - aAny >>= ret; - } - return ret; -} - void ContentProvider::subst( OUString& instpath ) { SvtPathOptions aOptions; diff --git a/xmlhelp/source/cxxhelp/provider/provider.hxx b/xmlhelp/source/cxxhelp/provider/provider.hxx index 202c6dae04ac..e8e4968a0ed3 100644 --- a/xmlhelp/source/cxxhelp/provider/provider.hxx +++ b/xmlhelp/source/cxxhelp/provider/provider.hxx @@ -23,7 +23,6 @@ #include <rtl/ustring.hxx> #include <osl/mutex.hxx> #include <ucbhelper/providerhelper.hxx> -#include <com/sun/star/container/XHierarchicalNameAccess.hpp> #include <com/sun/star/container/XContainerListener.hpp> #include <com/sun/star/container/XContainer.hpp> #include <com/sun/star/lang/XComponent.hpp> @@ -156,22 +155,6 @@ namespace chelp { void init(); - css::uno::Reference< css::lang::XMultiServiceFactory > - getConfiguration() const; - - static css::uno::Reference< css::container::XHierarchicalNameAccess > - getHierAccess( const css::uno::Reference< css::lang::XMultiServiceFactory >& sProvider, - const char* file ); - - static OUString - getKey( const css::uno::Reference< css::container::XHierarchicalNameAccess >& xHierAccess, - const char* key ); - - static bool - getBooleanKey( - const css::uno::Reference< css::container::XHierarchicalNameAccess >& xHierAccess, - const char* key); - static void subst( OUString& instpath ); }; |