[Libreoffice-commits] .: Branch 'feature/svg-export' - filter/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Aug 24 03:37:49 PDT 2012


 filter/source/svg/presentation_engine.js |   14 -
 filter/source/svg/svgexport.cxx          |   41 ---
 filter/source/svg/svgwriter.cxx          |  381 ++++++++++++++++++++-----------
 3 files changed, 262 insertions(+), 174 deletions(-)

New commits:
commit b42e10c2d8001f6fde3171f7b2d2f94367043b22
Author: Marco Cecchetti <mrcekets at gmail.com>
Date:   Fri Aug 24 10:55:30 2012 +0200

    Now debugging code is conditionally compiled and JavaScript debug log are turned off.

diff --git a/filter/source/svg/presentation_engine.js b/filter/source/svg/presentation_engine.js
index 7d98d5d..91110b7 100644
--- a/filter/source/svg/presentation_engine.js
+++ b/filter/source/svg/presentation_engine.js
@@ -341,7 +341,7 @@ function mouseClickHelper( aEvt )
             var sSelectedText =  aTextSelection.toString();
             if( sSelectedText )
             {
-                log( 'text selection: ' + sSelectedText );
+                DBGLOG( 'text selection: ' + sSelectedText );
                 if( sLastSelectedText !== sSelectedText )
                 {
                     bTextHasBeenSelected = true;
@@ -1682,6 +1682,10 @@ DebugPrinter.prototype.print = function( sMessage, nTime )
 
 
 // - Debug Printers -
+var aGenericDebugPrinter = new DebugPrinter();
+aGenericDebugPrinter.on();
+var DBGLOG = bind2( DebugPrinter.prototype.print, aGenericDebugPrinter );
+
 var NAVDBG = new DebugPrinter();
 NAVDBG.off();
 
@@ -9663,7 +9667,7 @@ AnimatedTextElement.prototype.setToElement = function( aElement )
 
 AnimatedTextElement.prototype.notifySlideStart = function( aSlideShowContext )
 {
-    log( 'AnimatedTextElement.notifySlideStart' );
+    DBGLOG( 'AnimatedTextElement.notifySlideStart' );
     AnimatedTextElement.superclass.notifySlideStart.call( this, aSlideShowContext );
     this.aGraphicGroupElement = getElementByClassName( this.aActiveElement, 'GraphicGroup' );
     this.restoreBaseTextParagraph();
@@ -9671,7 +9675,7 @@ AnimatedTextElement.prototype.notifySlideStart = function( aSlideShowContext )
 
 AnimatedTextElement.prototype.notifySlideEnd = function()
 {
-    log( 'AnimatedTextElement.notifySlideEnd' );
+    DBGLOG( 'AnimatedTextElement.notifySlideEnd' );
     this.aGraphicGroupElement.setAttribute( 'visibility', 'inherit' );
 };
 
@@ -9709,7 +9713,7 @@ AnimatedTextElement.prototype.restoreBaseTextParagraph = function()
 
 AnimatedTextElement.prototype.notifyAnimationStart = function()
 {
-    log( 'AnimatedTextElement.notifyAnimationStart' );
+    DBGLOG( 'AnimatedTextElement.notifyAnimationStart' );
     if( this.nRunningAnimations === 0 )
     {
         var sVisibilityAttr = this.aParagraphElement.getAttribute( 'visibility' );
@@ -9724,7 +9728,7 @@ AnimatedTextElement.prototype.notifyAnimationStart = function()
 
 AnimatedTextElement.prototype.notifyAnimationEnd = function()
 {
-    log( 'AnimatedTextElement.notifyAnimationEnd' );
+    DBGLOG( 'AnimatedTextElement.notifyAnimationEnd' );
     --this.nRunningAnimations;
     if( this.nRunningAnimations === 0 )
     {
diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx
index 8f8d727..cf76b91 100644
--- a/filter/source/svg/svgexport.cxx
+++ b/filter/source/svg/svgexport.cxx
@@ -1749,42 +1749,6 @@ sal_Bool SVGFilter::implExportShape( const Reference< XShape >& rxShape )
                 {   // for text field shapes we set up text-adjust attributes
                     // and set visibility to hidden
                     OUString aShapeClass = implGetClassFromShape( rxShape );
-
-
-
-                    {
-//                        Reference< XPropertySetInfo > xPropSetInfo = xShapePropSet->getPropertySetInfo();
-//                        Sequence< Property > aPropSeq = xPropSetInfo->getProperties();
-//                        sal_Int32 nLength = aPropSeq.getLength();
-//                        OUString sGraphicPropList;
-//                        for( sal_Int32 i = 0; i < nLength; ++i )
-//                        {
-//                            sGraphicPropList += aPropSeq[i].Name;
-//                            sGraphicPropList += B2UCONST( ": " );
-//                            sGraphicPropList += aPropSeq[i].Type.getTypeName();
-//                            sGraphicPropList += B2UCONST( "; " );
-//                        }
-//                        mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "class", B2UCONST( "Graphic" ) );
-//                        mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "property-list", sGraphicPropList );
-//                        SvXMLElementExport aExp2( *mpSVGExport, XML_NAMESPACE_NONE, "desc", sal_True, sal_True );
-
-//                        if( xPropSetInfo->hasPropertyByName( B2UCONST( "GraphicURL" ) ) )
-//                        {
-//                            OUString sGraphicURL;
-//                            if( xShapePropSet->getPropertyValue( B2UCONST( "GraphicURL" ) ) >>= sGraphicURL )
-//                            {
-//                                if( !sGraphicURL.isEmpty() )
-//                                {
-//                                    mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "class", B2UCONST( "GraphicURL" ) );
-//                                    mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "xlink:ref", sGraphicURL );
-//                                    SvXMLElementExport aExp2( *mpSVGExport, XML_NAMESPACE_NONE, "desc", sal_True, sal_True );
-//                                }
-//                            }
-//                        }
-                    }
-
-
-
                     if( mbPresentation )
                     {
                         sal_Bool bIsPageNumber  = ( aShapeClass == "Slide_Number" );
@@ -1859,7 +1823,6 @@ sal_Bool SVGFilter::implExportShape( const Reference< XShape >& rxShape )
                     if( !rShapeId.isEmpty() )
                     {
                         mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "id", rShapeId );
-
                     }
 
                     const GDIMetaFile* pEmbeddedBitmapsMtf = NULL;
@@ -1968,7 +1931,6 @@ sal_Bool SVGFilter::implCreateObjectsFromShapes( const Reference< XDrawPage > &
 sal_Bool SVGFilter::implCreateObjectsFromShape( const Reference< XDrawPage > & rxPage, const Reference< XShape >& rxShape )
 {
     sal_Bool bRet = sal_False;
-
     if( rxShape->getShapeType().lastIndexOf( B2UCONST( "drawing.GroupShape" ) ) != -1 )
     {
         Reference< XShapes > xShapes( rxShape, UNO_QUERY );
@@ -2075,8 +2037,8 @@ sal_Bool SVGFilter::implCreateObjectsFromShape( const Reference< XDrawPage > & r
                         }
                     }
                     (*mpObjects)[ rxShape ] = ObjectRepresentation( rxShape, aGraphic.GetGDIMetaFile() );
-                    bRet = sal_True;
                 }
+                bRet = sal_True;
             }
         }
     }
@@ -2183,7 +2145,6 @@ OUString SVGFilter::implGetInterfaceName( const Reference< XInterface >& rxIf )
 IMPL_LINK( SVGFilter, CalcFieldHdl, EditFieldInfo*, pInfo )
 {
     sal_Bool bFieldProcessed = sal_False;
-
     if( pInfo && mbPresentation )
     {
         bFieldProcessed = true;
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx
index d13ac78..ab7efe3 100644
--- a/filter/source/svg/svgwriter.cxx
+++ b/filter/source/svg/svgwriter.cxx
@@ -109,8 +109,6 @@ static sal_Char const XML_UNO_NAME_NRULE_BULLET_CHAR[] = "BulletChar";
 // -----------------------------------------------------------------------------
 
 
-
-
 // ----------------------
 // - SVGAttributeWriter -
 // ----------------------
@@ -949,6 +947,8 @@ sal_Bool SVGTextWriter::nextParagraph()
     mrCurrentTextParagraph.clear();
     mbIsNewListItem = sal_False;
     mbIsListLevelStyleImage = sal_False;
+
+#if OSL_DEBUG_LEVEL > 0
     if( mrParagraphEnumeration.is() && mrParagraphEnumeration->hasMoreElements() )
     {
         Reference < XTextContent >  xTextContent( mrParagraphEnumeration->nextElement(), UNO_QUERY_THROW );
@@ -960,21 +960,6 @@ sal_Bool SVGTextWriter::nextParagraph()
                 OUString sInfo;
                 if( xServiceInfo->supportsService( B2UCONST( "com.sun.star.text.Paragraph" ) ) )
                 {
-//                    {
-//                        Reference < XEnumeration> xContentEnum;
-//                        Reference < XContentEnumerationAccess > xCEA( xTextContent, UNO_QUERY );
-//                        if( xCEA.is() )
-//                            xContentEnum.set(xCEA->createContentEnumeration( B2UCONST( "com.sun.star.text.Paragraph" ) ));
-//                        const sal_Bool bHasContentEnum = xContentEnum.is() &&
-//                                                            xContentEnum->hasMoreElements();
-//
-//                        if( bHasContentEnum )
-//                        {
-//                            sInfo = B2UCONST( "true" );
-//                            mrExport.AddAttribute( XML_NAMESPACE_NONE, "has-content-enum", sInfo );
-//                        }
-//                    }
-
                     mrCurrentTextParagraph.set( xTextContent );
                     Reference< XPropertySet > xPropSet( xTextContent, UNO_QUERY_THROW );
                     Reference< XPropertySetInfo > xPropSetInfo = xPropSet->getPropertySetInfo();
@@ -1049,7 +1034,6 @@ sal_Bool SVGTextWriter::nextParagraph()
                                                     cBullet = 0xF000 + 149;
                                                 }
                                                 mcBulletChar = cBullet;
-                                                // text:bullet-char="..."
                                                 sInfo = OUString::valueOf( (sal_Int32) cBullet );
                                                 mrExport.AddAttribute( XML_NAMESPACE_NONE, "bullet-char", sInfo );
                                             }
@@ -1072,6 +1056,7 @@ sal_Bool SVGTextWriter::nextParagraph()
                 }
                 else if( xServiceInfo->supportsService( B2UCONST( "com.sun.star.text.Table" ) ) )
                 {
+                    OSL_FAIL( "SVGTextWriter::nextParagraph: text tables are not handled." );
                     sInfo = B2UCONST( "Table" );
                 }
                 else
@@ -1097,6 +1082,126 @@ sal_Bool SVGTextWriter::nextParagraph()
             return sal_True;
         }
     }
+#else
+    if( mrParagraphEnumeration.is() && mrParagraphEnumeration->hasMoreElements() )
+    {
+        Reference < XTextContent >  xTextContent( mrParagraphEnumeration->nextElement(), UNO_QUERY_THROW );
+        if( xTextContent.is() )
+        {
+            Reference< XServiceInfo > xServiceInfo( xTextContent, UNO_QUERY_THROW );
+            if( xServiceInfo.is() )
+            {
+                if( xServiceInfo->supportsService( B2UCONST( "com.sun.star.text.Paragraph" ) ) )
+                {
+                    mrCurrentTextParagraph.set( xTextContent );
+                    Reference< XPropertySet > xPropSet( xTextContent, UNO_QUERY_THROW );
+                    Reference< XPropertySetInfo > xPropSetInfo = xPropSet->getPropertySetInfo();
+                    if( xPropSetInfo->hasPropertyByName( B2UCONST( "NumberingLevel" ) ) )
+                    {
+                        sal_Int16 nListLevel = 0;
+                        if( xPropSet->getPropertyValue( B2UCONST( "NumberingLevel" ) ) >>= nListLevel )
+                        {
+                            mbIsNewListItem = sal_True;
+
+                            Reference< XIndexReplace > xNumRules;
+                            if( xPropSetInfo->hasPropertyByName( B2UCONST( "NumberingRules" ) ) )
+                            {
+                                xPropSet->getPropertyValue( B2UCONST( "NumberingRules" ) ) >>= xNumRules;
+                            }
+                            if( xNumRules.is() && ( nListLevel < xNumRules->getCount() ) )
+                            {
+                                sal_Bool bIsNumbered = sal_True;
+                                OUString msNumberingIsNumber(RTL_CONSTASCII_USTRINGPARAM("NumberingIsNumber"));
+                                if( xPropSetInfo->hasPropertyByName( msNumberingIsNumber ) )
+                                {
+                                    if( !(xPropSet->getPropertyValue( msNumberingIsNumber ) >>= bIsNumbered ) )
+                                    {
+                                        OSL_FAIL( "numbered paragraph without number info" );
+                                        bIsNumbered = sal_False;
+                                    }
+                                }
+                                mbIsNewListItem = bIsNumbered;
+
+                                if( bIsNumbered )
+                                {
+                                    Sequence<PropertyValue> aProps;
+                                    if( xNumRules->getByIndex( nListLevel ) >>= aProps )
+                                    {
+                                        sal_Int16 eType = NumberingType::CHAR_SPECIAL;
+                                        sal_Unicode cBullet = 0xf095;
+                                        const sal_Int32 nCount = aProps.getLength();
+                                        const PropertyValue* pPropArray = aProps.getConstArray();
+                                        for( sal_Int32 i = 0; i < nCount; ++i )
+                                        {
+                                            const PropertyValue& rProp = pPropArray[i];
+                                            if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_NUMBERINGTYPE, sizeof(XML_UNO_NAME_NRULE_NUMBERINGTYPE)-1 ) )
+                                            {
+                                                rProp.Value >>= eType;
+                                            }
+                                            else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_BULLET_CHAR, sizeof(XML_UNO_NAME_NRULE_BULLET_CHAR)-1 ) )
+                                            {
+                                                OUString sValue;
+                                                rProp.Value >>= sValue;
+                                                if( !sValue.isEmpty() )
+                                                {
+                                                    cBullet = (sal_Unicode)sValue[0];
+                                                }
+                                            }
+                                        }
+                                        meNumberingType = eType;
+                                        mbIsListLevelStyleImage = ( NumberingType::BITMAP == meNumberingType );
+                                        if( NumberingType::CHAR_SPECIAL == meNumberingType )
+                                        {
+                                            if( cBullet )
+                                            {
+                                                if( cBullet < ' ' )
+                                                {
+                                                    cBullet = 0xF000 + 149;
+                                                }
+                                                mcBulletChar = cBullet;
+                                            }
+
+                                        }
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+
+                    Reference< XEnumerationAccess > xEnumerationAccess( xTextContent, UNO_QUERY_THROW );
+                    Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), UNO_QUERY_THROW );
+                    if( xEnumeration.is() && xEnumeration->hasMoreElements() )
+                    {
+                        mrTextPortionEnumeration.set( xEnumeration );
+                    }
+                }
+                else if( xServiceInfo->supportsService( B2UCONST( "com.sun.star.text.Table" ) ) )
+                {
+                    OSL_FAIL( "SVGTextWriter::nextParagraph: text tables are not handled." );
+                }
+                else
+                {
+                    OSL_FAIL( "SVGTextWriter::nextParagraph: Unknown text content." );
+                    return sal_False;
+                }
+            }
+            else
+            {
+                OSL_FAIL( "SVGTextWriter::nextParagraph: no XServiceInfo interface available for text content." );
+                return sal_False;
+            }
+
+            Reference< XInterface > xRef( xTextContent, UNO_QUERY );
+            const OUString& rParagraphId = implGetValidIDFromInterface( xRef );
+            if( !rParagraphId.isEmpty() )
+            {
+                mrExport.AddAttribute( XML_NAMESPACE_NONE, "id", rParagraphId );
+            }
+            return sal_True;
+        }
+    }
+#endif
     return sal_False;
 }
 
@@ -1107,6 +1212,7 @@ sal_Bool SVGTextWriter::nextTextPortion()
     mrCurrentTextPortion.clear();
     mbIsURLField = sal_False;
     mbIsPlacehlolderShape = sal_False;
+#if OSL_DEBUG_LEVEL > 0
     if( mrTextPortionEnumeration.is() && mrTextPortionEnumeration->hasMoreElements() )
     {
         OUString sInfo;
@@ -1221,6 +1327,96 @@ sal_Bool SVGTextWriter::nextTextPortion()
             return sal_True;
         }
     }
+#else
+    if( mrTextPortionEnumeration.is() && mrTextPortionEnumeration->hasMoreElements() )
+    {
+        OUString sInfo;
+        Reference< XPropertySet > xPortionPropSet( mrTextPortionEnumeration->nextElement(), UNO_QUERY );
+        Reference< XPropertySetInfo > xPortionPropInfo( xPortionPropSet->getPropertySetInfo() );
+        Reference < XTextRange > xPortionTextRange( xPortionPropSet, UNO_QUERY);
+        if( xPortionPropSet.is() && xPortionPropInfo.is()
+                && xPortionPropInfo->hasPropertyByName( B2UCONST( "TextPortionType" ) ) )
+        {
+            if( xPortionTextRange.is() )
+            {
+                mrCurrentTextPortion.set( xPortionTextRange );
+
+                Reference < XPropertySet > xRangePropSet( xPortionTextRange, UNO_QUERY );
+                if( xRangePropSet.is() && xRangePropSet->getPropertySetInfo()->hasPropertyByName( B2UCONST( "TextField" ) ) )
+                {
+                    Reference < XTextField > xTextField( xRangePropSet->getPropertyValue( B2UCONST( "TextField" ) ), UNO_QUERY );
+                    if( xTextField.is() )
+                    {
+                        const ::rtl::OUString sServicePrefix( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.textfield.") );
+                        const ::rtl::OUString sPresentationServicePrefix( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.TextField.") );
+
+                        Reference< XServiceInfo > xService( xTextField, UNO_QUERY );
+                        const Sequence< OUString > aServices = xService->getSupportedServiceNames();
+
+                        const OUString* pNames = aServices.getConstArray();
+                        sal_Int32 nCount = aServices.getLength();
+
+                        OUString sFieldName;    // service name postfix of current field
+
+                        // search for TextField service name
+                        while( nCount-- )
+                        {
+                            if ( pNames->matchIgnoreAsciiCase( sServicePrefix ) )
+                            {
+                                // TextField found => postfix is field type!
+                                sFieldName = pNames->copy( sServicePrefix.getLength() );
+                                break;
+                            }
+                            else if( 0 == pNames->compareTo( sPresentationServicePrefix, sPresentationServicePrefix.getLength() ) )
+                            {
+                                // TextField found => postfix is field type!
+                                sFieldName = pNames->copy( sPresentationServicePrefix.getLength() );
+                                break;
+                            }
+
+                            ++pNames;
+                        }
+
+                        if( sFieldName.equalsAscii( "DateTime" ) || sFieldName.equalsAscii( "Header" )
+                                || sFieldName.equalsAscii( "Footer" ) || sFieldName.equalsAscii( "PageNumber" ) )
+                        {
+                            mbIsPlacehlolderShape = sal_True;
+                        }
+                        else
+                        {
+                            mbIsURLField = sFieldName.equalsAscii( "URL" );
+                            if( mbIsURLField )
+                            {
+                                Reference<XPropertySet> xTextFieldPropSet(xTextField, UNO_QUERY);
+                                if( xTextFieldPropSet.is() )
+                                {
+                                    OUString sURL;
+                                    if( ( xTextFieldPropSet->getPropertyValue( sFieldName ) ) >>= sURL )
+                                    {
+                                        msUrl = mrExport.GetRelativeReference( sURL );
+                                        if( !msUrl.isEmpty() )
+                                        {
+                                            implRegisterInterface( xPortionTextRange );
+
+                                            Reference< XInterface > xRef( xPortionTextRange, UNO_QUERY );
+                                            const OUString& rTextPortionId = implGetValidIDFromInterface( xRef );
+                                            if( !rTextPortionId.isEmpty() )
+                                            {
+                                                msHyperlinkIdList += rTextPortionId;
+                                                msHyperlinkIdList += B2UCONST( " " );
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            return sal_True;
+        }
+    }
+#endif
     return sal_False;
 }
 
@@ -1472,7 +1668,7 @@ void SVGTextWriter::implWriteEmbeddedBitmaps()
         const GDIMetaFile& rMtf = *mpTextEmbeddedBitmapMtf;
 
         OUString sId, sRefId;
-        sal_uLong nId, nChecksum;
+        sal_uLong nId, nChecksum = 0;
         Point aPt;
         Size  aSz;
         sal_uLong nCount = rMtf.GetActionSize();
@@ -1555,45 +1751,42 @@ void SVGTextWriter::writeTextPortion( const Point& rPos,
         bool bNotSync = true;
         OUString sContent;
         sal_Int32 nStartPos;
-//        do
-//        {
-            while( bNotSync )
+        while( bNotSync )
+        {
+            if( mnLeftTextPortionLength <= 0 )
             {
-                if( mnLeftTextPortionLength <= 0 )
-                {
-                    if( !nextTextPortion() )
-                        break;
-                    else
-                    {
-                        sContent = mrCurrentTextPortion->getString();
-                        if( mbIsURLField && sContent.isEmpty() )
-                        {
-                            Reference < XPropertySet > xPropSet( mrCurrentTextPortion, UNO_QUERY );
-                            Reference < XTextField > xTextField( xPropSet->getPropertyValue( B2UCONST( "TextField" ) ), UNO_QUERY );
-                            sContent = xTextField->getPresentation( /* show command: */ sal_False );
-                            if( sContent.isEmpty() )
-                                OSL_FAIL( "SVGTextWriter::writeTextPortion: content of URL TextField is empty." );
-                        }
-                        mnLeftTextPortionLength = sContent.getLength();
-                    }
-                }
+                if( !nextTextPortion() )
+                    break;
                 else
                 {
                     sContent = mrCurrentTextPortion->getString();
+                    if( mbIsURLField && sContent.isEmpty() )
+                    {
+                        Reference < XPropertySet > xPropSet( mrCurrentTextPortion, UNO_QUERY );
+                        Reference < XTextField > xTextField( xPropSet->getPropertyValue( B2UCONST( "TextField" ) ), UNO_QUERY );
+                        sContent = xTextField->getPresentation( /* show command: */ sal_False );
+                        if( sContent.isEmpty() )
+                            OSL_FAIL( "SVGTextWriter::writeTextPortion: content of URL TextField is empty." );
+                    }
+                    mnLeftTextPortionLength = sContent.getLength();
                 }
+            }
+            else
+            {
+                sContent = mrCurrentTextPortion->getString();
+            }
 
-                nStartPos = sContent.getLength() - mnLeftTextPortionLength;
-                if( nStartPos < 0 ) nStartPos = 0;
-                mnLeftTextPortionLength -= rText.Len();
+            nStartPos = sContent.getLength() - mnLeftTextPortionLength;
+            if( nStartPos < 0 ) nStartPos = 0;
+            mnLeftTextPortionLength -= rText.Len();
 
-                if( sContent.isEmpty() )
-                    continue;
-                if( sContent.equalsAscii( "\n" ) )
-                    mbLineBreak = sal_True;
-                if( sContent.match( rText, nStartPos ) )
-                    bNotSync = false;
-            }
-//        } while( bNotSync && nextParagraph() );
+            if( sContent.isEmpty() )
+                continue;
+            if( sContent.equalsAscii( "\n" ) )
+                mbLineBreak = sal_True;
+            if( sContent.match( rText, nStartPos ) )
+                bNotSync = false;
+        }
     }
 
     if( !mpVDev )
@@ -1607,82 +1800,10 @@ void SVGTextWriter::writeTextPortion( const Point& rPos,
     {
         implWriteTextPortion( rPos, rText, mpVDev->GetTextColor(), bApplyMapping );
     }
-//    else
-//    {
-//        if( aMetric.GetRelief() != RELIEF_NONE )
-//        {
-//            Color aReliefColor( COL_LIGHTGRAY );
-//            Color aTextColor( mpVDev->GetTextColor() );
-//
-//            if ( aTextColor.GetColor() == COL_BLACK )
-//                aTextColor = Color( COL_WHITE );
-//
-//            if ( aTextColor.GetColor() == COL_WHITE )
-//                aReliefColor = Color( COL_BLACK );
-//
-//
-//            Point aPos( rPos );
-//            Point aOffset( 6, 6 );
-//
-//            if ( aMetric.GetRelief() == RELIEF_ENGRAVED )
-//            {
-//                aPos -= aOffset;
-//            }
-//            else
-//            {
-//                aPos += aOffset;
-//            }
-//
-//            ImplWriteText( aPos, rText, pDXArray, nWidth, aReliefColor, bApplyMapping );
-//            ImplWriteText( rPos, rText, pDXArray, nWidth, aTextColor, bApplyMapping );
-//        }
-//        else
-//        {
-//            if( aMetric.IsShadow() )
-//            {
-//                long nOff = 1 + ((aMetric.GetLineHeight()-24)/24);
-//                if ( aMetric.IsOutline() )
-//                    nOff += 6;
-//
-//                Color aTextColor( mpVDev->GetTextColor() );
-//                Color aShadowColor = Color( COL_BLACK );
-//
-//                if ( (aTextColor.GetColor() == COL_BLACK) || (aTextColor.GetLuminance() < 8) )
-//                    aShadowColor = Color( COL_LIGHTGRAY );
-//
-//                Point aPos( rPos );
-//                aPos += Point( nOff, nOff );
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, aShadowColor, bApplyMapping );
-//
-//                if( !aMetric.IsOutline() )
-//                {
-//                    ImplWriteText( rPos, rText, pDXArray, nWidth, aTextColor, bApplyMapping );
-//                }
-//            }
-//
-//            if( aMetric.IsOutline() )
-//            {
-//                Point aPos = rPos + Point( -6, -6 );
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//                aPos = rPos + Point( +6, +6);
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//                aPos = rPos + Point( -6, +0);
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//                aPos = rPos + Point( -6, +6);
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//                aPos = rPos + Point( +0, +6);
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//                aPos = rPos + Point( +0, -6);
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//                aPos = rPos + Point( +6, -1);
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//                aPos = rPos + Point( +6, +0);
-//                ImplWriteText( aPos, rText, pDXArray, nWidth, mpVDev->GetTextColor(), bApplyMapping );
-//
-//                ImplWriteText( rPos, rText, pDXArray, nWidth, Color( COL_WHITE ), bApplyMapping );
-//            }
-//        }
-//    }
+    else
+    {
+        // to be implemented
+    }
 
 }
 
@@ -2784,13 +2905,14 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
         nWriteFlags |= SVGWRITER_NO_SHAPE_COMMENTS;
 
 
+#if OSL_DEBUG_LEVEL > 0
     bool bIsTextShape = false;
     if( !mrExport.IsUsePositionedCharacters() && pxShape
             && Reference< XText >( *pxShape, UNO_QUERY ).is() )
     {
         bIsTextShape = true;
     }
-
+#endif
     mbIsPlacehlolderShape = false;
     if( ( pElementId != NULL ) && ( *pElementId == sPlaceholderTag ) )
     {
@@ -2804,6 +2926,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
         const MetaAction*   pAction = rMtf.GetAction( nCurAction );
         const sal_uInt16        nType = pAction->GetType();
 
+#if OSL_DEBUG_LEVEL > 0
         if( bIsTextShape )
         {
             try
@@ -2848,7 +2971,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
             }
 
         }
-
+#endif
         switch( nType )
         {
             case( META_PIXEL_ACTION ):


More information about the Libreoffice-commits mailing list