21#include <rtl/ustring.hxx>
26#include <com/sun/star/io/XActiveDataSource.hpp>
27#include <com/sun/star/xml/XImportFilter.hpp>
28#include <com/sun/star/xml/XImportFilter2.hpp>
29#include <com/sun/star/xml/XExportFilter.hpp>
30#include <com/sun/star/task/XStatusIndicator.hpp>
31#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
32#include <com/sun/star/style/XStyleLoader.hpp>
33#include <com/sun/star/frame/XModel.hpp>
37#include <com/sun/star/beans/PropertyAttribute.hpp>
38#include <com/sun/star/beans/XPropertySet.hpp>
64 const OUString sXMLImportService =
msUserData[2];
71 if (xStatusIndicator.is()){
72 xStatusIndicator->start(FilterResId(STR_FILTER_DOC_LOADING), 4);
76 if (aMediaMap.find(OUString(
"URL" ))->second >>= aBaseURI)
89 { OUString(
"DefaultDocumentSettings"), 0,
95 xInfoSet->setPropertyValue(
"BaseURI",
Any( aBaseURI ));
98 auto It = aMediaMap.find(OUString(
"FilterName"));
99 if (It != aMediaMap.end() && (It->second >>= aFilterName)
100 && aFilterName ==
"OpenDocument Text Flat XML")
102 PropertyValue EmptyDbFieldHidesPara(
"EmptyDbFieldHidesPara", 0,
Any(
false),
103 PropertyState::PropertyState_DIRECT_VALUE);
105 xInfoSet->setPropertyValue(
"DefaultDocumentSettings",
Any(aSettings));
116 xImporter->setTargetDocument (
mxDoc );
118 if (xStatusIndicator.is()){
119 xStatusIndicator->setValue(nSteps++);
126 mxContext->getServiceManager()->createInstanceWithContext(udConvertClass,
mxContext), UNO_QUERY);
127 if (!xConvBridge.is()) {
128 SAL_WARN(
"filter.xmlfa",
"XmlFilterAdaptor: unable to create service " << udConvertClass);
131 if (xStatusIndicator.is())
132 xStatusIndicator->setValue(nSteps++);
140 xModel->lockControllers();
144 xModel->unlockControllers();
152 if(xstyleLoader.is()){
166 if (xStatusIndicator.is()){
167 xStatusIndicator->setValue(nSteps++);
175 assert(xFastParser || xDocHandler);
176 if (xConverter2 && xFastParser)
178 if (!xConverter2->importer(aDescriptor,xFastParser,
msUserData)) {
179 if (xStatusIndicator.is())
180 xStatusIndicator->end();
184 else if (xConverter1 && xDocHandler)
186 if (!xConverter1->importer(aDescriptor,xDocHandler,
msUserData)) {
187 if (xStatusIndicator.is())
188 xStatusIndicator->end();
192 else if (xConverter1 && xFastParser)
194 auto pImport =
static_cast<SvXMLImport*
>(xFastParser.get());
196 if (!xConverter1->importer(aDescriptor,xLegacyDocHandler,
msUserData)) {
197 if (xStatusIndicator.is())
198 xStatusIndicator->end();
204 SAL_WARN(
"filter.xmlfa",
"no working combination found");
206 if (xStatusIndicator.is())
207 xStatusIndicator->end();
214 if (xStatusIndicator.is())
215 xStatusIndicator->end();
218 if (xStatusIndicator.is()) {
219 xStatusIndicator->setValue(nSteps++);
220 xStatusIndicator->end();
237 if (xStatusIndicator.is())
238 xStatusIndicator->start(FilterResId(STR_FILTER_DOC_SAVING), 3);
243 SAL_WARN(
"filter.xmlfa",
"XmlFilterAdaptor: unable to create service " << udConvertClass);
247 if (xStatusIndicator.is())
248 xStatusIndicator->setValue(nSteps++);
252 if (xStatusIndicator.is())
253 xStatusIndicator->end();
256 if (xStatusIndicator.is())
257 xStatusIndicator->setValue(nSteps++);
269 bool bExportTextNumberElementForListItems =
271 msUserData[7].equalsIgnoreAsciiCase(
"true") );
275 if (aMediaMap.find(OUString(
"URL" ))->second >>= aBaseURI)
293 xInfoSet->setPropertyValue(
"UsePrettyPrinting",
Any( bPrettyPrint ));
294 xInfoSet->setPropertyValue(
295 "ExportTextNumberElement",
296 Any( bExportTextNumberElementForListItems ));
297 xInfoSet->setPropertyValue(
"BaseURI",
Any( aBaseURI ));
301 udExport, aAnys,
mxContext ), UNO_QUERY_THROW );
304 xExporter->setSourceDocument(
mxDoc );
309 if (xStatusIndicator.is())
310 xStatusIndicator->setValue(nSteps++);
313 if (!xFilter->filter(aDescriptor))
315 if (xStatusIndicator.is())
316 xStatusIndicator->end();
323 if (xStatusIndicator.is())
324 xStatusIndicator->end();
329 if (xStatusIndicator.is())
330 xStatusIndicator->end();
366 "TemplateName", OUString());
373 return "com.sun.star.comp.Writer.XmlFilterAdaptor";
383 return {
"com.sun.star.document.ExportFilter",
"com.sun.star.document.ImportFilter" };
386extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
388 css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any>
const&)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * filter_XmlFilterAdaptor_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
OUString GetMainURL(DecodeMechanism eMechanism, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
OUString SubstituteVariable(const OUString &rVar) const
virtual void SAL_CALL cancel() override
bool exportImpl(const css::uno::Sequence< css::beans::PropertyValue > &aDescriptor)
bool importImpl(const css::uno::Sequence< css::beans::PropertyValue > &aDescriptor)
virtual sal_Bool SAL_CALL filter(const css::uno::Sequence< css::beans::PropertyValue > &aDescriptor) override
virtual void SAL_CALL setTargetDocument(const css::uno::Reference< css::lang::XComponent > &xDoc) override
css::uno::Reference< css::lang::XComponent > mxDoc
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
css::uno::Reference< css::uno::XComponentContext > mxContext
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual OUString SAL_CALL getImplementationName() override
css::uno::Sequence< OUString > msUserData
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
virtual void SAL_CALL setSourceDocument(const css::uno::Reference< css::lang::XComponent > &xDoc) override
css::uno::Type const & get()
#define TOOLS_WARN_EXCEPTION(area, stream)
Reference< XTypeConverter > xConverter
Sequence< PropertyValue > aArguments
#define SAL_WARN(area, stream)
COMPHELPER_DLLPUBLIC bool isFileUrl(std::u16string_view url)
COMPHELPER_DLLPUBLIC css::uno::Reference< css::beans::XPropertySet > GenericPropertySet_CreateInstance(PropertySetInfo *pInfo)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
HashMap_OWString_Interface aMap
Reference< XModel > xModel