summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2021-04-09 22:04:12 +0100
committerMichael Meeks <michael.meeks@collabora.com>2021-04-10 22:26:47 +0100
commita5fbac223ae42b2a1ad9710546c11913c6f464d7 (patch)
treef7665cbd915dd1a3c33934dd130b00480c60e272
parented27e44048f3e17a76e77b8567c4827ba1571046 (diff)
First cut at extended document comment / Resolve state reading.
Change-Id: Ib10ff736a30a8838e46b72d4f34fde45ee668479
-rw-r--r--writerfilter/inc/ooxml/OOXMLDocument.hxx5
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx5
-rw-r--r--writerfilter/source/ooxml/OOXMLDocumentImpl.cxx6
-rw-r--r--writerfilter/source/ooxml/OOXMLDocumentImpl.hxx2
-rw-r--r--writerfilter/source/ooxml/OOXMLStreamImpl.cxx6
5 files changed, 23 insertions, 1 deletions
diff --git a/writerfilter/inc/ooxml/OOXMLDocument.hxx b/writerfilter/inc/ooxml/OOXMLDocument.hxx
index 7856a6a4dced..4d0949755077 100644
--- a/writerfilter/inc/ooxml/OOXMLDocument.hxx
+++ b/writerfilter/inc/ooxml/OOXMLDocument.hxx
@@ -75,7 +75,9 @@ class OOXMLStream : public virtual SvRefBase
{
public:
enum StreamType_t { UNKNOWN, DOCUMENT, STYLES, WEBSETTINGS, FONTTABLE, NUMBERING,
- FOOTNOTES, ENDNOTES, COMMENTS, THEME, CUSTOMXML, CUSTOMXMLPROPS, GLOSSARY, CHARTS, EMBEDDINGS, SETTINGS, VBAPROJECT, FOOTER, HEADER, VBADATA };
+ FOOTNOTES, ENDNOTES, COMMENTS, COMMENTS_EXTENDED, THEME,
+ CUSTOMXML, CUSTOMXMLPROPS, GLOSSARY, CHARTS, EMBEDDINGS,
+ SETTINGS, VBAPROJECT, FOOTER, HEADER, VBADATA };
typedef tools::SvRef<OOXMLStream> Pointer_t;
/**
@@ -221,6 +223,7 @@ public:
/// Pop context of a previously pushed drawingML shape.
virtual void popShapeContext() = 0;
virtual css::uno::Reference<css::xml::dom::XDocument> getThemeDom( ) = 0;
+ virtual css::uno::Reference<css::xml::dom::XDocument> getCommentsExtended( ) = 0;
virtual css::uno::Reference<css::xml::dom::XDocument> getGlossaryDocDom( ) = 0;
virtual css::uno::Sequence<css::uno::Sequence< css::uno::Any> > getGlossaryDomList() = 0;
virtual css::uno::Sequence<css::uno::Reference<css::xml::dom::XDocument> > getCustomXmlDomList( ) = 0;
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index c180a1250945..b965352e09b6 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -2657,6 +2657,11 @@ void DomainMapper_Impl::PopAnnotation()
xCursor->setString(OUString());
}
}
+ if ()
+ {
+ uno::Reference<beans::XPropertySet> xPropertySet(m_xAnnotationField, uno::UNO_QUERY_THROW);
+ xPropertySet->setPropertyValue("Resolved",
+ }
m_aAnnotationPositions.erase( m_nAnnotationId );
}
catch (uno::Exception const&)
diff --git a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
index b5ef23464f8f..1713e22a0db6 100644
--- a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
+++ b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
@@ -475,6 +475,7 @@ void OOXMLDocumentImpl::resolve(Stream & rStream)
resolveFastSubStream(rStream, OOXMLStream::SETTINGS);
mxThemeDom = importSubStream(OOXMLStream::THEME);
+ mxCommentsExtended = importSubStream(OOXMLStream::COMMENTS_EXTENDED);
resolveFastSubStream(rStream, OOXMLStream::THEME);
mxGlossaryDocDom = importSubStream(OOXMLStream::GLOSSARY);
if (mxGlossaryDocDom.is())
@@ -859,6 +860,11 @@ uno::Reference<xml::dom::XDocument> OOXMLDocumentImpl::getThemeDom( )
return mxThemeDom;
}
+css::uno::Reference<css::xml::dom::XDocument> OOXMLDocumentImpl::getCommentsExtended(
+{
+ return mxCommentsExtended;
+}
+
uno::Sequence<uno::Reference<xml::dom::XDocument> > OOXMLDocumentImpl::getCustomXmlDomList( )
{
return mxCustomXmlDomList;
diff --git a/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx b/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx
index 6b290bc489d9..598155ef26fa 100644
--- a/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx
+++ b/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx
@@ -47,6 +47,7 @@ class OOXMLDocumentImpl : public OOXMLDocument
/// Stack of shape contexts, 1 element for VML, 1 element / nesting level for drawingML.
std::stack< css::uno::Reference<css::xml::sax::XFastShapeContextHandler> > maShapeContexts;
css::uno::Reference<css::xml::dom::XDocument> mxThemeDom;
+ css::uno::Reference<css::xml::dom::XDocument> mxCommentsExtended;
css::uno::Sequence<css::uno::Reference<css::xml::dom::XDocument> > mxCustomXmlDomList;
css::uno::Sequence<css::uno::Reference<css::xml::dom::XDocument> > mxCustomXmlDomPropsList;
css::uno::Reference<css::xml::dom::XDocument> mxCustomXmlProsDom;
@@ -129,6 +130,7 @@ public:
void pushShapeContext() override;
void popShapeContext() override;
virtual css::uno::Reference<css::xml::dom::XDocument> getThemeDom() override;
+ virtual css::uno::Reference<css::xml::dom::XDocument> getCommentsExtended( ) override;
virtual css::uno::Sequence<css::uno::Reference<css::xml::dom::XDocument> > getCustomXmlDomList() override;
virtual css::uno::Sequence<css::uno::Reference<css::xml::dom::XDocument> > getCustomXmlDomPropsList() override;
virtual css::uno::Reference<css::xml::dom::XDocument> getGlossaryDocDom() override;
diff --git a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx
index 2b773e02cf5e..3056eeea88ce 100644
--- a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx
+++ b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx
@@ -137,6 +137,7 @@ bool OOXMLStreamImpl::lcl_getTarget(const uno::Reference<embed::XRelationshipAcc
static const char sFootnotesType[] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes";
static const char sEndnotesType[] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes";
static const char sCommentsType[] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";
+ static const char sCommentsExtendedType[] = "http://schemas.microsoft.com/office/2011/relationships/commentsExtended";
static const char sThemeType[] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";
static const char sCustomType[] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml";
static const char sCustomPropsType[] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps";
@@ -156,6 +157,7 @@ bool OOXMLStreamImpl::lcl_getTarget(const uno::Reference<embed::XRelationshipAcc
static const char sFootnotesTypeStrict[] = "http://purl.oclc.org/ooxml/officeDocument/relationships/footnotes";
static const char sEndnotesTypeStrict[] = "http://purl.oclc.org/ooxml/officeDocument/relationships/endnotes";
static const char sCommentsTypeStrict[] = "http://purl.oclc.org/ooxml/officeDocument/relationships/comments";
+ static const char sCommentsExtendedTypeStrict[] = "http://purl.oclc.org/ooxml/officeDocument/relationships/commentsExtended"; // TESTME.
static const char sThemeTypeStrict[] = "http://purl.oclc.org/ooxml/officeDocument/relationships/theme";
static const char sCustomTypeStrict[] = "http://purl.oclc.org/ooxml/officeDocument/relationships/customXml";
static const char sCustomPropsTypeStrict[] = "http://purl.oclc.org/ooxml/officeDocument/relationships/customXmlProps";
@@ -211,6 +213,10 @@ bool OOXMLStreamImpl::lcl_getTarget(const uno::Reference<embed::XRelationshipAcc
sStreamType = sCommentsType;
sStreamTypeStrict = sCommentsTypeStrict;
break;
+ case COMMENTS_EXTENDED:
+ sStreamType = sCommentsExtendedType;
+ sStreamTypeStrict = sCommentsExtendedTypeStrict;
+ break;
case THEME:
sStreamType = sThemeType;
sStreamTypeStrict = sThemeTypeStrict;