summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.cz>2013-05-01 13:05:06 +0200
committerPetr Mladek <pmladek@suse.cz>2013-05-01 13:05:06 +0200
commit93e11e4fb697aaea63c99308f980e4c932bd1efa (patch)
tree1892e49932d8d7b7656ae504113a40e4e39f876f /xmloff
parenta5b6a379a2d628040db98060c2adfe8f2fac5607 (diff)
parentc6786add5a58268e11aa027c47054344040db1bc (diff)
Merge tag 'libreoffice-4.0.3.2' into suse-4.0
Tag libreoffice-4.0.3.2 Conflicts: basic/qa/cppunit/test_vba.cxx basic/source/runtime/step2.cxx dictionaries helpcontent2 instsetoo_native/util/openoffice.lst libvisio/UnpackedTarball_visio.mk sc/source/ui/vba/vbaapplication.cxx sc/source/ui/vba/vbavalidation.cxx solenv/inc/minor.mk sw/qa/extras/ooxmlimport/ooxmlimport.cxx translations Change-Id: Ic1f06489175f3db92d6bbcebb9732fadc1c61fed
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/inc/EnhancedCustomShapeToken.hxx2
-rw-r--r--xmloff/inc/xmloff/xmltoken.hxx1
-rw-r--r--xmloff/source/core/xmltoken.cxx1
-rw-r--r--xmloff/source/draw/EnhancedCustomShapeToken.cxx2
-rw-r--r--xmloff/source/draw/shapeexport4.cxx42
-rw-r--r--xmloff/source/draw/ximpcustomshape.cxx68
-rw-r--r--xmloff/source/draw/ximpshap.cxx2
7 files changed, 117 insertions, 1 deletions
diff --git a/xmloff/inc/EnhancedCustomShapeToken.hxx b/xmloff/inc/EnhancedCustomShapeToken.hxx
index 39a5faf355fe..42d95abca597 100644
--- a/xmloff/inc/EnhancedCustomShapeToken.hxx
+++ b/xmloff/inc/EnhancedCustomShapeToken.hxx
@@ -84,6 +84,7 @@ namespace xmloff { namespace EnhancedCustomShapeToken {
EAS_handle_polar,
EAS_handle_radius_range_minimum,
EAS_handle_radius_range_maximum,
+ EAS_sub_view_size,
EAS_CustomShapeEngine,
EAS_CustomShapeData,
@@ -145,6 +146,7 @@ namespace xmloff { namespace EnhancedCustomShapeToken {
EAS_SameLetterHeights,
EAS_Position,
EAS_AdjustmentValues,
+ EAS_SubViewSize,
EAS_Last,
EAS_NotFound
diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx
index f5b89a6acfdc..74b78f3ea224 100644
--- a/xmloff/inc/xmloff/xmltoken.hxx
+++ b/xmloff/inc/xmloff/xmltoken.hxx
@@ -1732,6 +1732,7 @@ namespace xmloff { namespace token {
XML_SUBTOTAL_FIELD,
XML_SUBTOTAL_RULE,
XML_SUBTOTAL_RULES,
+ XML_SUB_VIEW_SIZE,
XML_SUFFIX,
XML_SUM,
XML_SWISS,
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 9ada1b73e46c..801ce5f0a80d 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -1737,6 +1737,7 @@ namespace xmloff { namespace token {
TOKEN( "subtotal-field", XML_SUBTOTAL_FIELD ),
TOKEN( "subtotal-rule", XML_SUBTOTAL_RULE ),
TOKEN( "subtotal-rules", XML_SUBTOTAL_RULES ),
+ TOKEN( "sub-view-size", XML_SUB_VIEW_SIZE ),
TOKEN( "suffix", XML_SUFFIX ),
TOKEN( "sum", XML_SUM ),
TOKEN( "swiss", XML_SWISS ),
diff --git a/xmloff/source/draw/EnhancedCustomShapeToken.cxx b/xmloff/source/draw/EnhancedCustomShapeToken.cxx
index 1e12ee2fe697..ba70abd924c5 100644
--- a/xmloff/source/draw/EnhancedCustomShapeToken.cxx
+++ b/xmloff/source/draw/EnhancedCustomShapeToken.cxx
@@ -112,6 +112,7 @@ static const TokenTable pTokenTableArray[] =
{ "handle-polar", EAS_handle_polar },
{ "handle-radius-range-minimum", EAS_handle_radius_range_minimum },
{ "handle-radius-range-maximum", EAS_handle_radius_range_maximum },
+ { "sub-view-size", EAS_sub_view_size },
{ "CustomShapeEngine", EAS_CustomShapeEngine },
{ "CustomShapeData", EAS_CustomShapeData },
@@ -173,6 +174,7 @@ static const TokenTable pTokenTableArray[] =
{ "SameLetterHeights", EAS_SameLetterHeights },
{ "Position", EAS_Position },
{ "AdjustmentValues", EAS_AdjustmentValues },
+ { "SubViewSize", EAS_SubViewSize },
{ "Last", EAS_Last },
{ "NotFound", EAS_NotFound }
diff --git a/xmloff/source/draw/shapeexport4.cxx b/xmloff/source/draw/shapeexport4.cxx
index d47b6bbd1a86..ce504fe2b793 100644
--- a/xmloff/source/draw/shapeexport4.cxx
+++ b/xmloff/source/draw/shapeexport4.cxx
@@ -413,6 +413,30 @@ void ImpExportEnhancedPath( SvXMLExport& rExport,
i += 2;
}
break;
+ case com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::DARKEN :
+ if ( bExtended )
+ aStrBuffer.append( (sal_Unicode)'H' );
+ else
+ bNeedExtended = true;
+ break;
+ case com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::DARKENLESS :
+ if ( bExtended )
+ aStrBuffer.append( (sal_Unicode)'I' );
+ else
+ bNeedExtended = true;
+ break;
+ case com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::LIGHTEN :
+ if ( bExtended )
+ aStrBuffer.append( (sal_Unicode)'J' );
+ else
+ bNeedExtended = true;
+ break;
+ case com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::LIGHTENLESS :
+ if ( bExtended )
+ aStrBuffer.append( (sal_Unicode)'K' );
+ else
+ bNeedExtended = true;
+ break;
default : // ups, seems to be something wrong
{
aSegment.Count = 1;
@@ -908,8 +932,26 @@ void ImpExportEnhancedGeometry( SvXMLExport& rExport, const uno::Reference< bean
for ( i = 0; i < nCount; i++ )
{
const beans::PropertyValue& rProp = aPathPropSeq[ i ];
+
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 :
{
sal_Bool bExtrusionAllowed = sal_Bool();
diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx
index 3b145ca526fc..1a280ef14347 100644
--- a/xmloff/source/draw/ximpcustomshape.cxx
+++ b/xmloff/source/draw/ximpcustomshape.cxx
@@ -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
const rtl::OUString& rValue, const EnhancedCustomShapeTokenEnum eDestProp )
{
@@ -665,6 +702,34 @@ void GetEnhancedPath( std::vector< com::sun::star::beans::PropertyValue >& rDest
nIndex++;
}
break;
+ case 'H' :
+ {
+ nLatestSegmentCommand = com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::DARKEN;
+ nParametersNeeded = 0;
+ nIndex++;
+ }
+ break;
+ case 'I' :
+ {
+ nLatestSegmentCommand = com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::DARKENLESS;
+ nParametersNeeded = 0;
+ nIndex++;
+ }
+ break;
+ case 'J' :
+ {
+ nLatestSegmentCommand = com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::LIGHTEN;
+ nParametersNeeded = 0;
+ nIndex++;
+ }
+ break;
+ case 'K' :
+ {
+ nLatestSegmentCommand = com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::LIGHTENLESS;
+ nParametersNeeded = 0;
+ nIndex++;
+ }
+ break;
case 'W' :
{
nLatestSegmentCommand = com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::CLOCKWISEARCTO;
@@ -860,6 +925,9 @@ void XMLEnhancedCustomShapeContext::StartElement( const uno::Reference< xml::sax
mrCustomShapeGeometry.push_back( aProp );
}
break;
+ case EAS_sub_view_size:
+ GetSizeSequence( maPath, rValue, EAS_SubViewSize );
+ break;
case EAS_text_rotate_angle :
GetDouble( mrCustomShapeGeometry, rValue, EAS_TextRotateAngle );
break;
diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx
index 08d8decfb59a..e52736ce0199 100644
--- a/xmloff/source/draw/ximpshap.cxx
+++ b/xmloff/source/draw/ximpshap.cxx
@@ -367,7 +367,7 @@ void SdXMLShapeContext::EndElement()
rtl::OUString sLink( "Hyperlink" );
if ( xProp.is() && xProp->getPropertySetInfo()->hasPropertyByName( sLink ) )
xProp->setPropertyValue( sLink, uno::Any( msHyperlink ) );
- Reference< XEventsSupplier > xEventsSupplier( mxShape, UNO_QUERY_THROW );
+ Reference< XEventsSupplier > xEventsSupplier( mxShape, UNO_QUERY );
const OUString sBookmark( "Bookmark" );
if( xEventsSupplier.is() )