summaryrefslogtreecommitdiff
path: root/writerfilter/source/filter/ImportFilter.cxx
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2012-09-21 21:32:11 +0100
committerMichael Meeks <michael.meeks@suse.com>2012-09-21 21:33:59 +0100
commitff300e59e74ee88aa6a4981b57a51af416c9e991 (patch)
treefd927304bd49c3bea36f63d1da892628c5ba3c60 /writerfilter/source/filter/ImportFilter.cxx
parent6ba1a664a94cfbfbc7c280b15cee35122710ff86 (diff)
fdo#49819 - allow slightly inconsistent docx files to be repaired
Diffstat (limited to 'writerfilter/source/filter/ImportFilter.cxx')
-rw-r--r--writerfilter/source/filter/ImportFilter.cxx7
1 files changed, 3 insertions, 4 deletions
diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx
index 2eef1c12c43f..207342ada465 100644
--- a/writerfilter/source/filter/ImportFilter.cxx
+++ b/writerfilter/source/filter/ImportFilter.cxx
@@ -63,6 +63,7 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
else if (m_xDstDoc.is())
{
MediaDescriptor aMediaDesc( aDescriptor );
+ bool bRepairStorage = aMediaDesc.getUnpackedValueOrDefault( "RepairPackage", false );
OUString sFilterName = aMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_FILTERNAME(), OUString() );
uno::Reference< io::XInputStream > xInputStream;
@@ -77,9 +78,7 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
}
if ( !xInputStream.is() )
- {
return sal_False;
- }
#ifdef DEBUG_IMPORT
OUString sURL = aMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_URL(), OUString() );
@@ -101,11 +100,11 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
m_sFilterName == "writer_OOXML" || m_sFilterName == "writer_OOXML_Text_Template" ) ?
writerfilter::dmapper::DOCUMENT_OOXML : writerfilter::dmapper::DOCUMENT_DOC;
- writerfilter::Stream::Pointer_t pStream(new writerfilter::dmapper::DomainMapper(m_xContext, xInputStream, m_xDstDoc, eType));
+ writerfilter::Stream::Pointer_t pStream(new writerfilter::dmapper::DomainMapper(m_xContext, xInputStream, m_xDstDoc, bRepairStorage, eType));
//create the tokenizer and domain mapper
if( eType == writerfilter::dmapper::DOCUMENT_OOXML )
{
- writerfilter::ooxml::OOXMLStream::Pointer_t pDocStream = writerfilter::ooxml::OOXMLDocumentFactory::createStream(m_xContext, xInputStream);
+ writerfilter::ooxml::OOXMLStream::Pointer_t pDocStream = writerfilter::ooxml::OOXMLDocumentFactory::createStream(m_xContext, xInputStream, bRepairStorage);
writerfilter::ooxml::OOXMLDocument::Pointer_t pDocument(writerfilter::ooxml::OOXMLDocumentFactory::createDocument(pDocStream));
uno::Reference<frame::XModel> xModel(m_xDstDoc, uno::UNO_QUERY_THROW);