diff options
author | Serge Krot <Serge.Krot@cib.de> | 2018-03-01 13:00:33 +0100 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2018-03-01 13:34:29 +0100 |
commit | 88b6b1a8c149163d226eb3295930e3407bcb8b5b (patch) | |
tree | 4b8c02410327431855de9dc48cfb5fd5e1b2ad30 /xmloff | |
parent | f3339871c7d8d77f76dea56b3126a1d7c3bcbe48 (diff) |
tdf#101856 Backport parsing of bookmark properties
Change-Id: I7654aa93d4d86a5d36201832ac3609b9f4c30e03
Reviewed-on: https://gerrit.libreoffice.org/50565
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/source/text/XMLTextMarkImportContext.cxx | 13 | ||||
-rw-r--r-- | xmloff/source/text/txtimp.cxx | 20 | ||||
-rw-r--r-- | xmloff/source/text/txtparae.cxx | 2 |
3 files changed, 35 insertions, 0 deletions
diff --git a/xmloff/source/text/XMLTextMarkImportContext.cxx b/xmloff/source/text/XMLTextMarkImportContext.cxx index 22027c3edcb2..5e30b56b65cc 100644 --- a/xmloff/source/text/XMLTextMarkImportContext.cxx +++ b/xmloff/source/text/XMLTextMarkImportContext.cxx @@ -173,6 +173,13 @@ void XMLTextMarkImportContext::StartElement( } m_rHelper.pushFieldCtx( m_sBookmarkName, m_sFieldName ); } + + if (IsXMLToken(GetLocalName(), XML_BOOKMARK_START)) + { + OUString sHidden = xAttrList->getValueByName("loext:hidden"); + OUString sCondition = xAttrList->getValueByName("loext:condition"); + m_rHelper.setBookmarkAttributes(sHidden == "true", sCondition); + } } void XMLTextMarkImportContext::EndElement() @@ -353,6 +360,12 @@ void XMLTextMarkImportContext::EndElement() GetImport().GetRDFaImportHelper().AddRDFa( xMeta, xRDFaAttributes); } + const Reference<XPropertySet> xPropertySet(xContent, UNO_QUERY); + if (xPropertySet.is()) + { + xPropertySet->setPropertyValue("BookmarkHidden", uno::Any(m_rHelper.getBookmarkHidden())); + xPropertySet->setPropertyValue("BookmarkCondition", uno::Any(m_rHelper.getBookmarkCondition())); + } } if ((lcl_MarkType)nTmp==TypeFieldmarkEnd) { diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx index 2b8c38aec37f..1395e1809a29 100644 --- a/xmloff/source/text/txtimp.cxx +++ b/xmloff/source/text/txtimp.cxx @@ -541,6 +541,9 @@ struct XMLTextImportHelper::Impl // Used for frame deduplication, the name of the last frame imported directly before the current one OUString msLastImportedFrameName; + bool m_bBookmarkHidden; + OUString m_sBookmarkCondition; + uno::Reference<text::XText> m_xText; uno::Reference<text::XTextCursor> m_xCursor; uno::Reference<text::XTextRange> m_xCursorAsRange; @@ -585,6 +588,7 @@ struct XMLTextImportHelper::Impl bool const bProgress, bool const bBlockMode, bool const bOrganizerMode) : m_xTextListsHelper( new XMLTextListsHelper() ) + , m_bBookmarkHidden( false ) // XML import: reconstrution of assignment of paragraph style to outline levels (#i69629#) , m_xServiceFactory( rModel, UNO_QUERY ) , m_rSvXMLImport( rImport ) @@ -2934,4 +2938,20 @@ void XMLTextImportHelper::MapCrossRefHeadingFieldsHorribly() } } +void XMLTextImportHelper::setBookmarkAttributes(bool hidden, OUString const& condition) +{ + m_xImpl->m_bBookmarkHidden = hidden; + m_xImpl->m_sBookmarkCondition = condition; +} + +bool XMLTextImportHelper::getBookmarkHidden() +{ + return m_xImpl->m_bBookmarkHidden; +} + +const OUString& XMLTextImportHelper::getBookmarkCondition() +{ + return m_xImpl->m_sBookmarkCondition; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx index 763058f270b7..3251391ff20a 100644 --- a/xmloff/source/text/txtparae.cxx +++ b/xmloff/source/text/txtparae.cxx @@ -1250,6 +1250,8 @@ XMLTextParagraphExport::XMLTextParagraphExport( sTextFieldStart( "TextFieldStart" ), sTextFieldEnd( "TextFieldEnd" ), sTextFieldStartEnd( "TextFieldStartEnd" ), + sBookmarkHidden("BookmarkHidden"), + sBookmarkCondition("BookmarkCondition"), aCharStyleNamesPropInfoCache( sCharStyleNames ) { rtl::Reference < XMLPropertySetMapper > xPropMapper(new XMLTextPropertySetMapper( TextPropMap::PARA, true )); |