xmloff: create SchXMLExport_Content instances with an uno constructor

See tdf#74608 for motivation.

Change-Id: I49f00c08635e571d75e5190d55cbe1f279566797
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94255
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 0b439c0..f259d07 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -332,6 +332,7 @@ core_constructor_list = [
    "com_sun_star_comp_Chart_XMLOasisContentExporter_get_implementation",
    "com_sun_star_comp_Chart_XMLExporter_get_implementation",
    "com_sun_star_comp_Chart_XMLStylesExporter_get_implementation",
    "com_sun_star_comp_Chart_XMLContentExporter_get_implementation",
    "com_sun_star_comp_Chart_XMLOasisStylesImporter_get_implementation",
    "com_sun_star_comp_Chart_XMLOasisContentImporter_get_implementation",
    "com_sun_star_comp_Chart_XMLOasisExporter_get_implementation",
diff --git a/xmloff/inc/facreg.hxx b/xmloff/inc/facreg.hxx
index c97d278..25091ef 100644
--- a/xmloff/inc/facreg.hxx
+++ b/xmloff/inc/facreg.hxx
@@ -31,13 +31,6 @@ namespace com::sun::star {
    namespace uno { class XInterface; }
}

// chart OOo export
OUString SchXMLExport_Content_getImplementationName() throw();
css::uno::Sequence<OUString> SchXMLExport_Content_getSupportedServiceNames() throw();
/// @throws css::uno::Exception
css::uno::Reference<css::uno::XInterface> SchXMLExport_Content_createInstance(
    css::uno::Reference<css::lang::XMultiServiceFactory> const & rSMgr);

// meta export OOo
OUString XMLMetaExportOOO_getImplementationName() throw();
css::uno::Sequence<OUString> XMLMetaExportOOO_getSupportedServiceNames() throw();
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
index 6c2f7b1..2b45498 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -3820,19 +3820,13 @@ com_sun_star_comp_Chart_XMLOasisStylesExporter_get_implementation(
                                          SvXMLExportFlags::STYLES | SvXMLExportFlags::OASIS));
}

Sequence< OUString > SchXMLExport_Content_getSupportedServiceNames() throw()
extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface*
com_sun_star_comp_Chart_XMLContentExporter_get_implementation(
    uno::XComponentContext* pCtx, uno::Sequence<uno::Any> const& /*rSeq*/)
{
    return Sequence< OUString > { "com.sun.star.comp.Chart.XMLContentExporter" };
}

OUString SchXMLExport_Content_getImplementationName() throw()
{
    return "SchXMLExport.Content";
}

Reference< uno::XInterface > SchXMLExport_Content_createInstance(const Reference< lang::XMultiServiceFactory > & rSMgr)
{
    return static_cast<cppu::OWeakObject*>(new SchXMLExport( comphelper::getComponentContext(rSMgr), SchXMLExport_Content_getImplementationName(), SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::CONTENT | SvXMLExportFlags::FONTDECLS ));
    return cppu::acquire(new SchXMLExport(pCtx, "SchXMLExport.Content",
                                          SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::CONTENT
                                              | SvXMLExportFlags::FONTDECLS));
}

extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface*
diff --git a/xmloff/source/core/facreg.cxx b/xmloff/source/core/facreg.cxx
index e874fd8..48b12ad 100644
--- a/xmloff/source/core/facreg.cxx
+++ b/xmloff/source/core/facreg.cxx
@@ -54,11 +54,8 @@ XMLOFF_DLLPUBLIC void * xo_component_getFactory( const char * pImplName, void * 

        const sal_Int32 nImplNameLen = strlen( pImplName );

        // chart OOo export
        SINGLEFACTORY( SchXMLExport_Content )

        // meta import/export OOo
        else SINGLEFACTORY( XMLMetaExportOOO )
        SINGLEFACTORY( XMLMetaExportOOO )

        // auto text import/export
        else SINGLEFACTORY( XMLAutoTextEventExport )
diff --git a/xmloff/util/xo.component b/xmloff/util/xo.component
index 123b7b4..cbb4efb 100644
--- a/xmloff/util/xo.component
+++ b/xmloff/util/xo.component
@@ -23,7 +23,8 @@
      constructor="com_sun_star_comp_Chart_XMLExporter_get_implementation">
    <service name="com.sun.star.comp.Chart.XMLExporter"/>
  </implementation>
  <implementation name="SchXMLExport.Content">
  <implementation name="SchXMLExport.Content"
    constructor="com_sun_star_comp_Chart_XMLContentExporter_get_implementation">
    <service name="com.sun.star.comp.Chart.XMLContentExporter"/>
  </implementation>
  <implementation name="SchXMLExport.Oasis.Compact"