summaryrefslogtreecommitdiff
authorMiklos Vajna <vmiklos@suse.cz>2012-08-14 10:04:49 (GMT)
committer Miklos Vajna <vmiklos@suse.cz>2012-08-14 10:20:10 (GMT)
commit5da2e40292e420dc48da7ea5aef29c96a1127140 (patch) (side-by-side diff)
tree62bd9dbe66ae99e8a6ec4a0b7b8507dd067c27e9
parent4dd8aa2630074b479b216da8ee7b50ed0bf78511 (diff)
downloadcore-5da2e40292e420dc48da7ea5aef29c96a1127140.zip
core-5da2e40292e420dc48da7ea5aef29c96a1127140.tar.gz
RTF shape filter: handle custom segment types
Change-Id: I320bab34080b401c61efbc5b3383836362f5f43f
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--sw/source/filter/ww8/rtfsdrexport.cxx9
-rw-r--r--writerfilter/source/rtftok/rtfsdrimport.cxx5
2 files changed, 11 insertions, 3 deletions
diff --git a/sw/source/filter/ww8/rtfsdrexport.cxx b/sw/source/filter/ww8/rtfsdrexport.cxx
index c8040e5..a377ef0 100644
--- a/sw/source/filter/ww8/rtfsdrexport.cxx
+++ b/sw/source/filter/ww8/rtfsdrexport.cxx
@@ -314,7 +314,14 @@ void RtfSdrExport::Commit( EscherPropertyContainer& rProps, const Rectangle& rRe
case 0x8000: // end
break;
default:
- SAL_INFO("sw.rtf", OSL_THIS_FUNC << ": unhandled segment '" << nSeg << "' in the path");
+ // See EscherPropertyContainer::CreateCustomShapeProperties, by default nSeg is simply the number of points.
+ for (int i = 0; i < nSeg; ++i)
+ {
+ sal_Int32 nX = impl_GetPointComponent(pVerticesIt, nPointSize);
+ sal_Int32 nY = impl_GetPointComponent(pVerticesIt, nPointSize);
+ aVerticies.append(";(").append(nX).append(",").append(nY).append(")");
+ ++nVertices;
+ }
break;
}
}
diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx
index 7fe19e5..4eea20b 100644
--- a/writerfilter/source/rtftok/rtfsdrimport.cxx
+++ b/writerfilter/source/rtftok/rtfsdrimport.cxx
@@ -251,8 +251,9 @@ void RTFSdrImport::resolve(RTFShape& rShape)
aSegments[nIndex].Command = drawing::EnhancedCustomShapeSegmentCommand::ENDSUBPATH;
aSegments[nIndex].Count = sal_Int32(0);
break;
- default:
- SAL_INFO("writerfilter", OSL_THIS_FUNC << ": unhandled segment '" << hex << nSeg << "' in the path");
+ default: // given number of lineto elements
+ aSegments[nIndex].Command = drawing::EnhancedCustomShapeSegmentCommand::LINETO;
+ aSegments[nIndex].Count = nSeg;
break;
}
nIndex++;