diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-07-18 22:47:03 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2012-07-19 17:48:13 +0200 |
commit | 0c1de6d3d6320f91770967d1b23c8dd57d168fe7 (patch) | |
tree | 6602a02317078904b406c127bd976d8c3e06bfc3 | |
parent | 48d61f4ad1eb4f8a031e65c3fcbebc5023d600e9 (diff) |
fdo#52066 fix RTF import of rectangle shape without text in it
We used to always add a paragraph on shapes, which breaks import of
abused rectangle shapes with minimal height, used as lines.
Change-Id: Ice240bad68bc030e7889c46f72c45646307f17e5
Signed-off-by: Luboš Luňák <l.lunak@suse.cz>
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 4 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.hxx | 2 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfsdrimport.cxx | 10 |
3 files changed, 10 insertions, 6 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index be34248f79ba..08fef7a4d08f 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -3624,9 +3624,11 @@ void RTFDocumentImpl::setDestinationText(OUString& rString) m_aStates.top().aDestinationText.append(rString); } -void RTFDocumentImpl::replayShapetext() +bool RTFDocumentImpl::replayShapetext() { + bool bRet = !m_aShapetextBuffer.empty(); replayBuffer(m_aShapetextBuffer); + return bRet; } bool RTFDocumentImpl::getSkipUnknown() diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 5756b5a6aa11..9778ce72bd1e 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -368,7 +368,7 @@ namespace writerfilter { /// Resolve a picture: If not inline, then anchored. int resolvePict(bool bInline); void runBreak(); - void replayShapetext(); + bool replayShapetext(); bool getSkipUnknown(); void setSkipUnknown(bool bSkipUnknown); diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx index ab4118ceb823..dba454532991 100644 --- a/writerfilter/source/rtftok/rtfsdrimport.cxx +++ b/writerfilter/source/rtftok/rtfsdrimport.cxx @@ -316,10 +316,12 @@ void RTFSdrImport::resolve(RTFShape& rShape) // Send it to dmapper m_rImport.Mapper().startShape(xShape); m_rImport.Mapper().startParagraphGroup(); - m_rImport.replayShapetext(); - m_rImport.Mapper().startCharacterGroup(); - m_rImport.runBreak(); - m_rImport.Mapper().endCharacterGroup(); + if (m_rImport.replayShapetext()) + { + m_rImport.Mapper().startCharacterGroup(); + m_rImport.runBreak(); + m_rImport.Mapper().endCharacterGroup(); + } m_rImport.Mapper().endParagraphGroup(); m_rImport.Mapper().endShape(); } |