diff options
author | Noel Grandin <noel@peralex.com> | 2012-05-26 13:53:19 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-06-04 16:57:55 +0200 |
commit | b3c76dee6d44d07eae404b8d7341e6c88e6c4429 (patch) | |
tree | c747dd5bddf94c3b4312c7b1861a5087e76e71d6 /cui/source/dialogs/plfilter.cxx | |
parent | Improve error reporting (diff) | |
download | core-b3c76dee6d44d07eae404b8d7341e6c88e6c4429.tar.gz core-b3c76dee6d44d07eae404b8d7341e6c88e6c4429.zip |
fdo#46808, Adapt UNO services to new style, Part 7, updating ::create
Update calls to factories to use new ::create methods
Change-Id: I01d4417820f52718836c92faf3c2fae0dc96b30d
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>, added some tweaks.
Diffstat (limited to 'cui/source/dialogs/plfilter.cxx')
-rw-r--r-- | cui/source/dialogs/plfilter.cxx | 100 |
1 files changed, 47 insertions, 53 deletions
diff --git a/cui/source/dialogs/plfilter.cxx b/cui/source/dialogs/plfilter.cxx index 678db753ad3b..ff6816026c4e 100644 --- a/cui/source/dialogs/plfilter.cxx +++ b/cui/source/dialogs/plfilter.cxx @@ -35,6 +35,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/plugin/PluginDescription.hpp> +#include <com/sun/star/plugin/PluginManager.hpp> #include <com/sun/star/plugin/XPluginManager.hpp> using namespace std; @@ -57,69 +58,62 @@ typedef map< String, StrSet, ltstr > FilterMap; //================================================================================================== void fillNetscapePluginFilters( Sequence< rtl::OUString >& rPluginNames, Sequence< rtl::OUString >& rPluginTypes ) { - Reference< XMultiServiceFactory > xMan( ::comphelper::getProcessServiceFactory() ); - Reference< XPluginManager > xPMgr( xMan->createInstance( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.plugin.PluginManager") ) ), UNO_QUERY ); + Reference< XComponentContext > xContext = comphelper::getProcessComponentContext(); + Reference< XPluginManager > xPMgr( PluginManager::create(xContext) ); - if ( xPMgr.is() ) + FilterMap aMap; + + // sum up the mimetypes: one description, multiple extensions + + Sequence<PluginDescription > aDescriptions( xPMgr->getPluginDescriptions() ); + const PluginDescription * pDescriptions = aDescriptions.getConstArray(); + for ( sal_uInt32 nPos = aDescriptions.getLength(); nPos--; ) { - FilterMap aMap; + const PluginDescription & rDescr = pDescriptions[nPos]; - // sum up the mimetypes: one description, multiple extensions + StrSet& rTypes = aMap[ rDescr.Description ]; + String aExtension( rDescr.Extension ); - Sequence<PluginDescription > aDescriptions( xPMgr->getPluginDescriptions() ); - const PluginDescription * pDescriptions = aDescriptions.getConstArray(); - for ( sal_uInt32 nPos = aDescriptions.getLength(); nPos--; ) + for ( sal_uInt16 nCnt = comphelper::string::getTokenCount(aExtension, ';'); nCnt--; ) + { + // no default plugins anymore + String aExt( aExtension.GetToken( nCnt, ';' ) ); + if ( aExt.CompareToAscii( "*.*" ) != COMPARE_EQUAL ) + rTypes.insert( aExt ); + } + } + + rPluginNames = Sequence< rtl::OUString >( aMap.size() ); + rPluginTypes = Sequence< rtl::OUString >( aMap.size() ); + rtl::OUString* pPluginNames = rPluginNames.getArray(); + rtl::OUString* pPluginTypes = rPluginTypes.getArray(); + int nIndex = 0; + for ( FilterMap::iterator iPos = aMap.begin(); iPos != aMap.end(); ++iPos ) + { + String aText( (*iPos).first ); + String aType; + StrSet& rTypes = (*iPos).second; + StrSet::iterator i = rTypes.begin(); + while ( i != rTypes.end() ) { - const PluginDescription & rDescr = pDescriptions[nPos]; - - StrSet& rTypes = aMap[ rDescr.Description ]; - String aExtension( rDescr.Extension ); - - for ( sal_uInt16 nCnt = comphelper::string::getTokenCount(aExtension, ';'); nCnt--; ) - { - // no default plugins anymore - String aExt( aExtension.GetToken( nCnt, ';' ) ); - if ( aExt.CompareToAscii( "*.*" ) != COMPARE_EQUAL ) - rTypes.insert( aExt ); - } + aType += (*i); + ++i; + if ( i != rTypes.end() ) + aType += ';'; } - rPluginNames = Sequence< rtl::OUString >( aMap.size() ); - rPluginTypes = Sequence< rtl::OUString >( aMap.size() ); - rtl::OUString* pPluginNames = rPluginNames.getArray(); - rtl::OUString* pPluginTypes = rPluginTypes.getArray(); - int nIndex = 0; - for ( FilterMap::iterator iPos = aMap.begin(); iPos != aMap.end(); ++iPos ) + if ( aType.Len() ) { - String aText( (*iPos).first ); - String aType; - StrSet& rTypes = (*iPos).second; - StrSet::iterator i = rTypes.begin(); - while ( i != rTypes.end() ) - { - aType += (*i); - ++i; - if ( i != rTypes.end() ) - aType += ';'; - } - - if ( aType.Len() ) - { - aText += String::CreateFromAscii( " (" ); - aText += aType; - aText += ')'; - pPluginNames[nIndex] = aText; - pPluginTypes[nIndex] = aType; - nIndex++; - } + aText += String::CreateFromAscii( " (" ); + aText += aType; + aText += ')'; + pPluginNames[nIndex] = aText; + pPluginTypes[nIndex] = aType; + nIndex++; } - rPluginNames.realloc( nIndex ); - rPluginTypes.realloc( nIndex ); } - else - ShowServiceNotAvailableError( NULL, - String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.plugin.PluginManager" ) ), sal_True ); + rPluginNames.realloc( nIndex ); + rPluginTypes.realloc( nIndex ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |