From 4906c243877681b4559b495c1dfb4dbf8c51cfb8 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 2 Apr 2015 10:28:17 +0200 Subject: convert SvtModuleOptions::EFactory to enum class and fix issues in iterating through o3tl::enumarray Change-Id: Ia59ef9be44d8c92c2e406fa71aa92269578e26e3 --- unotools/source/config/moduleoptions.cxx | 307 ++++++++++++------------------- 1 file changed, 113 insertions(+), 194 deletions(-) (limited to 'unotools/source') diff --git a/unotools/source/config/moduleoptions.cxx b/unotools/source/config/moduleoptions.cxx index 24df404e6fc8..110231090018 100644 --- a/unotools/source/config/moduleoptions.cxx +++ b/unotools/source/config/moduleoptions.cxx @@ -22,9 +22,10 @@ #include #include #include +#include #include +#include #include - #include #include #include @@ -264,8 +265,6 @@ struct FactoryInfo css::uno::Reference< css::util::XStringSubstitution > xSubstVars; }; -typedef FactoryInfo FactoryInfoList[FACTORYCOUNT]; - /*-************************************************************************************************************ @short IMPL data container for wrapper class SvtModulOptions! @descr These class is used as a static data container of class SvtModuleOptions. The hold it by using @@ -325,7 +324,7 @@ class SvtModuleOptions_Impl : public ::utl::ConfigItem // private member private: - FactoryInfoList m_lFactories; + o3tl::enumarray m_lFactories; bool m_bReadOnlyStatesWellKnown; }; @@ -343,8 +342,8 @@ SvtModuleOptions_Impl::SvtModuleOptions_Impl() , m_bReadOnlyStatesWellKnown( false ) { // First initialize list of factory infos! Otherwise we couldnt guarantee right working of these class. - for( sal_Int32 nFactory=0; nFactory lCommitProperties( FACTORYCOUNT*PROPERTYCOUNT ); - FactoryInfo* pInfo = NULL; sal_Int32 nRealCount = 0; OUString sBasePath; - for( sal_Int32 nFactory=0; nFactorygetChangedProperties() for further information - sBasePath = PATHSEPARATOR + pInfo->getFactory() + PATHSEPARATOR; + sBasePath = PATHSEPARATOR + rInfo.getFactory() + PATHSEPARATOR; - const css::uno::Sequence< css::beans::PropertyValue > lChangedProperties = pInfo->getChangedProperties ( sBasePath ); + const css::uno::Sequence< css::beans::PropertyValue > lChangedProperties = rInfo.getChangedProperties ( sBasePath ); const css::beans::PropertyValue* pChangedProperties = lChangedProperties.getConstArray(); sal_Int32 nPropertyCount = lChangedProperties.getLength(); for( sal_Int32 nProperty=0; nProperty SvtModuleOptions_Impl::GetAllServiceNames() { - sal_uInt32 nCount=0; - if( m_lFactories[SvtModuleOptions::E_WRITER].getInstalled() ) - nCount++; - if ( m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled() ) - nCount++; - if ( m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled() ) - nCount++; - if( m_lFactories[SvtModuleOptions::E_SCALC].getInstalled() ) - nCount++; - if( m_lFactories[SvtModuleOptions::E_SDRAW].getInstalled() ) - nCount++; - if( m_lFactories[SvtModuleOptions::E_SIMPRESS].getInstalled() ) - nCount++; - if( m_lFactories[SvtModuleOptions::E_SCHART].getInstalled() ) - nCount++; - if( m_lFactories[SvtModuleOptions::E_SMATH].getInstalled() ) - nCount++; - if( m_lFactories[SvtModuleOptions::E_SBASIC].getInstalled() ) - nCount++; - if( m_lFactories[SvtModuleOptions::E_SDATABASE].getInstalled() ) - nCount++; - - css::uno::Sequence < OUString > aRet( nCount ); - sal_Int32 n=0; - if( m_lFactories[SvtModuleOptions::E_WRITER].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITER].getFactory(); - if ( m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITERWEB].getFactory(); - if ( m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getFactory(); - if( m_lFactories[SvtModuleOptions::E_SCALC].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_SCALC].getFactory(); - if( m_lFactories[SvtModuleOptions::E_SDRAW].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_SDRAW].getFactory(); - if( m_lFactories[SvtModuleOptions::E_SIMPRESS].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_SIMPRESS].getFactory(); - if( m_lFactories[SvtModuleOptions::E_SCHART].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_SCHART].getFactory(); - if( m_lFactories[SvtModuleOptions::E_SMATH].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_SMATH].getFactory(); - if( m_lFactories[SvtModuleOptions::E_SBASIC].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_SBASIC].getFactory(); - if( m_lFactories[SvtModuleOptions::E_SDATABASE].getInstalled() ) - aRet[n++] = m_lFactories[SvtModuleOptions::E_SDATABASE].getFactory(); - - return aRet; + std::vector aVec; + + for( auto & rFactory : m_lFactories ) + if( rFactory.getInstalled() ) + aVec.push_back( rFactory.getFactory() ); + + return comphelper::containerToSequence(aVec); } OUString SvtModuleOptions_Impl::GetFactoryName( SvtModuleOptions::EFactory eFactory ) const { - OUString sName; - - if( eFactory>=0 && eFactory=0 && eFactory=0 && eFactory=0 && eFactory=0 && eFactory=0 && eFactory=0 && eFactory no fun :-) - return E_UNKNOWN_FACTORY; + return EFactory::UNKNOWN_FACTORY; } SvtModuleOptions::EFactory SvtModuleOptions::ClassifyFactoryByModel(const css::uno::Reference< css::frame::XModel >& xModel) { css::uno::Reference< css::lang::XServiceInfo > xInfo(xModel, css::uno::UNO_QUERY); if (!xInfo.is()) - return E_UNKNOWN_FACTORY; + return EFactory::UNKNOWN_FACTORY; const css::uno::Sequence< OUString > lServices = xInfo->getSupportedServiceNames(); const OUString* pServices = lServices.getConstArray(); @@ -1237,11 +1156,11 @@ SvtModuleOptions::EFactory SvtModuleOptions::ClassifyFactoryByModel(const css::u for (sal_Int32 i=0; i SvtModuleOptions::GetAllServiceNames() @@ -1254,21 +1173,21 @@ OUString SvtModuleOptions::GetDefaultModuleName() { OUString aModule; if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SWRITER)) - aModule = GetFactoryShortName(SvtModuleOptions::E_WRITER); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::WRITER); else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SCALC)) - aModule = GetFactoryShortName(SvtModuleOptions::E_CALC); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::CALC); else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SIMPRESS)) - aModule = GetFactoryShortName(SvtModuleOptions::E_IMPRESS); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::IMPRESS); else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SDATABASE)) - aModule = GetFactoryShortName(SvtModuleOptions::E_DATABASE); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::DATABASE); else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SDRAW)) - aModule = GetFactoryShortName(SvtModuleOptions::E_DRAW); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::DRAW); else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SWEB)) - aModule = GetFactoryShortName(SvtModuleOptions::E_WRITERWEB); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::WRITERWEB); else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SGLOBAL)) - aModule = GetFactoryShortName(SvtModuleOptions::E_WRITERGLOBAL); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::WRITERGLOBAL); else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SMATH)) - aModule = GetFactoryShortName(SvtModuleOptions::E_MATH); + aModule = GetFactoryShortName(SvtModuleOptions::EFactory::MATH); return aModule; } -- cgit