summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-04-09 15:32:34 +0200
committerMiklos Vajna <vmiklos@suse.cz>2013-04-10 07:32:16 +0200
commit4984bf2a870a1fb7d1f85b1f6ece568a0e05c4cb (patch)
treeefa047f0fb48d695fb654defe7118f45e999eb4a /writerfilter
parentbcf7efd9f09a11756333beaca2c64a3fff315fcc (diff)
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.cxx20
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));