summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorSerge Krot <Serge.Krot@cib.de>2018-08-28 14:32:14 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2018-08-30 00:21:23 +0200
commit3559daee24ea1224d3d40e6a86b10cf37e18443f (patch)
treef4ecb418071b7c4c464335003e947f3bdc598a2d /xmloff
parenta1dd8098e6e2a7d5ba4b9c1a2d094db11d3d6b27 (diff)
tdf#101856 Handle properties of nested bookmarks
Change-Id: I1a92d2001e58751c5bbe41f6480f4c46dcc8c9e7 Reviewed-on: https://gerrit.libreoffice.org/59766 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/source/text/XMLTextMarkImportContext.cxx10
-rw-r--r--xmloff/source/text/txtimp.cxx19
2 files changed, 14 insertions, 15 deletions
diff --git a/xmloff/source/text/XMLTextMarkImportContext.cxx b/xmloff/source/text/XMLTextMarkImportContext.cxx
index 6641bec775a8..ea00d0aae2cd 100644
--- a/xmloff/source/text/XMLTextMarkImportContext.cxx
+++ b/xmloff/source/text/XMLTextMarkImportContext.cxx
@@ -174,9 +174,9 @@ void XMLTextMarkImportContext::StartElement(
if (IsXMLToken(GetLocalName(), XML_BOOKMARK_START))
{
- OUString sHidden = xAttrList->getValueByName("loext:hidden");
- OUString sCondition = xAttrList->getValueByName("loext:condition");
- m_rHelper.setBookmarkAttributes(sHidden == "true", sCondition);
+ const OUString sHidden = xAttrList->getValueByName("loext:hidden");
+ const OUString sCondition = xAttrList->getValueByName("loext:condition");
+ m_rHelper.setBookmarkAttributes(m_sBookmarkName, sHidden == "true", sCondition);
}
}
@@ -357,8 +357,8 @@ void XMLTextMarkImportContext::EndElement()
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()));
+ xPropertySet->setPropertyValue("BookmarkHidden", uno::Any(m_rHelper.getBookmarkHidden(m_sBookmarkName)));
+ xPropertySet->setPropertyValue("BookmarkCondition", uno::Any(m_rHelper.getBookmarkCondition(m_sBookmarkName)));
}
}
diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx
index eadf77c4d3a3..e193a8c6f670 100644
--- a/xmloff/source/text/txtimp.cxx
+++ b/xmloff/source/text/txtimp.cxx
@@ -548,8 +548,8 @@ 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;
+ std::map< OUString, bool > m_bBookmarkHidden;
+ std::map< OUString, OUString > m_sBookmarkCondition;
uno::Reference<text::XText> m_xText;
uno::Reference<text::XTextCursor> m_xCursor;
@@ -596,7 +596,6 @@ 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 )
@@ -2952,20 +2951,20 @@ void XMLTextImportHelper::MapCrossRefHeadingFieldsHorribly()
}
}
-void XMLTextImportHelper::setBookmarkAttributes(bool hidden, OUString const& condition)
+void XMLTextImportHelper::setBookmarkAttributes(OUString const& bookmark, bool hidden, OUString const& condition)
{
- m_xImpl->m_bBookmarkHidden = hidden;
- m_xImpl->m_sBookmarkCondition = condition;
+ m_xImpl->m_bBookmarkHidden[bookmark] = hidden;
+ m_xImpl->m_sBookmarkCondition[bookmark] = condition;
}
-bool XMLTextImportHelper::getBookmarkHidden()
+bool XMLTextImportHelper::getBookmarkHidden(OUString const& bookmark) const
{
- return m_xImpl->m_bBookmarkHidden;
+ return m_xImpl->m_bBookmarkHidden[bookmark];
}
-const OUString& XMLTextImportHelper::getBookmarkCondition()
+const OUString& XMLTextImportHelper::getBookmarkCondition(OUString const& bookmark) const
{
- return m_xImpl->m_sBookmarkCondition;
+ return m_xImpl->m_sBookmarkCondition[bookmark];
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */