diff options
Diffstat (limited to 'writerfilter/source/dmapper/DomainMapper_Impl.cxx')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index d37a6c68fb05..a43e396ba461 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -308,7 +308,9 @@ DomainMapper_Impl::DomainMapper_Impl( m_aAnnotationPositions(), 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_bIsNewDoc(!rMediaDesc.getUnpackedValueOrDefault("InsertMode", false)), + m_bIsAltChunk(rMediaDesc.getUnpackedValueOrDefault("AltChunkMode", false)), m_bIsReadGlossaries(rMediaDesc.getUnpackedValueOrDefault("ReadGlossaries", false)), m_nTableDepth(0), m_nTableCellDepth(0), @@ -352,6 +354,11 @@ DomainMapper_Impl::DomainMapper_Impl( m_pSdtHelper = new SdtHelper(*this); m_aRedlines.push(std::vector<RedlineParamsPtr>()); + + if (m_bIsAltChunk) + { + m_bIsFirstSection = false; + } } @@ -3277,10 +3284,18 @@ void DomainMapper_Impl::HandleAltChunk(const OUString& rStreamName) uno::Reference<io::XStream> xInputStream = new utl::OStreamWrapper(aMemory); // Not handling AltChunk during paste for now. uno::Reference<text::XTextRange> xInsertTextRange = GetCurrentXText()->getEnd(); + uno::Reference<text::XTextRange> xSectionStartingRange; + SectionPropertyMap* pSectionContext = GetSectionContext(); + if (pSectionContext) + { + xSectionStartingRange = pSectionContext->GetStartingRange(); + } uno::Sequence<beans::PropertyValue> aDescriptor(comphelper::InitPropertySequence({ { "InputStream", uno::Any(xInputStream) }, { "InsertMode", uno::Any(true) }, { "TextInsertModeRange", uno::Any(xInsertTextRange) }, + { "AltChunkMode", uno::Any(true) }, + { "AltChunkStartingRange", uno::Any(xSectionStartingRange) }, })); // Do the actual import. |