[Libreoffice-commits] core.git: include/sfx2 sfx2/source

Matteo Casalin matteo.casalin at yahoo.com
Fri Mar 17 22:13:10 UTC 2017


 include/sfx2/docfac.hxx    |    6 +++---
 sfx2/source/doc/docfac.cxx |   16 ++++++----------
 2 files changed, 9 insertions(+), 13 deletions(-)

New commits:
commit 2cdca5d32e0b2d1efb9241e4e03e15b20f28363b
Author: Matteo Casalin <matteo.casalin at yahoo.com>
Date:   Fri Mar 17 15:13:41 2017 +0100

    SfxObjectFactory: directly store factory name as OUString
    
    Change-Id: I0779be1e4b344124514115c6645394d26ac09c36
    Reviewed-on: https://gerrit.libreoffice.org/35375
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Matteo Casalin <matteo.casalin at yahoo.com>

diff --git a/include/sfx2/docfac.hxx b/include/sfx2/docfac.hxx
index 2658eaa07e6c..f1b73f424281 100644
--- a/include/sfx2/docfac.hxx
+++ b/include/sfx2/docfac.hxx
@@ -43,18 +43,18 @@ typedef void (*SfxVoidFunc)();
 class SFX2_DLLPUBLIC SfxObjectFactory
 {
 private:
-    const char*             pShortName;
+    const OUString          m_sFactoryName;
     std::unique_ptr<SfxObjectFactory_Impl> pImpl;      // Additional Data
     SfxObjectShellFlags     nFlags;
 
 public:
-    SfxObjectFactory( const SvGlobalName &rName, SfxObjectShellFlags nFlags, const char* pShortName );
+    SfxObjectFactory( const SvGlobalName &rName, SfxObjectShellFlags nFlags, const OUString& sFactoryName );
     ~SfxObjectFactory();
 
     const SvGlobalName& GetClassId() const;
     SfxObjectShellFlags GetFlags() { return nFlags; }
     OUString        GetFactoryURL() const;  // shortcut for "private:factory/GetShortName()"
-    OUString        GetFactoryName() const { return OUString::createFromAscii(pShortName); }
+    OUString        GetFactoryName() const { return m_sFactoryName; }
     OUString        GetModuleName() const;
     SfxFilterContainer *GetFilterContainer() const;
 
diff --git a/sfx2/source/doc/docfac.cxx b/sfx2/source/doc/docfac.cxx
index 20ebfbcfc0fa..cfe4e5fdac7b 100644
--- a/sfx2/source/doc/docfac.cxx
+++ b/sfx2/source/doc/docfac.cxx
@@ -85,15 +85,14 @@ SfxObjectFactory::SfxObjectFactory
 (
     const SvGlobalName&     rName,
     SfxObjectShellFlags     nFlagsP,
-    const char*             pName
-) :    pShortName( pName ),
+    const OUString&         sName
+) :    m_sFactoryName( sName ),
        pImpl( new SfxObjectFactory_Impl ),
        nFlags( nFlagsP )
 {
-    pImpl->pFilterContainer = new SfxFilterContainer( OUString::createFromAscii( pName ) );
+    pImpl->pFilterContainer = new SfxFilterContainer( m_sFactoryName );
 
-    OUString aShortName( OUString::createFromAscii( pShortName ) );
-    aShortName = aShortName.toAsciiLowerCase();
+    const OUString aShortName( m_sFactoryName.toAsciiLowerCase() );
     pImpl->aClassName = rName;
     if ( aShortName == "swriter" )
         pImpl->pNameResId = new SfxResId( STR_DOCTYPENAME_SW );
@@ -307,7 +306,7 @@ OUString SfxObjectFactory::GetStandardTemplate( const OUString& rServiceName )
 std::shared_ptr<const SfxFilter> SfxObjectFactory::GetTemplateFilter() const
 {
     sal_uInt16 nVersion=0;
-    SfxFilterMatcher aMatcher ( OUString::createFromAscii( pShortName ) );
+    SfxFilterMatcher aMatcher ( m_sFactoryName );
     SfxFilterMatcherIter aIter( aMatcher );
     std::shared_ptr<const SfxFilter> pFilter;
     std::shared_ptr<const SfxFilter> pTemp = aIter.First();
@@ -342,10 +341,7 @@ const SvGlobalName& SfxObjectFactory::GetClassId() const
 
 OUString SfxObjectFactory::GetFactoryURL() const
 {
-    OUStringBuffer aURLComposer;
-    aURLComposer.append("private:factory/");
-    aURLComposer.appendAscii(pShortName);
-    return aURLComposer.makeStringAndClear();
+    return "private:factory/" + m_sFactoryName;
 }
 
 OUString SfxObjectFactory::GetModuleName() const


More information about the Libreoffice-commits mailing list