diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-04-09 15:32:34 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-04-10 07:32:16 +0200 |
commit | 4984bf2a870a1fb7d1f85b1f6ece568a0e05c4cb (patch) | |
tree | efa047f0fb48d695fb654defe7118f45e999eb4a /writerfilter | |
parent | calc: set ZoomSlider size to 130 like all other components do (diff) | |
download | core-4984bf2a870a1fb7d1f85b1f6ece568a0e05c4cb.tar.gz core-4984bf2a870a1fb7d1f85b1f6ece568a0e05c4cb.zip |
RTF filter: import text box shapes as a Writer textframe
Text box shapes, just like any other shape types, used to be imported as
drawinglayer shapes. To keep the DOC/DOCX/RTF filters in sync, import
text box shapes as Writer textframes instead.
Change-Id: Iacead5352d0a297cff54afb134d895e40d446147
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/rtftok/rtfsdrimport.cxx | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx index b7d0e1941326..0363f73c27f7 100644 --- a/writerfilter/source/rtftok/rtfsdrimport.cxx +++ b/writerfilter/source/rtftok/rtfsdrimport.cxx @@ -86,6 +86,7 @@ void RTFSdrImport::resolve(RTFShape& rShape) int nType = -1; bool bPib = false; bool bCustom = false; + bool bTextFrame = false; uno::Reference<drawing::XShape> xShape; uno::Reference<beans::XPropertySet> xPropertySet; @@ -111,6 +112,10 @@ void RTFSdrImport::resolve(RTFShape& rShape) case 20: // Line createShape("com.sun.star.drawing.LineShape", xShape, xPropertySet); break; + case ESCHER_ShpInst_TextBox: + createShape("com.sun.star.text.TextFrame", xShape, xPropertySet); + bTextFrame = true; + break; default: bCustom = true; break; @@ -118,7 +123,7 @@ void RTFSdrImport::resolve(RTFShape& rShape) // Defaults aAny <<= (sal_uInt32)0xffffff; // White in Word, kind of blue in Writer. - if (xPropertySet.is()) + if (xPropertySet.is() && !bTextFrame) xPropertySet->setPropertyValue("FillColor", aAny); } else if ( i->first == "wzName" ) @@ -291,7 +296,8 @@ void RTFSdrImport::resolve(RTFShape& rShape) if (xPropertySet.is()) { - xPropertySet->setPropertyValue("LineColor", aLineColor); + if (!bTextFrame) + xPropertySet->setPropertyValue("LineColor", aLineColor); xPropertySet->setPropertyValue("LineWidth", aLineWidth); if (rShape.oZ) resolveDhgt(xPropertySet, *rShape.oZ); @@ -304,7 +310,7 @@ void RTFSdrImport::resolve(RTFShape& rShape) return; } - if (m_xDrawPage.is()) + if (m_xDrawPage.is() && !bTextFrame) m_xDrawPage->add(xShape); if (bCustom && xShape.is()) { @@ -344,7 +350,13 @@ void RTFSdrImport::resolve(RTFShape& rShape) // Set position and size if (xShape.is()) { - xShape->setPosition(awt::Point(rShape.nLeft, rShape.nTop)); + if (bTextFrame) + { + xPropertySet->setPropertyValue("HoriOrientPosition", uno::makeAny(rShape.nLeft)); + xPropertySet->setPropertyValue("VertOrientPosition", uno::makeAny(rShape.nTop)); + } + else + xShape->setPosition(awt::Point(rShape.nLeft, rShape.nTop)); xShape->setSize(awt::Size(rShape.nRight - rShape.nLeft, rShape.nBottom - rShape.nTop)); if (rShape.nHoriOrientRelation != 0) xPropertySet->setPropertyValue("HoriOrientRelation", uno::makeAny(rShape.nHoriOrientRelation)); |