writerfilter/source/dmapper/GraphicImport.cxx | 5 ++ writerfilter/source/ooxml/model.xml | 52 +++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 2 deletions(-)
New commits: commit f876c8a442977454a29377a703dc1cf630158d00 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Jan 28 10:34:29 2014 +0100 DOCX import: handle wp14:sizeRelV and wp14:pctHeight for Writer TextFrames Change-Id: I1744cabf426af36483280df9ca5c09e7783fe210 diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx index 3dc61ba..29300cd 100644 --- a/writerfilter/source/dmapper/GraphicImport.cxx +++ b/writerfilter/source/dmapper/GraphicImport.cxx @@ -824,6 +824,7 @@ void GraphicImport::lcl_sprm(Sprm & rSprm) case NS_ooxml::LN_wps_wsp: case NS_ooxml::LN_wpg_wgp: case NS_ooxml::LN_sizeRelH_sizeRelH: + case NS_ooxml::LN_sizeRelV_sizeRelV: { writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps(); if( pProperties.get()) @@ -886,6 +887,7 @@ void GraphicImport::lcl_sprm(Sprm & rSprm) } break; case NS_ooxml::LN_CT_SizeRelH_pctWidth: + case NS_ooxml::LN_CT_SizeRelV_pctHeight: if (m_xShape.is() && !m_pImpl->m_rPositivePercentages.empty()) { sal_Int16 nPositivePercentage = m_pImpl->m_rPositivePercentages.front().toInt32() / 1000; @@ -895,7 +897,8 @@ void GraphicImport::lcl_sprm(Sprm & rSprm) if (xServiceInfo->supportsService("com.sun.star.text.TextFrame")) { uno::Reference<beans::XPropertySet> xPropertySet(m_xShape, uno::UNO_QUERY); - xPropertySet->setPropertyValue("RelativeWidth", uno::makeAny(nPositivePercentage)); + OUString aProperty = nSprmId == NS_ooxml::LN_CT_SizeRelH_pctWidth ? OUString("RelativeWidth") : OUString("RelativeHeight"); + xPropertySet->setPropertyValue(aProperty, uno::makeAny(nPositivePercentage)); } } break; diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml index b6b4597..c0961f4 100644 --- a/writerfilter/source/ooxml/model.xml +++ b/writerfilter/source/ooxml/model.xml @@ -5234,6 +5234,7 @@ </namespace> <namespace name="wp14"> <start name="sizeRelH"/> + <start name="sizeRelV"/> <grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <define name="ST_SizeRelFromH"> <choice> @@ -5245,6 +5246,16 @@ <value>outsideMargin</value> </choice> </define> + <define name="ST_SizeRelFromV"> + <choice> + <value>margin</value> + <value>page</value> + <value>topMargin</value> + <value>bottomMargin</value> + <value>insideMargin</value> + <value>outsideMargin</value> + </choice> + </define> <define name="CT_SizeRelH"> <element name="pctWidth"> <ref name="ST_PositivePercentage"/> @@ -5253,11 +5264,24 @@ <ref name="ST_SizeRelFromH"/> </attribute> </define> + <define name="CT_SizeRelV"> + <element name="pctHeight"> + <ref name="ST_PositivePercentage"/> + </element> + <attribute name="relativeFrom"> + <ref name="ST_SizeRelFromV"/> + </attribute> + </define> <define name="sizeRelH"> <element name="sizeRelH"> <ref name="CT_SizeRelH"/> </element> </define> + <define name="sizeRelV"> + <element name="sizeRelV"> + <ref name="CT_SizeRelV"/> + </element> + </define> </grammar> <resource name="ST_SizeRelFromH" resource="List" generated="yes"> <value name="margin" tokenid="ooxml:ST_SizeRelFromH_margin">margin</value> @@ -5267,13 +5291,28 @@ <value name="insideMargin" tokenid="ooxml:ST_SizeRelFromH_insideMargin">insideMargin</value> <value name="outsideMargin" tokenid="ooxml:ST_SizeRelFromH_outsideMargin">outsideMargin</value> </resource> + <resource name="ST_SizeRelFromV" resource="List" generated="yes"> + <value name="margin" tokenid="ooxml:ST_SizeRelFromV_margin">margin</value> + <value name="page" tokenid="ooxml:ST_SizeRelFromV_page">page</value> + <value name="topMargin" tokenid="ooxml:ST_SizeRelFromV_topMargin">topMargin</value> + <value name="bottomMargin" tokenid="ooxml:ST_SizeRelFromV_bottomMargin">bottomMargin</value> + <value name="insideMargin" tokenid="ooxml:ST_SizeRelFromV_insideMargin">insideMargin</value> + <value name="outsideMargin" tokenid="ooxml:ST_SizeRelFromV_outsideMargin">outsideMargin</value> + </resource> <resource name="CT_SizeRelH" resource="Properties" tag="shape"> <element name="pctWidth" tokenid="ooxml:CT_SizeRelH_pctWidth"/> <attribute name="relativeFrom" tokenid="ooxml:CT_SizeRelH_relativeFrom"/> </resource> + <resource name="CT_SizeRelV" resource="Properties" tag="shape"> + <element name="pctHeight" tokenid="ooxml:CT_SizeRelV_pctHeight"/> + <attribute name="relativeFrom" tokenid="ooxml:CT_SizeRelV_relativeFrom"/> + </resource> <resource name="sizeRelH" resource="Properties" tag="shape"> <element name="sizeRelH" tokenid="ooxml:sizeRelH_sizeRelH"/> </resource> + <resource name="sizeRelV" resource="Properties" tag="shape"> + <element name="sizeRelV" tokenid="ooxml:sizeRelV_sizeRelV"/> + </resource> </namespace> <namespace name="dml-shapeGeometry" file="dml-shapeGeometry.rng" todo="ignore"> <grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> @@ -6461,6 +6500,11 @@ <ref name="BUILT_IN_ANY_TYPE"/> </element> </optional> + <optional> + <element name="wp14:sizeRelV"> + <ref name="BUILT_IN_ANY_TYPE"/> + </element> + </optional> </group> <optional> <attribute name="distT"> @@ -6789,6 +6833,11 @@ <ref name="BUILT_IN_ANY_TYPE"/> </element> </optional> + <optional> + <element name="wp14:sizeRelV"> + <ref name="BUILT_IN_ANY_TYPE"/> + </element> + </optional> </group> <optional> <attribute name="distT"> @@ -6884,6 +6933,7 @@ <element name="cNvGraphicFramePr" tokenid="ooxml:CT_Inline_cNvGraphicFramePr"/> <element name="a:graphic" tokenid="ooxml:CT_Inline_a_graphic"/> <element name="wp14:sizeRelH" tokenid="ooxml:CT_Inline_wp14_sizeRelH"/> + <element name="wp14:sizeRelV" tokenid="ooxml:CT_Inline_wp14_sizeRelV"/> <attribute name="distT" tokenid="ooxml:CT_Inline_distT"/> <attribute name="distB" tokenid="ooxml:CT_Inline_distB"/> <attribute name="distL" tokenid="ooxml:CT_Inline_distL"/> @@ -6981,7 +7031,7 @@ <element name="docPr" tokenid="ooxml:CT_Anchor_docPr"/> <element name="cNvGraphicFramePr" tokenid="ooxml:CT_Anchor_cNvGraphicFramePr"/> <element name="a:graphic" tokenid="ooxml:CT_Anchor_a_graphic"/> - <element name="wp14:sizeRelH" tokenid="ooxml:CT_Anchor_wp14_sizeRelH"/> + <element name="wp14:sizeRelV" tokenid="ooxml:CT_Anchor_wp14_sizeRelV"/> <attribute name="distT" tokenid="ooxml:CT_Anchor_distT"/> <attribute name="distB" tokenid="ooxml:CT_Anchor_distB"/> <attribute name="distL" tokenid="ooxml:CT_Anchor_distL"/> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits