INTEGRATION: CWS impressrng01_SRC680 (1.57.56); FILE MERGED
2007/03/30 15:23:24 cl 1.57.56.2: fixed linux compile issue
2007/03/28 13:36:00 cl 1.57.56.1: #i42375# export empty href for placeholder ole-object and image
diff --git a/xmloff/source/draw/shapeexport2.cxx b/xmloff/source/draw/shapeexport2.cxx
index 3852725..e0973d5 100644
--- a/xmloff/source/draw/shapeexport2.cxx
+++ b/xmloff/source/draw/shapeexport2.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: shapeexport2.cxx,v $
*
* $Revision: 1.57 $
* $Revision: 1.58 $
*
* last change: $Author: ihi $ $Date: 2006-12-19 17:26:11 $
* last change: $Author: ihi $ $Date: 2007-04-16 13:11:31 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -1190,46 +1190,55 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
SvXMLElementExport aElem( mrExport, XML_NAMESPACE_DRAW,
XML_FRAME, bCreateNewline, sal_True );
if( !bIsEmptyPresObj )
if( !bIsEmptyPresObj || !mrExport.isExperimentalOdfExportEnabled() )
{
OUString aStreamURL;
OUString aStr;
xPropSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicURL"))) >>= sImageURL;
aStr = mrExport.AddEmbeddedGraphicObject( sImageURL );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, aStr );
if( aStr.getLength() )
if( !bIsEmptyPresObj )
{
if( aStr[ 0 ] == '#' )
OUString aStreamURL;
OUString aStr;
xPropSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicURL"))) >>= sImageURL;
aStr = mrExport.AddEmbeddedGraphicObject( sImageURL );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, aStr );
if( aStr.getLength() )
{
aStreamURL = OUString::createFromAscii( "vnd.sun.star.Package:" );
aStreamURL = aStreamURL.concat( aStr.copy( 1, aStr.getLength() - 1 ) );
if( aStr[ 0 ] == '#' )
{
aStreamURL = OUString::createFromAscii( "vnd.sun.star.Package:" );
aStreamURL = aStreamURL.concat( aStr.copy( 1, aStr.getLength() - 1 ) );
}
// update stream URL for load on demand
uno::Any aAny;
aAny <<= aStreamURL;
xPropSet->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicStreamURL")), aAny );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONLOAD );
}
// update stream URL for load on demand
uno::Any aAny;
aAny <<= aStreamURL;
xPropSet->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicStreamURL")), aAny );
}
else
{
OUString aStr;
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, aStr );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONLOAD );
}
}
{
SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_IMAGE, sal_True, sal_True);
if( sImageURL.getLength() )
{
// optional office:binary-data
mrExport.AddEmbeddedGraphicObjectAsBase64( sImageURL );
SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_IMAGE, sal_True, sal_True);
if( sImageURL.getLength() )
{
// optional office:binary-data
mrExport.AddEmbeddedGraphicObjectAsBase64( sImageURL );
}
if( !bIsEmptyPresObj )
ImpExportText( xShape );
}
if( !bIsEmptyPresObj )
ImpExportText( xShape );
}
ImpExportEvents( xShape );
@@ -1616,6 +1625,7 @@ void XMLShapeExport::ImpExportOLE2Shape(
SvXMLElementExport aElement( mrExport, XML_NAMESPACE_DRAW,
XML_FRAME, bCreateNewline, sal_True );
if( !bIsEmptyPresObj || !mrExport.isExperimentalOdfExportEnabled() )
{
if (pAttrList)
{
@@ -1669,6 +1679,17 @@ void XMLShapeExport::ImpExportOLE2Shape(
}
}
}
else
{
// export empty href for empty placeholders to be valid odf
OUString sEmptyURL;
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, sEmptyURL );
mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );
mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONLOAD );
}
enum XMLTokenEnum eElem = sClassId.getLength() ? XML_OBJECT_OLE : XML_OBJECT;
SvXMLElementExport aElem( mrExport, XML_NAMESPACE_DRAW, eElem, sal_True, sal_True );