diff options
author | Jan Holesovsky <kendy@suse.cz> | 2013-05-16 03:49:34 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2013-05-16 04:57:15 +0200 |
commit | 225b41088a565ea1d69967139e7f4de59e4acf2c (patch) | |
tree | 4cbf9ab366ee30e04843c94e8030b812777dbe84 /drawinglayer | |
parent | 5fe65c0c5e5a8d815d9d15ef192e7652726662e6 (diff) |
XShapeDumper: Dump more values, to be able to test n#819614.
Change-Id: I19cbae855996bffb18206b9003e22a2bcc0c75d9
Diffstat (limited to 'drawinglayer')
-rw-r--r-- | drawinglayer/source/dumper/EnhancedShapeDumper.cxx | 31 | ||||
-rw-r--r-- | drawinglayer/source/dumper/XShapeDumper.cxx | 116 |
2 files changed, 118 insertions, 29 deletions
diff --git a/drawinglayer/source/dumper/EnhancedShapeDumper.cxx b/drawinglayer/source/dumper/EnhancedShapeDumper.cxx index 842cd5236257..8a1808821a3a 100644 --- a/drawinglayer/source/dumper/EnhancedShapeDumper.cxx +++ b/drawinglayer/source/dumper/EnhancedShapeDumper.cxx @@ -475,11 +475,27 @@ void EnhancedShapeDumper::dumpAdjustmentValuesAsElement(uno::Sequence< drawing:: xmlTextWriterStartElement(xmlWriter, BAD_CAST( "EnhancedCustomShapeAdjustmentValue" )); uno::Any aAny = aAdjustmentValues[i].Value; OUString sValue; + float fValue; + sal_Int32 nValue; + sal_Bool bValue; if(aAny >>= sValue) { xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr()); } + else if(aAny >>= nValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%" SAL_PRIdINT32, nValue); + } + else if(aAny >>= fValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%f", fValue); + } + else if(aAny >>= bValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", (bValue? "true": "false")); + } + switch(aAdjustmentValues[i].State) { case beans::PropertyState_DIRECT_VALUE: @@ -741,11 +757,26 @@ void EnhancedShapeDumper::dumpEnhancedCustomShapeParameter(drawing::EnhancedCust { uno::Any aAny = aParameter.Value; OUString sValue; + float fValue; + sal_Int32 nValue; + sal_Bool bValue; if(aAny >>= sValue) { xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr()); } + else if(aAny >>= nValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%" SAL_PRIdINT32, nValue); + } + else if(aAny >>= fValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%f", fValue); + } + else if(aAny >>= bValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", (bValue? "true": "false")); + } sal_Int32 aType = aParameter.Type; xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("type"), "%" SAL_PRIdINT32, aType); } diff --git a/drawinglayer/source/dumper/XShapeDumper.cxx b/drawinglayer/source/dumper/XShapeDumper.cxx index d61dfc33ca26..caf3758bb79d 100644 --- a/drawinglayer/source/dumper/XShapeDumper.cxx +++ b/drawinglayer/source/dumper/XShapeDumper.cxx @@ -1090,41 +1090,99 @@ void dumpCustomShapeDataAsAttribute(OUString sCustomShapeData, xmlTextWriterPtr OUStringToOString(sCustomShapeData, RTL_TEXTENCODING_UTF8).getStr()); } +void dumpPropertyValueAsElement(const beans::PropertyValue& rPropertyValue, xmlTextWriterPtr xmlWriter) +{ + xmlTextWriterStartElement(xmlWriter, BAD_CAST( "PropertyValue" )); + + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("name"), "%s", + OUStringToOString(rPropertyValue.Name, RTL_TEXTENCODING_UTF8).getStr()); + + uno::Any aAny = rPropertyValue.Value; + OUString sValue; + float fValue; + sal_Int32 nValue; + sal_Bool bValue; + awt::Rectangle aRectangleValue; + uno::Sequence< drawing::EnhancedCustomShapeAdjustmentValue> aAdjustmentValues; + uno::Sequence< drawing::EnhancedCustomShapeParameterPair > aCoordinates; + uno::Sequence< drawing::EnhancedCustomShapeSegment > aSegments; + uno::Sequence< beans::PropertyValue > aPropSeq; + if(aAny >>= sValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", + OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr()); + } + else if(aAny >>= nValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%" SAL_PRIdINT32, nValue); + } + else if(aAny >>= fValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%f", fValue); + } + else if(aAny >>= bValue) + { + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", (bValue? "true": "false")); + } + else if(rPropertyValue.Name == "ViewBox" && (aAny >>= aRectangleValue)) + { + EnhancedShapeDumper enhancedDumper(xmlWriter); + enhancedDumper.dumpViewBoxAsElement(aRectangleValue); + } + else if(rPropertyValue.Name == "AdjustmentValues" && (aAny >>= aAdjustmentValues)) + { + EnhancedShapeDumper enhancedDumper(xmlWriter); + enhancedDumper.dumpAdjustmentValuesAsElement(aAdjustmentValues); + } + else if(rPropertyValue.Name == "Coordinates" && (aAny >>= aCoordinates)) + { + EnhancedShapeDumper enhancedDumper(xmlWriter); + enhancedDumper.dumpCoordinatesAsElement(aCoordinates); + } + else if(rPropertyValue.Name == "Segments" && (aAny >>= aSegments)) + { + EnhancedShapeDumper enhancedDumper(xmlWriter); + enhancedDumper.dumpSegmentsAsElement(aSegments); + } + else if(aAny >>= aPropSeq) + { + xmlTextWriterStartElement(xmlWriter, BAD_CAST( OUStringToOString(rPropertyValue.Name, RTL_TEXTENCODING_UTF8).getStr() )); + + sal_Int32 i = 0, nCount = aPropSeq.getLength(); + for ( ; i < nCount; i++ ) + dumpPropertyValueAsElement(aPropSeq[ i ], xmlWriter); + + xmlTextWriterEndElement(xmlWriter); + } + // TODO more, if necessary + + xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("handle"), "%" SAL_PRIdINT32, rPropertyValue.Handle); + + switch(rPropertyValue.State) + { + case beans::PropertyState_DIRECT_VALUE: + xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DIRECT_VALUE"); + break; + case beans::PropertyState_DEFAULT_VALUE: + xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DEFAULT_VALUE"); + break; + case beans::PropertyState_AMBIGUOUS_VALUE: + xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "AMBIGUOUS_VALUE"); + break; + default: + break; + } + xmlTextWriterEndElement( xmlWriter ); +} + void dumpCustomShapeGeometryAsElement(uno::Sequence< beans::PropertyValue> aCustomShapeGeometry, xmlTextWriterPtr xmlWriter) { xmlTextWriterStartElement(xmlWriter, BAD_CAST( "CustomShapeGeometry" )); + sal_Int32 nLength = aCustomShapeGeometry.getLength(); for (sal_Int32 i = 0; i < nLength; ++i) - { - xmlTextWriterStartElement(xmlWriter, BAD_CAST( "PropertyValue" )); - - xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("name"), "%s", - OUStringToOString(aCustomShapeGeometry[i].Name, RTL_TEXTENCODING_UTF8).getStr()); - xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("handle"), "%" SAL_PRIdINT32, aCustomShapeGeometry[i].Handle); + dumpPropertyValueAsElement(aCustomShapeGeometry[i], xmlWriter); - uno::Any aAny = aCustomShapeGeometry[i].Value; - OUString sValue; - if(aAny >>= sValue) - { - xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", - OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr()); - } - switch(aCustomShapeGeometry[i].State) - { - case beans::PropertyState_DIRECT_VALUE: - xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DIRECT_VALUE"); - break; - case beans::PropertyState_DEFAULT_VALUE: - xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DEFAULT_VALUE"); - break; - case beans::PropertyState_AMBIGUOUS_VALUE: - xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "AMBIGUOUS_VALUE"); - break; - default: - break; - } - xmlTextWriterEndElement( xmlWriter ); - } xmlTextWriterEndElement( xmlWriter ); } |