diff options
author | Michael Stahl <michael.stahl@allotropia.de> | 2024-02-06 13:19:48 +0100 |
---|---|---|
committer | Michael Stahl <michael.stahl@allotropia.de> | 2024-02-06 15:27:03 +0100 |
commit | 115569f6895f48b28e8e9e649ffbc72968a3bdeb (patch) | |
tree | 4c62b74adfe76e41016e37df8b5e4e2fb7a71b00 /writerfilter/source/dmapper/DomainMapper_Impl.cxx | |
parent | 15633d637e6296df218d56130d041660bf0e8317 (diff) |
writerfilter: move yet more members to SubstreamContext
Change-Id: I708375204226fbad502155f4d2efc81ecc206a31
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163052
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Diffstat (limited to 'writerfilter/source/dmapper/DomainMapper_Impl.cxx')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 66 |
1 files changed, 31 insertions, 35 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 1d429c82463f..d4625035cd85 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -340,8 +340,6 @@ DomainMapper_Impl::DomainMapper_Impl( m_bSetCitation( false ), m_bSetDateValue( false ), m_bIsFirstSection( true ), - m_bSdtEndDeferred(false), - m_bParaSdtEndDeferred(false), m_bStartTOC(false), m_bStartTOCHeaderFooter(false), m_bStartedTOC(false), @@ -357,15 +355,12 @@ DomainMapper_Impl::DomainMapper_Impl( m_bInNumberingImport(false), m_bInAnyTableImport( false ), m_bDiscardHeaderFooter( false ), - m_bHasFootnoteStyle(false), - m_bCheckFootnoteStyle(false), m_eSkipFootnoteState(SkipFootnoteSeparator::OFF), m_nFootnotes(-1), m_nEndnotes(-1), m_nFirstFootnoteIndex(-1), m_nFirstEndnoteIndex(-1), m_bLineNumberingSet( false ), - m_bIsInFootnoteProperties( false ), m_bIsParaMarkerChange( false ), m_bIsParaMarkerMove( false ), m_bRedlineImageInPreviousRun( false ), @@ -380,7 +375,6 @@ DomainMapper_Impl::DomainMapper_Impl( m_aSmartTagHandler(m_xComponentContext, m_xTextDocument), m_xInsertTextRange(rMediaDesc.getUnpackedValueOrDefault("TextInsertModeRange", uno::Reference<text::XTextRange>())), m_xAltChunkStartingRange(rMediaDesc.getUnpackedValueOrDefault("AltChunkStartingRange", uno::Reference<text::XTextRange>())), - m_bIsInTextBox(false), m_bIsNewDoc(!rMediaDesc.getUnpackedValueOrDefault("InsertMode", false)), m_bIsAltChunk(rMediaDesc.getUnpackedValueOrDefault("AltChunkMode", false)), m_bIsReadGlossaries(rMediaDesc.getUnpackedValueOrDefault("ReadGlossaries", false)), @@ -680,7 +674,7 @@ void DomainMapper_Impl::RemoveDummyParaForTableInSection() void DomainMapper_Impl::AddDummyParaForTableInSection() { // Shapes and textboxes can't have sections. - if (IsInShape() || m_bIsInTextBox) + if (IsInShape() || m_StreamStateStack.top().bIsInTextBox) return; if (!m_aTextAppendStack.empty()) @@ -1403,7 +1397,7 @@ OUString DomainMapper_Impl::GetCurrentParaStyleName() // tdf#134784 except in the case of first paragraph of shapes to avoid bad fallback. // TODO fix this "highly inaccurate" m_sCurrentParaStyleName if ( !IsInShape() ) - sName = m_sCurrentParaStyleName; + sName = m_StreamStateStack.top().sCurrentParaStyleName; PropertyMapPtr pParaContext = GetTopContextOfType(CONTEXT_PARAGRAPH); if ( pParaContext && pParaContext->isSet(PROP_PARA_STYLE_NAME) ) @@ -1642,22 +1636,22 @@ void DomainMapper_Impl::clearDeferredBreaks() void DomainMapper_Impl::setSdtEndDeferred(bool bSdtEndDeferred) { - m_bSdtEndDeferred = bSdtEndDeferred; + m_StreamStateStack.top().bSdtEndDeferred = bSdtEndDeferred; } bool DomainMapper_Impl::isSdtEndDeferred() const { - return m_bSdtEndDeferred; + return m_StreamStateStack.top().bSdtEndDeferred; } void DomainMapper_Impl::setParaSdtEndDeferred(bool bParaSdtEndDeferred) { - m_bParaSdtEndDeferred = bParaSdtEndDeferred; + m_StreamStateStack.top().bParaSdtEndDeferred = bParaSdtEndDeferred; } bool DomainMapper_Impl::isParaSdtEndDeferred() const { - return m_bParaSdtEndDeferred; + return m_StreamStateStack.top().bParaSdtEndDeferred; } static void lcl_MoveBorderPropertiesToFrame(std::vector<beans::PropertyValue>& rFrameProperties, @@ -3057,7 +3051,8 @@ void DomainMapper_Impl::applyToggleAttributes(const PropertyMapPtr& pPropertyMap nCharStyleRelief != css::awt::FontRelief::NONE || bCharStyleContoured || bCharStyleShadowed || nCharStyleStrikeThrough == awt::FontStrikeout::SINGLE || bCharStyleHidden) { - uno::Reference<beans::XPropertySet> xParaStylePropertySet = GetParagraphStyles()->getByName(m_sCurrentParaStyleName).get<uno::Reference<beans::XPropertySet>>(); + uno::Reference<beans::XPropertySet> const xParaStylePropertySet = + GetParagraphStyles()->getByName(m_StreamStateStack.top().sCurrentParaStyleName).get<uno::Reference<beans::XPropertySet>>(); float fParaStyleBold = css::awt::FontWeight::NORMAL; float fParaStyleBoldComplex = css::awt::FontWeight::NORMAL; css::awt::FontSlant eParaStylePosture = css::awt::FontSlant_NONE; @@ -4200,15 +4195,15 @@ void DomainMapper_Impl::StartCustomFootnote(const PropertyMapPtr pContext) return; assert(pContext->GetFootnote().is()); - m_bHasFootnoteStyle = true; - m_bCheckFootnoteStyle = !pContext->GetFootnoteStyle().isEmpty(); + m_StreamStateStack.top().bHasFootnoteStyle = true; + m_StreamStateStack.top().bCheckFootnoteStyle = !pContext->GetFootnoteStyle().isEmpty(); m_pFootnoteContext = pContext; } void DomainMapper_Impl::EndCustomFootnote() { - m_bHasFootnoteStyle = false; - m_bCheckFootnoteStyle = false; + m_StreamStateStack.top().bHasFootnoteStyle = false; + m_StreamStateStack.top().bCheckFootnoteStyle = false; } void DomainMapper_Impl::PushAnnotation() @@ -4668,14 +4663,14 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape m_aAnchoredStack.push(AnchoredContext(xTextContent)); uno::Reference<beans::XPropertySet> xShapePropertySet(xShape, uno::UNO_QUERY); - m_xEmbedded.set(m_xTextFactory->createInstance("com.sun.star.text.TextEmbeddedObject"), uno::UNO_QUERY_THROW); - uno::Reference<beans::XPropertySet> xEmbeddedProperties(m_xEmbedded, uno::UNO_QUERY_THROW); + m_StreamStateStack.top().xEmbedded.set(m_xTextFactory->createInstance("com.sun.star.text.TextEmbeddedObject"), uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xEmbeddedProperties(m_StreamStateStack.top().xEmbedded, uno::UNO_QUERY_THROW); xEmbeddedProperties->setPropertyValue(getPropertyName(PROP_EMBEDDED_OBJECT), xShapePropertySet->getPropertyValue(getPropertyName(PROP_EMBEDDED_OBJECT))); xEmbeddedProperties->setPropertyValue(getPropertyName(PROP_ANCHOR_TYPE), uno::Any(text::TextContentAnchorType_AS_CHARACTER)); // So that the original bitmap-only shape will be replaced by the embedded object. m_aAnchoredStack.top().bToRemove = true; m_aTextAppendStack.pop(); - appendTextContent(m_xEmbedded, uno::Sequence<beans::PropertyValue>()); + appendTextContent(m_StreamStateStack.top().xEmbedded, uno::Sequence<beans::PropertyValue>()); } else { @@ -4816,7 +4811,7 @@ void DomainMapper_Impl::UpdateEmbeddedShapeProps(const uno::Reference< drawing:: if (!xShape.is()) return; - uno::Reference<beans::XPropertySet> xEmbeddedProperties(m_xEmbedded, uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> const xEmbeddedProperties(m_StreamStateStack.top().xEmbedded, uno::UNO_QUERY_THROW); awt::Size aSize = xShape->getSize( ); xEmbeddedProperties->setPropertyValue(getPropertyName(PROP_WIDTH), uno::Any(sal_Int32(aSize.Width))); xEmbeddedProperties->setPropertyValue(getPropertyName(PROP_HEIGHT), uno::Any(sal_Int32(aSize.Height))); @@ -4826,7 +4821,7 @@ void DomainMapper_Impl::UpdateEmbeddedShapeProps(const uno::Reference< drawing:: xShapeProps->getPropertyValue(getPropertyName(PROP_DESCRIPTION))); xEmbeddedProperties->setPropertyValue(getPropertyName(PROP_TITLE), xShapeProps->getPropertyValue(getPropertyName(PROP_TITLE))); - uno::Reference<container::XNamed> const xEmbedName(m_xEmbedded, uno::UNO_QUERY); + uno::Reference<container::XNamed> const xEmbedName(m_StreamStateStack.top().xEmbedded, uno::UNO_QUERY); uno::Reference<container::XNamed> const xShapeName(xShape, uno::UNO_QUERY); OUString const name(xShapeName->getName()); if (!name.isEmpty()) // setting empty name will throw @@ -5082,22 +5077,22 @@ void DomainMapper_Impl::HandleLineBreakClear(sal_Int32 nClear) { case NS_ooxml::LN_Value_ST_BrClear_left: // SwLineBreakClear::LEFT - m_oLineBreakClear = 1; + m_StreamStateStack.top().oLineBreakClear = 1; break; case NS_ooxml::LN_Value_ST_BrClear_right: // SwLineBreakClear::RIGHT - m_oLineBreakClear = 2; + m_StreamStateStack.top().oLineBreakClear = 2; break; case NS_ooxml::LN_Value_ST_BrClear_all: // SwLineBreakClear::ALL - m_oLineBreakClear = 3; + m_StreamStateStack.top().oLineBreakClear = 3; break; } } void DomainMapper_Impl::HandleLineBreak(const PropertyMapPtr& pPropertyMap) { - if (!m_oLineBreakClear.has_value()) + if (!m_StreamStateStack.top().oLineBreakClear.has_value()) { appendTextPortion("\n", pPropertyMap); return; @@ -5108,10 +5103,10 @@ void DomainMapper_Impl::HandleLineBreak(const PropertyMapPtr& pPropertyMap) uno::Reference<text::XTextContent> xLineBreak( GetTextFactory()->createInstance("com.sun.star.text.LineBreak"), uno::UNO_QUERY); uno::Reference<beans::XPropertySet> xLineBreakProps(xLineBreak, uno::UNO_QUERY); - xLineBreakProps->setPropertyValue("Clear", uno::Any(*m_oLineBreakClear)); + xLineBreakProps->setPropertyValue("Clear", uno::Any(*m_StreamStateStack.top().oLineBreakClear)); appendTextContent(xLineBreak, pPropertyMap->GetPropertyValues()); } - m_oLineBreakClear.reset(); + m_StreamStateStack.top().oLineBreakClear.reset(); } static sal_Int16 lcl_ParseNumberingType( std::u16string_view rCommand ) @@ -5710,7 +5705,7 @@ void DomainMapper_Impl::ChainTextFrames() void DomainMapper_Impl::PushTextBoxContent() { - if (m_bIsInTextBox) + if (m_StreamStateStack.top().bIsInTextBox) return; try @@ -5725,7 +5720,7 @@ void DomainMapper_Impl::PushTextBoxContent() m_xPendingTextBoxFrames.push(xTBoxFrame); m_aTextAppendStack.push(TextAppendContext(uno::Reference<text::XTextAppend>(xTBoxFrame, uno::UNO_QUERY_THROW), {})); - m_bIsInTextBox = true; + m_StreamStateStack.top().bIsInTextBox = true; appendTableManager(); appendTableHandler(); @@ -5739,7 +5734,7 @@ void DomainMapper_Impl::PushTextBoxContent() void DomainMapper_Impl::PopTextBoxContent() { - if (!m_bIsInTextBox || m_xPendingTextBoxFrames.empty()) + if (!m_StreamStateStack.top().bIsInTextBox || m_xPendingTextBoxFrames.empty()) return; if (uno::Reference<text::XTextFrame>(m_aTextAppendStack.top().xTextAppend, uno::UNO_QUERY).is()) @@ -5752,7 +5747,7 @@ void DomainMapper_Impl::PopTextBoxContent() RemoveLastParagraph(); m_aTextAppendStack.pop(); - m_bIsInTextBox = false; + m_StreamStateStack.top().bIsInTextBox = false; } } @@ -9163,7 +9158,8 @@ void DomainMapper_Impl::ImportGraphic(const writerfilter::Reference<Properties> // Update the shape properties if it is embedded object. - if(m_xEmbedded.is()){ + if (m_StreamStateStack.top().xEmbedded.is()) + { if (m_pGraphicImport->GetXShapeObject()) m_pGraphicImport->GetXShapeObject()->setPosition( m_pGraphicImport->GetGraphicObjectPosition()); @@ -9172,7 +9168,7 @@ void DomainMapper_Impl::ImportGraphic(const writerfilter::Reference<Properties> UpdateEmbeddedShapeProps(xShape); if (m_eGraphicImportType == IMPORT_AS_DETECTED_ANCHOR) { - uno::Reference<beans::XPropertySet> xEmbeddedProps(m_xEmbedded, uno::UNO_QUERY); + uno::Reference<beans::XPropertySet> const xEmbeddedProps(m_StreamStateStack.top().xEmbedded, uno::UNO_QUERY); xEmbeddedProps->setPropertyValue("AnchorType", uno::Any(text::TextContentAnchorType_AT_CHARACTER)); xEmbeddedProps->setPropertyValue("IsFollowingTextFlow", uno::Any(m_pGraphicImport->GetLayoutInCell())); uno::Reference<beans::XPropertySet> xShapeProps(xShape, uno::UNO_QUERY); @@ -9258,7 +9254,7 @@ void DomainMapper_Impl::ImportGraphic(const writerfilter::Reference<Properties> // Clear the reference, so in case the embedded object is inside a // TextFrame, we won't try to resize it (to match the size of the // TextFrame) here. - m_xEmbedded.clear(); + m_StreamStateStack.top().xEmbedded.clear(); m_pGraphicImport.clear(); } |