writerfilter/inc/ooxml/OOXMLDocument.hxx | 2 +- writerfilter/source/filter/ImportFilter.cxx | 8 ++++++++ writerfilter/source/ooxml/OOXMLStreamImpl.cxx | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-)
New commits: commit 2c66056bec75105566c5dcbb9726dd77b83be768 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Fri May 23 11:40:59 2014 +0200 DOCX import: detect document signature Change-Id: Ic84b1f1446d6ab1a1529de4e0a435afbf62915a7 diff --git a/writerfilter/inc/ooxml/OOXMLDocument.hxx b/writerfilter/inc/ooxml/OOXMLDocument.hxx index da25adf..18c21da 100644 --- a/writerfilter/inc/ooxml/OOXMLDocument.hxx +++ b/writerfilter/inc/ooxml/OOXMLDocument.hxx @@ -75,7 +75,7 @@ class OOXMLStream { public: enum StreamType_t { UNKNOWN, DOCUMENT, STYLES, WEBSETTINGS, FONTTABLE, NUMBERING, - FOOTNOTES, ENDNOTES, COMMENTS, THEME, CUSTOMXML, CUSTOMXMLPROPS, ACTIVEX, ACTIVEXBIN, GLOSSARY, CHARTS, EMBEDDINGS, SETTINGS, VBAPROJECT, FOOTER, HEADER }; + FOOTNOTES, ENDNOTES, COMMENTS, THEME, CUSTOMXML, CUSTOMXMLPROPS, ACTIVEX, ACTIVEXBIN, GLOSSARY, CHARTS, EMBEDDINGS, SETTINGS, VBAPROJECT, FOOTER, HEADER, SIGNATURE }; typedef boost::shared_ptr<OOXMLStream> Pointer_t; virtual ~OOXMLStream() {} diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx index 277f2da..2380d1f 100644 --- a/writerfilter/source/filter/ImportFilter.cxx +++ b/writerfilter/source/filter/ImportFilter.cxx @@ -175,6 +175,14 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes oox::GraphicHelper gHelper( m_xContext, xFrame, xVbaPrjStrg ); aVbaProject.importVbaProject( *xVbaPrjStrg, gHelper ); } + + // Document signature. + writerfilter::ooxml::OOXMLStream::Pointer_t pSignatureStream; + pSignatureStream = writerfilter::ooxml::OOXMLDocumentFactory::createStream(m_xContext, xInputStream, bRepairStorage, writerfilter::ooxml::OOXMLStream::SIGNATURE); + if (pSignatureStream->getDocumentStream().is()) + { + // TODO found, handle it. + } } pStream.reset(); diff --git a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx index c000e78..759762a 100644 --- a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx +++ b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx @@ -157,6 +157,7 @@ bool OOXMLStreamImpl::lcl_getTarget(uno::Reference<embed::XRelationshipAccess> static OUString sFooterType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"); static OUString sHeaderType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/header"); static OUString sOleObjectType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"); + static OUString sSignatureType("http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin"); // OOXML strict static OUString sDocumentTypeStrict("http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument"); static OUString sStylesTypeStrict("http://purl.oclc.org/ooxml/officeDocument/relationships/styles"); @@ -264,6 +265,9 @@ bool OOXMLStreamImpl::lcl_getTarget(uno::Reference<embed::XRelationshipAccess> sStreamType = sHeaderType; sStreamTypeStrict = sHeaderTypeStrict; break; + case SIGNATURE: + sStreamType = sSignatureType; + break; default: break; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits