diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-12-23 14:37:59 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-12-23 15:48:32 +0100 |
commit | 07c80d23fadcc2334fe7c6f9ce7b5dafeb88d623 (patch) | |
tree | 731bc0f214368b0eb5c4e6237a4b990d8b6c823d /writerfilter | |
parent | 68aecf0dd81b6660e78e8dd758ec9431727f4f0b (diff) |
fdo#58076 fix import of RTF page margins vs partial section props
The problem was that \sbknone (being a section property) triggered
creating a section, but the document doesn't have multiple sections.
Make sure we don't send section properties as long as no \sect control
words present.
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.hxx | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index da26efdd983c..4ad99cea78f2 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -276,7 +276,8 @@ RTFDocumentImpl::RTFDocumentImpl(uno::Reference<uno::XComponentContext> const& x m_bIgnoreNextContSectBreak(false), m_bNeedSect(true), m_bWasInFrame(false), - m_bHadPicture(false) + m_bHadPicture(false), + m_bHadSect(false) { OSL_ASSERT(xInputStream.is()); m_pInStream.reset(utl::UcbStreamHelper::CreateStream(xInputStream, sal_True)); @@ -527,7 +528,7 @@ void RTFDocumentImpl::sectBreak(bool bFinal = false) // Normally a section break at the end of the doc is necessary. Unless the // last control word in the document is a section break itself. - if (!bNeedSect) + if (!bNeedSect || !m_bHadSect) { RTFValue::Pointer_t pBreak = m_aStates.top().aSectionSprms.find(NS_sprm::LN_SBkc); // In case the last section is a continous one, we don't need to output a section break. @@ -1630,6 +1631,7 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) break; case RTF_SECT: { + m_bHadSect = true; if (m_bIgnoreNextContSectBreak) m_bIgnoreNextContSectBreak = false; else diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 1df8de1ffcd2..283faec9b531 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -590,6 +590,8 @@ namespace writerfilter { bool m_bWasInFrame; /// A picture was seen in the current paragraph. bool m_bHadPicture; + /// The document has multiple sections. + bool m_bHadSect; }; } // namespace rtftok } // namespace writerfilter |