Return-Path: X-Original-To: apmail-incubator-ooo-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-ooo-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 870ADDECF for ; Thu, 27 Sep 2012 16:32:28 +0000 (UTC) Received: (qmail 50063 invoked by uid 500); 27 Sep 2012 16:32:28 -0000 Delivered-To: apmail-incubator-ooo-commits-archive@incubator.apache.org Received: (qmail 49955 invoked by uid 500); 27 Sep 2012 16:32:28 -0000 Mailing-List: contact ooo-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ooo-dev@incubator.apache.org Delivered-To: mailing list ooo-commits@incubator.apache.org Received: (qmail 49947 invoked by uid 99); 27 Sep 2012 16:32:28 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Sep 2012 16:32:28 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Sep 2012 16:32:25 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id A80AA23888E3; Thu, 27 Sep 2012 16:31:38 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1391088 - /incubator/ooo/trunk/main/svx/source/xoutdev/_xoutbmp.cxx Date: Thu, 27 Sep 2012 16:31:38 -0000 To: ooo-commits@incubator.apache.org From: alg@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120927163138.A80AA23888E3@eris.apache.org> Author: alg Date: Thu Sep 27 16:31:38 2012 New Revision: 1391088 URL: http://svn.apache.org/viewvc?rev=1391088&view=rev Log: #121128# added missing original data export for SVG in XOutBitmap::WriteGraphic Modified: incubator/ooo/trunk/main/svx/source/xoutdev/_xoutbmp.cxx Modified: incubator/ooo/trunk/main/svx/source/xoutdev/_xoutbmp.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/svx/source/xoutdev/_xoutbmp.cxx?rev=1391088&r1=1391087&r2=1391088&view=diff ============================================================================== --- incubator/ooo/trunk/main/svx/source/xoutdev/_xoutbmp.cxx (original) +++ incubator/ooo/trunk/main/svx/source/xoutdev/_xoutbmp.cxx Thu Sep 27 16:31:38 2012 @@ -343,43 +343,74 @@ sal_uInt16 XOutBitmap::WriteGraphic( con aURL.setBase( aName ); } - if( ( nFlags & XOUTBMP_USE_NATIVE_IF_POSSIBLE ) && - !( nFlags & XOUTBMP_MIRROR_HORZ ) && - !( nFlags & XOUTBMP_MIRROR_VERT ) && - ( rGraphic.GetType() != GRAPHIC_GDIMETAFILE ) && rGraphic.IsLink() ) - { - // try to write native link - const GfxLink aGfxLink( ( (Graphic&) rGraphic ).GetLink() ); - - switch( aGfxLink.GetType() ) - { - case( GFX_LINK_TYPE_NATIVE_GIF ): aExt = FORMAT_GIF; break; - case( GFX_LINK_TYPE_NATIVE_JPG ): aExt = FORMAT_JPG; break; - case( GFX_LINK_TYPE_NATIVE_PNG ): aExt = FORMAT_PNG; break; + // #121128# use shortcut to write SVG data in original form (if possible) + const SvgDataPtr aSvgDataPtr(rGraphic.getSvgData()); - default: - break; - } + if(aSvgDataPtr.get() + && aSvgDataPtr->getSvgDataArrayLength() + && rFilterName.EqualsIgnoreCaseAscii("svg")) + { + if(!(nFlags & XOUTBMP_DONT_ADD_EXTENSION)) + { + aURL.setExtension(rFilterName); + } + + rFileName = aURL.GetMainURL(INetURLObject::NO_DECODE); + SfxMedium aMedium(aURL.GetMainURL(INetURLObject::NO_DECODE), STREAM_WRITE|STREAM_SHARE_DENYNONE|STREAM_TRUNC, true); + SvStream* pOStm = aMedium.GetOutStream(); + + if(pOStm) + { + pOStm->Write(aSvgDataPtr->getSvgDataArray().get(), aSvgDataPtr->getSvgDataArrayLength()); + aMedium.Commit(); + + if(!aMedium.GetError()) + { + nErr = GRFILTER_OK; + } + } + } - if( aExt.Len() ) - { - if( 0 == (nFlags & XOUTBMP_DONT_ADD_EXTENSION)) - aURL.setExtension( aExt ); - rFileName = aURL.GetMainURL( INetURLObject::NO_DECODE ); + if( GRFILTER_OK != nErr ) + { + if( ( nFlags & XOUTBMP_USE_NATIVE_IF_POSSIBLE ) && + !( nFlags & XOUTBMP_MIRROR_HORZ ) && + !( nFlags & XOUTBMP_MIRROR_VERT ) && + ( rGraphic.GetType() != GRAPHIC_GDIMETAFILE ) && rGraphic.IsLink() ) + { + // try to write native link + const GfxLink aGfxLink( ( (Graphic&) rGraphic ).GetLink() ); + + switch( aGfxLink.GetType() ) + { + case( GFX_LINK_TYPE_NATIVE_GIF ): aExt = FORMAT_GIF; break; + case( GFX_LINK_TYPE_NATIVE_JPG ): aExt = FORMAT_JPG; break; + case( GFX_LINK_TYPE_NATIVE_PNG ): aExt = FORMAT_PNG; break; + + default: + break; + } - SfxMedium aMedium( aURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_WRITE | STREAM_SHARE_DENYNONE | STREAM_TRUNC, sal_True ); - SvStream* pOStm = aMedium.GetOutStream(); + if( aExt.Len() ) + { + if( 0 == (nFlags & XOUTBMP_DONT_ADD_EXTENSION)) + aURL.setExtension( aExt ); + rFileName = aURL.GetMainURL( INetURLObject::NO_DECODE ); - if( pOStm && aGfxLink.GetDataSize() && aGfxLink.GetData() ) - { - pOStm->Write( aGfxLink.GetData(), aGfxLink.GetDataSize() ); - aMedium.Commit(); + SfxMedium aMedium( aURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_WRITE | STREAM_SHARE_DENYNONE | STREAM_TRUNC, sal_True ); + SvStream* pOStm = aMedium.GetOutStream(); - if( !aMedium.GetError() ) - nErr = GRFILTER_OK; - } - } - } + if( pOStm && aGfxLink.GetDataSize() && aGfxLink.GetData() ) + { + pOStm->Write( aGfxLink.GetData(), aGfxLink.GetDataSize() ); + aMedium.Commit(); + + if( !aMedium.GetError() ) + nErr = GRFILTER_OK; + } + } + } + } if( GRFILTER_OK != nErr ) {