Kaydet (Commit) 7c5d35a6 authored tarafından Radek Doulik's avatar Radek Doulik

export subpath sizes (these are for example in pptx custom shape presets)

Change-Id: Iab21d0845d0cb6e4dadeffb5f7b9ebab1e4b955a
üst ec1c30d3
...@@ -84,6 +84,7 @@ namespace xmloff { namespace EnhancedCustomShapeToken { ...@@ -84,6 +84,7 @@ namespace xmloff { namespace EnhancedCustomShapeToken {
EAS_handle_polar, EAS_handle_polar,
EAS_handle_radius_range_minimum, EAS_handle_radius_range_minimum,
EAS_handle_radius_range_maximum, EAS_handle_radius_range_maximum,
EAS_sub_view_size,
EAS_CustomShapeEngine, EAS_CustomShapeEngine,
EAS_CustomShapeData, EAS_CustomShapeData,
...@@ -145,6 +146,7 @@ namespace xmloff { namespace EnhancedCustomShapeToken { ...@@ -145,6 +146,7 @@ namespace xmloff { namespace EnhancedCustomShapeToken {
EAS_SameLetterHeights, EAS_SameLetterHeights,
EAS_Position, EAS_Position,
EAS_AdjustmentValues, EAS_AdjustmentValues,
EAS_SubViewSize,
EAS_Last, EAS_Last,
EAS_NotFound EAS_NotFound
......
...@@ -1732,6 +1732,7 @@ namespace xmloff { namespace token { ...@@ -1732,6 +1732,7 @@ namespace xmloff { namespace token {
XML_SUBTOTAL_FIELD, XML_SUBTOTAL_FIELD,
XML_SUBTOTAL_RULE, XML_SUBTOTAL_RULE,
XML_SUBTOTAL_RULES, XML_SUBTOTAL_RULES,
XML_SUB_VIEW_SIZE,
XML_SUFFIX, XML_SUFFIX,
XML_SUM, XML_SUM,
XML_SWISS, XML_SWISS,
......
...@@ -1737,6 +1737,7 @@ namespace xmloff { namespace token { ...@@ -1737,6 +1737,7 @@ namespace xmloff { namespace token {
TOKEN( "subtotal-field", XML_SUBTOTAL_FIELD ), TOKEN( "subtotal-field", XML_SUBTOTAL_FIELD ),
TOKEN( "subtotal-rule", XML_SUBTOTAL_RULE ), TOKEN( "subtotal-rule", XML_SUBTOTAL_RULE ),
TOKEN( "subtotal-rules", XML_SUBTOTAL_RULES ), TOKEN( "subtotal-rules", XML_SUBTOTAL_RULES ),
TOKEN( "sub-view-size", XML_SUB_VIEW_SIZE ),
TOKEN( "suffix", XML_SUFFIX ), TOKEN( "suffix", XML_SUFFIX ),
TOKEN( "sum", XML_SUM ), TOKEN( "sum", XML_SUM ),
TOKEN( "swiss", XML_SWISS ), TOKEN( "swiss", XML_SWISS ),
......
...@@ -112,6 +112,7 @@ static const TokenTable pTokenTableArray[] = ...@@ -112,6 +112,7 @@ static const TokenTable pTokenTableArray[] =
{ "handle-polar", EAS_handle_polar }, { "handle-polar", EAS_handle_polar },
{ "handle-radius-range-minimum", EAS_handle_radius_range_minimum }, { "handle-radius-range-minimum", EAS_handle_radius_range_minimum },
{ "handle-radius-range-maximum", EAS_handle_radius_range_maximum }, { "handle-radius-range-maximum", EAS_handle_radius_range_maximum },
{ "sub-view-size", EAS_sub_view_size },
{ "CustomShapeEngine", EAS_CustomShapeEngine }, { "CustomShapeEngine", EAS_CustomShapeEngine },
{ "CustomShapeData", EAS_CustomShapeData }, { "CustomShapeData", EAS_CustomShapeData },
...@@ -173,6 +174,7 @@ static const TokenTable pTokenTableArray[] = ...@@ -173,6 +174,7 @@ static const TokenTable pTokenTableArray[] =
{ "SameLetterHeights", EAS_SameLetterHeights }, { "SameLetterHeights", EAS_SameLetterHeights },
{ "Position", EAS_Position }, { "Position", EAS_Position },
{ "AdjustmentValues", EAS_AdjustmentValues }, { "AdjustmentValues", EAS_AdjustmentValues },
{ "SubViewSize", EAS_SubViewSize },
{ "Last", EAS_Last }, { "Last", EAS_Last },
{ "NotFound", EAS_NotFound } { "NotFound", EAS_NotFound }
......
...@@ -908,8 +908,26 @@ void ImpExportEnhancedGeometry( SvXMLExport& rExport, const uno::Reference< bean ...@@ -908,8 +908,26 @@ void ImpExportEnhancedGeometry( SvXMLExport& rExport, const uno::Reference< bean
for ( i = 0; i < nCount; i++ ) for ( i = 0; i < nCount; i++ )
{ {
const beans::PropertyValue& rProp = aPathPropSeq[ i ]; const beans::PropertyValue& rProp = aPathPropSeq[ i ];
switch( EASGet( rProp.Name ) ) switch( EASGet( rProp.Name ) )
{ {
case EAS_SubViewSize:
{
uno::Sequence< awt::Size > aSubViewSizes;
rProp.Value >>= aSubViewSizes;
for ( int nIdx = 0; nIdx < aSubViewSizes.getLength(); nIdx++ )
{
if ( nIdx )
aStrBuffer.append(' ');
::sax::Converter::convertNumber( aStrBuffer, aSubViewSizes[nIdx].Width );
aStrBuffer.append(' ');
::sax::Converter::convertNumber( aStrBuffer, aSubViewSizes[nIdx].Height );
}
aStr = aStrBuffer.makeStringAndClear();
rExport.AddAttribute( XML_NAMESPACE_DRAW_EXT, XML_SUB_VIEW_SIZE, aStr );
}
break;
case EAS_ExtrusionAllowed : case EAS_ExtrusionAllowed :
{ {
sal_Bool bExtrusionAllowed = sal_Bool(); sal_Bool bExtrusionAllowed = sal_Bool();
......
...@@ -472,6 +472,43 @@ void GetDoubleSequence( std::vector< com::sun::star::beans::PropertyValue >& rDe ...@@ -472,6 +472,43 @@ void GetDoubleSequence( std::vector< com::sun::star::beans::PropertyValue >& rDe
} }
} }
void GetSizeSequence( std::vector< com::sun::star::beans::PropertyValue >& rDest,
const rtl::OUString& rValue, const EnhancedCustomShapeTokenEnum eDestProp )
{
std::vector< sal_Int32 > vNum;
sal_Int32 nIndex = 0;
do
{
sal_Int32 n;
rtl::OUString aToken( rValue.getToken( 0, ' ', nIndex ) );
if (!::sax::Converter::convertNumber( n, aToken ))
break;
else
vNum.push_back( n );
}
while ( nIndex >= 0 );
if ( !vNum.empty() )
{
uno::Sequence< awt::Size > aSizeSeq( vNum.size() / 2 );
std::vector< sal_Int32 >::const_iterator aIter = vNum.begin();
std::vector< sal_Int32 >::const_iterator aEnd = vNum.end();
awt::Size* pValues = aSizeSeq.getArray();
while ( aIter != aEnd ) {
pValues->Width = *aIter++;
if ( aIter != aEnd )
pValues->Height = *aIter++;
pValues ++;
}
beans::PropertyValue aProp;
aProp.Name = EASGet( eDestProp );
aProp.Value <<= aSizeSeq;
rDest.push_back( aProp );
}
}
void GetEnhancedParameter( std::vector< com::sun::star::beans::PropertyValue >& rDest, // e.g. draw:handle-position void GetEnhancedParameter( std::vector< com::sun::star::beans::PropertyValue >& rDest, // e.g. draw:handle-position
const rtl::OUString& rValue, const EnhancedCustomShapeTokenEnum eDestProp ) const rtl::OUString& rValue, const EnhancedCustomShapeTokenEnum eDestProp )
{ {
...@@ -860,6 +897,9 @@ void XMLEnhancedCustomShapeContext::StartElement( const uno::Reference< xml::sax ...@@ -860,6 +897,9 @@ void XMLEnhancedCustomShapeContext::StartElement( const uno::Reference< xml::sax
mrCustomShapeGeometry.push_back( aProp ); mrCustomShapeGeometry.push_back( aProp );
} }
break; break;
case EAS_sub_view_size:
GetSizeSequence( maPath, rValue, EAS_SubViewSize );
break;
case EAS_text_rotate_angle : case EAS_text_rotate_angle :
GetDouble( mrCustomShapeGeometry, rValue, EAS_TextRotateAngle ); GetDouble( mrCustomShapeGeometry, rValue, EAS_TextRotateAngle );
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment