oox/source/drawingml/customshapeproperties.cxx | 77 ++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 9 deletions(-)
New commits: commit e9877935b0d09c7a8321632632c440496a957b0c Author: Radek Doulik <[email protected]> Date: Wed Dec 7 13:37:12 2011 +0100 pptx: make sure we set right type for connector shapes diff --git a/oox/source/drawingml/customshapeproperties.cxx b/oox/source/drawingml/customshapeproperties.cxx index e0c1fd7..77eb296 100644 --- a/oox/source/drawingml/customshapeproperties.cxx +++ b/oox/source/drawingml/customshapeproperties.cxx @@ -167,8 +167,10 @@ void CustomShapeProperties::pushToPropSet( const ::oox::core::FilterBase& /* rFi OSL_TRACE("connector shape: %s (%d)", USS(sConnectorShapeType), mnShapePresetType); //const uno::Reference < drawing::XShape > xShape( xPropSet, UNO_QUERY ); Reference< drawing::XEnhancedCustomShapeDefaulter > xDefaulter( xShape, UNO_QUERY ); - if( xDefaulter.is() ) + if( xDefaulter.is() ) { xDefaulter->createCustomShapeDefaults( sConnectorShapeType ); + aPropertyMap[ PROP_Type ] <<= Any( sConnectorShapeType ); + } } else if (maPresetsMap.find(mnShapePresetType) != maPresetsMap.end()) { @@ -229,7 +231,10 @@ void CustomShapeProperties::pushToPropSet( const ::oox::core::FilterBase& /* rFi } else if ( aGeoPropSeq[ i ].Name.equals( sType ) ) { - aGeoPropSeq[ i ].Value <<= CREATE_OUSTRING( "ooxml-CustomShape" ); + if ( sConnectorShapeType.getLength() > 0 ) + aGeoPropSeq[ i ].Value <<= sConnectorShapeType; + else + aGeoPropSeq[ i ].Value <<= CREATE_OUSTRING( "ooxml-CustomShape" ); } } } commit f0bf2a2ae95ddad3d08ddd1413ec56bf04224a94 Author: Radek Doulik <[email protected]> Date: Thu Dec 1 12:13:33 2011 +0100 do not use new presets for connector shapes - until we have better implementation diff --git a/oox/source/drawingml/customshapeproperties.cxx b/oox/source/drawingml/customshapeproperties.cxx index 322043d..e0c1fd7 100644 --- a/oox/source/drawingml/customshapeproperties.cxx +++ b/oox/source/drawingml/customshapeproperties.cxx @@ -97,6 +97,56 @@ sal_Int32 CustomShapeProperties::GetCustomShapeGuideValue( const std::vector< Cu CustomShapeProperties::PresetsMap CustomShapeProperties::maPresetsMap; +static OUString GetConnectorShapeType( sal_Int32 nType ) +{ + OSL_TRACE("GetConnectorShapeType preset: %d %d", nType, XML_straightConnector1); + + OUString sType; + switch( nType ) + { + case XML_straightConnector1: { + static const OUString sStraightConnector1 = CREATE_OUSTRING( "mso-spt32" ); + sType = sStraightConnector1; + } break; + case XML_bentConnector2: { + static const OUString sBentConnector2 = CREATE_OUSTRING( "mso-spt33" ); + sType = sBentConnector2; + } break; + case XML_bentConnector3: { + static const OUString sBentConnector3 = CREATE_OUSTRING( "mso-spt34" ); + sType = sBentConnector3; + } break; + case XML_bentConnector4: { + static const OUString sBentConnector4 = CREATE_OUSTRING( "mso-spt35" ); + sType = sBentConnector4; + } break; + case XML_bentConnector5: { + static const OUString sBentConnector5 = CREATE_OUSTRING( "mso-spt36" ); + sType = sBentConnector5; + } break; + case XML_curvedConnector2: { + static const OUString sCurvedConnector2 = CREATE_OUSTRING( "mso-spt37" ); + sType = sCurvedConnector2; + } break; + case XML_curvedConnector3: { + static const OUString sCurvedConnector3 = CREATE_OUSTRING( "mso-spt38" ); + sType = sCurvedConnector3; + } break; + case XML_curvedConnector4: { + static const OUString sCurvedConnector4 = CREATE_OUSTRING( "mso-spt39" ); + sType = sCurvedConnector4; + } break; + case XML_curvedConnector5: { + static const OUString sCurvedConnector5 = CREATE_OUSTRING( "mso-spt40" ); + sType = sCurvedConnector5; + } break; + default: + break; + } + return sType; +} + + void CustomShapeProperties::pushToPropSet( const ::oox::core::FilterBase& /* rFilterBase */, const Reference < XPropertySet >& xPropSet, const Reference < XShape > & xShape ) { @@ -110,7 +160,18 @@ void CustomShapeProperties::pushToPropSet( const ::oox::core::FilterBase& /* rFi PropertyMap aPropertyMap; PropertySet aPropSet( xPropSet ); - if (maPresetsMap.find(mnShapePresetType) != maPresetsMap.end()) { + OUString sConnectorShapeType = GetConnectorShapeType( mnShapePresetType ); + + if (sConnectorShapeType.getLength() > 0) + { + OSL_TRACE("connector shape: %s (%d)", USS(sConnectorShapeType), mnShapePresetType); + //const uno::Reference < drawing::XShape > xShape( xPropSet, UNO_QUERY ); + Reference< drawing::XEnhancedCustomShapeDefaulter > xDefaulter( xShape, UNO_QUERY ); + if( xDefaulter.is() ) + xDefaulter->createCustomShapeDefaults( sConnectorShapeType ); + } + else if (maPresetsMap.find(mnShapePresetType) != maPresetsMap.end()) + { OSL_TRACE("found property map for preset: %s (%d)", USS(getShapePresetTypeName()), mnShapePresetType); aPropertyMap = maPresetsMap[ mnShapePresetType ]; @@ -118,13 +179,6 @@ void CustomShapeProperties::pushToPropSet( const ::oox::core::FilterBase& /* rFi aPropertyMap.dumpCode(); #endif } - else - { - //const uno::Reference < drawing::XShape > xShape( xPropSet, UNO_QUERY ); - Reference< drawing::XEnhancedCustomShapeDefaulter > xDefaulter( xShape, UNO_QUERY ); - if( xDefaulter.is() ) - xDefaulter->createCustomShapeDefaults( getShapePresetTypeName() ); - } aPropertyMap[ PROP_MirroredX ] <<= Any( mbMirroredX ); aPropertyMap[ PROP_MirroredY ] <<= Any( mbMirroredY ); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
