[Libreoffice-commits] .: 11 commits - filter/inc filter/source sc/source sd/source svtools/source svx/source vcl/inc vcl/source
Thorsten Behrens
thorsten at kemper.freedesktop.org
Wed Nov 23 14:35:27 PST 2011
filter/inc/filter/msfilter/escherex.hxx | 16 +++-
filter/source/msfilter/escherex.cxx | 15 ++++
filter/source/msfilter/msdffimp.cxx | 52 +++++-----------
filter/source/pdf/pdfexport.cxx | 6 +
sc/source/filter/xcl97/xcl97esc.cxx | 2
sd/source/filter/eppt/eppt.cxx | 19 ++++-
sd/source/filter/eppt/eppt.hxx | 4 -
sd/source/filter/eppt/epptbase.hxx | 4 -
sd/source/filter/eppt/epptso.cxx | 13 +++-
sd/source/filter/eppt/escherex.cxx | 3
sd/source/filter/eppt/escherex.hxx | 2
sd/source/filter/eppt/pptx-epptbase.cxx | 4 -
sd/source/filter/eppt/pptx-epptooxml.cxx | 9 ++
sd/source/filter/sdpptwrp.cxx | 11 ++-
sd/source/ui/animations/CustomAnimationCreateDialog.cxx | 2
sd/source/ui/animations/CustomAnimationCreateDialog.src | 2
sd/source/ui/unoidl/unomodel.cxx | 4 -
svtools/source/filter/filter.cxx | 14 +---
svx/source/svdraw/svdograf.cxx | 27 +++-----
vcl/inc/vcl/pdfextoutdevdata.hxx | 4 +
vcl/source/gdi/pdfextoutdevdata.cxx | 9 ++
21 files changed, 139 insertions(+), 83 deletions(-)
New commits:
commit 825839b24d4ad04df17269ef407c844fd6b2cc81
Author: Thorsten Behrens <tbehrens at suse.com>
Date: Wed Nov 23 23:23:23 2011 +0100
Fixup pptx export after impress212 merges.
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 71d4ac6..d81caf1 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1411,7 +1411,7 @@ sal_Bool EscherPropertyContainer::CreateGraphicProperties(
delete pIn;
}
}
- if ( !aUniqueId.Len() )
+ if ( !aUniqueId.getLength() )
{
if ( pGraphicProvider )
{
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index 26fcd2c..d76fb52 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -74,7 +74,7 @@ using ::com::sun::star::beans::XPropertySet;
//============================ PPTWriter ==================================
-PPTWriter::PPTWriter( const std::vector< com::sun::star::beans::PropertyValue >& rMediaData, SvStorageRef& rSvStorage,
+PPTWriter::PPTWriter( SvStorageRef& rSvStorage,
::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,
SvMemoryStream* pVBA, sal_uInt32 nCnvrtFlags ) :
@@ -97,7 +97,7 @@ PPTWriter::PPTWriter( const std::vector< com::sun::star::beans::PropertyValue >&
{
}
-void PPTWriter::exportPPTPre()
+void PPTWriter::exportPPTPre( const std::vector< com::sun::star::beans::PropertyValue >& rMediaData )
{
if ( !mrStg.Is() )
return;
@@ -132,7 +132,6 @@ void PPTWriter::exportPPTPre()
{
if ( (*aIter).Name.equals( sBaseURI ) )
{
- rtl::OUString sBaseURI;
(*aIter).Value >>= maBaseURI;
break;
}
@@ -1498,10 +1497,10 @@ extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool __LOADONCALLAPI ExportPPT( const std::v
PPTWriter* pPPTWriter;
sal_Bool bStatus = sal_False;
- pPPTWriter = new PPTWriter( rMediaData, rSvStorage, rXModel, rXStatInd, pVBA, nCnvrtFlags );
+ pPPTWriter = new PPTWriter( rSvStorage, rXModel, rXStatInd, pVBA, nCnvrtFlags );
if ( pPPTWriter )
{
- pPPTWriter->exportPPT();
+ pPPTWriter->exportPPT(rMediaData);
bStatus = ( pPPTWriter->IsValid() == sal_True );
delete pPPTWriter;
}
diff --git a/sd/source/filter/eppt/eppt.hxx b/sd/source/filter/eppt/eppt.hxx
index 6096276..96f19c4 100644
--- a/sd/source/filter/eppt/eppt.hxx
+++ b/sd/source/filter/eppt/eppt.hxx
@@ -296,7 +296,7 @@ class PPTWriter : public PPTWriterBase, public PPTExBulletProvider
sal_Bool IsValid() const { return mbStatus; };
- virtual void exportPPTPre();
+ virtual void exportPPTPre( const std::vector< com::sun::star::beans::PropertyValue >& );
virtual void exportPPTPost( );
};
diff --git a/sd/source/filter/eppt/epptbase.hxx b/sd/source/filter/eppt/epptbase.hxx
index f21db68..33a43d3 100644
--- a/sd/source/filter/eppt/epptbase.hxx
+++ b/sd/source/filter/eppt/epptbase.hxx
@@ -378,7 +378,7 @@ protected:
virtual void ImplWriteSlideMaster( sal_uInt32 /* nPageNum */, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > /* aXBackgroundPropSet */ ) {}
virtual void ImplWriteLayout( sal_Int32 /* nOffset */, sal_uInt32 /* nMasterNum */ ) {}
- virtual void exportPPTPre() {}
+ virtual void exportPPTPre( const std::vector< com::sun::star::beans::PropertyValue >& ) {}
virtual void exportPPTPost() {}
virtual sal_Bool ImplCreateDocument()=0;
@@ -402,7 +402,7 @@ public:
virtual ~PPTWriterBase();
- void exportPPT();
+ void exportPPT(const std::vector< com::sun::star::beans::PropertyValue >&);
sal_Bool InitSOIface();
sal_Bool GetPageByIndex( sal_uInt32 nIndex, PageType );
diff --git a/sd/source/filter/eppt/pptx-epptbase.cxx b/sd/source/filter/eppt/pptx-epptbase.cxx
index c310a5a..2191cbd 100644
--- a/sd/source/filter/eppt/pptx-epptbase.cxx
+++ b/sd/source/filter/eppt/pptx-epptbase.cxx
@@ -176,7 +176,7 @@ PPTWriterBase::~PPTWriterBase()
// ---------------------------------------------------------------------------------------------
-void PPTWriterBase::exportPPT()
+void PPTWriterBase::exportPPT( const std::vector< com::sun::star::beans::PropertyValue >& rMediaData )
{
if ( !InitSOIface() )
return;
@@ -211,7 +211,7 @@ void PPTWriterBase::exportPPT()
maDestPageSize = MapSize( awt::Size( nWidth, nHeight ) );
DBG(printf( "call exportDocumentPre()\n"));
- exportPPTPre();
+ exportPPTPre(rMediaData);
if ( !GetStyleSheets() )
return;
diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx
index b88fcc9..b0624b4 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -357,7 +357,14 @@ bool PowerPointExport::exportDocument() throw()
mXModel.set( getModel(), UNO_QUERY );
mXStatusIndicator.set( getStatusIndicator(), UNO_QUERY );
- exportPPT();
+ rtl::OUString sBaseURI( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
+ std::vector< PropertyValue > aProperties;
+ PropertyValue aProperty;
+ aProperty.Name = sBaseURI;
+ aProperty.Value = makeAny( getFileUrl() );
+ aProperties.push_back( aProperty );
+
+ exportPPT(aProperties);
mPresentationFS->singleElementNS( XML_p, XML_sldSz,
XML_cx, IS( PPTtoEMU( maDestPageSize.Width ) ),
commit 5e68ba9322da2fcfec292239ef01726a64964945
Author: Thorsten Behrens <tbehrens at suse.com>
Date: Wed Nov 23 23:21:38 2011 +0100
Removed, better fix just in via i#105675
diff --git a/sd/source/ui/animations/CustomAnimationCreateDialog.cxx b/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
index a398e76..0d3dc78 100644
--- a/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationCreateDialog.cxx
@@ -516,9 +516,7 @@ CustomAnimationCreateDialog::CustomAnimationCreateDialog( Window* pParent, Custo
{
mpTabControl = new TabControl( this, SdResId( 1 ) );
mpOKButton = new OKButton(this, SdResId( 1 ) ) ;
- mpOKButton->SetStyle(WB_DEFBUTTON);
mpCancelButton = new CancelButton(this, SdResId( 1 ) );
- mpCancelButton->SetStyle(WB_DEFBUTTON);
mpHelpButton = new HelpButton(this, SdResId( 1 ) );
FreeResource();
commit 363868f040caab7b410ed480553855ffe42aa162
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:49:30 2011 +0000
impress212: #i97241# fixed relative links
* found as LGPLv3-only fix at svn rev 1167641 (http://svn.apache.org/viewvc?view=revision&revision=1167641)
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 47077db..49b9589 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -4174,7 +4174,7 @@ static void lcl_ApplyCropping( const DffPropSet& rPropSet, SfxItemSet* pSet, Gra
SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, const DffObjData& rObjData )
{
SdrObject* pRet = NULL;
- String aFilename;
+ String aFileName;
String aLinkFileName, aLinkFilterName;
Rectangle aVisArea;
@@ -4187,7 +4187,7 @@ SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, cons
{
Graphic aGraf; // be sure this graphic is deleted before swapping out
if( SeekToContent( DFF_Prop_pibName, rSt ) )
- MSDFFReadZString( rSt, aFilename, GetPropertyValue( DFF_Prop_pibName ), sal_True );
+ MSDFFReadZString( rSt, aFileName, GetPropertyValue( DFF_Prop_pibName ), sal_True );
// UND, ODER folgendes:
if( !( eFlags & mso_blipflagDoNotSave ) ) // Grafik embedded
@@ -4362,30 +4362,22 @@ SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, cons
if( bLinkGrf && !bGrfRead ) // sj: #i55484# if the graphic was embedded ( bGrfRead == true ) then
{ // we do not need to set a link. TODO: not to lose the information where the graphic is linked from
- UniString aName( ::URIHelper::SmartRel2Abs( INetURLObject(maBaseURL), aFilename, URIHelper::GetMaybeFileHdl(), true, false,
- INetURLObject::WAS_ENCODED,
- INetURLObject::DECODE_UNAMBIGUOUS ) );
-
- String aFilterName;
- INetURLObject aURLObj( aName );
-
- if( aURLObj.GetProtocol() == INET_PROT_NOT_VALID )
+ INetURLObject aAbsURL;
+ if ( !INetURLObject( maBaseURL ).GetNewAbsURL( ByteString( aFileName, RTL_TEXTENCODING_UTF8 ), &aAbsURL ) )
{
String aValidURL;
-
- if( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( aName, aValidURL ) )
- aURLObj = INetURLObject( aValidURL );
+ if( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( aFileName, aValidURL ) )
+ aAbsURL = INetURLObject( aValidURL );
}
-
- if( aURLObj.GetProtocol() != INET_PROT_NOT_VALID )
+ if( aAbsURL.GetProtocol() != INET_PROT_NOT_VALID )
{
GraphicFilter &rGrfFilter = GraphicFilter::GetGraphicFilter();
- aFilterName = rGrfFilter.GetImportFormatName(
- rGrfFilter.GetImportFormatNumberForShortName( aURLObj.getExtension() ) );
+ aLinkFilterName = rGrfFilter.GetImportFormatName(
+ rGrfFilter.GetImportFormatNumberForShortName( aAbsURL.getExtension() ) );
+ aLinkFileName = aAbsURL.GetMainURL( INetURLObject::DECODE_TO_IURI );
}
-
- aLinkFileName = aName;
- aLinkFilterName = aFilterName;
+ else
+ aLinkFileName = aFileName;
}
}
@@ -4399,11 +4391,11 @@ SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, cons
if ( ( eFlags & mso_blipflagType ) != mso_blipflagComment )
{
INetURLObject aURL;
- aURL.SetSmartURL( aFilename );
+ aURL.SetSmartURL( aFileName );
pRet->SetName( aURL.getBase() );
}
else
- pRet->SetName( aFilename );
+ pRet->SetName( aFileName );
}
}
pRet->SetModel( pSdrModel ); // fuer GraphicLink erforderlich
commit 70b02c18b95ef19bd224788efa491671e762ae23
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:49:17 2011 +0000
impress212: #i114615# fixed hyperlink export (pdf) if exporting also notes pages
* found as LGPLv3-only fix at svn rev 1167640 (http://svn.apache.org/viewvc?view=revision&revision=1167640)
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
index fbbb52b..6bb561c 100644
--- a/filter/source/pdf/pdfexport.cxx
+++ b/filter/source/pdf/pdfexport.cxx
@@ -200,7 +200,7 @@ sal_Bool PDFExport::ExportSelection( vcl::PDFWriter& rPDFWriter,
vcl::PDFExtOutDevData* pPDFExtOutDevData = PTR_CAST( vcl::PDFExtOutDevData, pOut->GetExtOutDevData() );
if ( nPageCount )
{
- pPDFExtOutDevData->SetIsExportNotes( bExportNotesPages );
+ pPDFExtOutDevData->SetIsExportNotesPages( bExportNotesPages );
sal_Int32 nCurrentPage(0);
StringRangeEnumerator::Iterator aIter = rRangeEnum.begin();
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index e21033e..146b93d 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -1916,7 +1916,7 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
const rtl::OUString sIsBackgroundObjectsVisible( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundObjectsVisible" ) );
if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sIsBackgroundObjectsVisible ) )
xPagePropSet->getPropertyValue( sIsBackgroundObjectsVisible ) >>= bIsBackgroundObjectsVisible;
- if ( mbImpressDoc && bIsBackgroundObjectsVisible )
+ if ( mbImpressDoc && bIsBackgroundObjectsVisible && !pPDFExtOutDevData->GetIsExportNotesPages() )
{
uno::Reference< drawing::XMasterPageTarget > xMasterPageTarget( xPage, uno::UNO_QUERY );
if ( xMasterPageTarget.is() )
@@ -1949,7 +1949,7 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
}
// exporting transition effects to pdf
- if ( mbImpressDoc && pPDFExtOutDevData->GetIsExportTransitionEffects() ) // #i39428# TransitionEffects not available for Draw
+ if ( mbImpressDoc && !pPDFExtOutDevData->GetIsExportNotesPages() && pPDFExtOutDevData->GetIsExportTransitionEffects() )
{
const rtl::OUString sEffect( RTL_CONSTASCII_USTRINGPARAM( "Effect" ) );
const rtl::OUString sSpeed ( RTL_CONSTASCII_USTRINGPARAM( "Speed" ) );
diff --git a/vcl/inc/vcl/pdfextoutdevdata.hxx b/vcl/inc/vcl/pdfextoutdevdata.hxx
index 37dadb9..ab9f44e 100644
--- a/vcl/inc/vcl/pdfextoutdevdata.hxx
+++ b/vcl/inc/vcl/pdfextoutdevdata.hxx
@@ -86,6 +86,7 @@ class VCL_DLLPUBLIC PDFExtOutDevData : public ExtOutDevData
sal_Bool mbTaggedPDF;
sal_Bool mbExportNotes;
+ sal_Bool mbExportNotesPages;
sal_Bool mbTransitionEffects;
sal_Bool mbUseLosslessCompression;
sal_Bool mbReduceImageResolution;
@@ -117,6 +118,9 @@ public :
sal_Bool GetIsExportNotes() const;
void SetIsExportNotes( const sal_Bool bExportNotes );
+ sal_Bool GetIsExportNotesPages() const;
+ void SetIsExportNotesPages( const sal_Bool bExportNotesPages );
+
sal_Bool GetIsExportTaggedPDF() const;
void SetIsExportTaggedPDF( const sal_Bool bTaggedPDF );
diff --git a/vcl/source/gdi/pdfextoutdevdata.cxx b/vcl/source/gdi/pdfextoutdevdata.cxx
index 99326c2..bcbd9a5 100644
--- a/vcl/source/gdi/pdfextoutdevdata.cxx
+++ b/vcl/source/gdi/pdfextoutdevdata.cxx
@@ -509,6 +509,7 @@ PDFExtOutDevData::PDFExtOutDevData( const OutputDevice& rOutDev ) :
mrOutDev ( rOutDev ),
mbTaggedPDF ( sal_False ),
mbExportNotes ( sal_True ),
+ mbExportNotesPages ( sal_False ),
mbTransitionEffects ( sal_True ),
mbUseLosslessCompression( sal_True ),
mbReduceImageResolution ( sal_False ),
@@ -567,6 +568,14 @@ void PDFExtOutDevData::SetIsExportNotes( const sal_Bool bExportNotes )
{
mbExportNotes = bExportNotes;
}
+sal_Bool PDFExtOutDevData::GetIsExportNotesPages() const
+{
+ return mbExportNotesPages;
+}
+void PDFExtOutDevData::SetIsExportNotesPages( const sal_Bool bExportNotesPages )
+{
+ mbExportNotesPages = bExportNotesPages;
+}
sal_Bool PDFExtOutDevData::GetIsExportTaggedPDF() const
{
return mbTaggedPDF;
commit d0cfb996261be5b604742780a304b2ea31825723
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:48:07 2011 +0000
impress212: #i114615# fixed hyperlinks if exporting impress notes pages to pdf
* found as LGPLv3-only fix at svn rev 1167635 (http://svn.apache.org/viewvc?view=revision&revision=1167635)
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
index 466132e..fbbb52b 100644
--- a/filter/source/pdf/pdfexport.cxx
+++ b/filter/source/pdf/pdfexport.cxx
@@ -181,12 +181,16 @@ sal_Bool PDFExport::ExportSelection( vcl::PDFWriter& rPDFWriter,
Any* pFirstPage = NULL;
Any* pLastPage = NULL;
+ sal_Bool bExportNotesPages = sal_False;
+
for( sal_Int32 nData = 0, nDataCount = rRenderOptions.getLength(); nData < nDataCount; ++nData )
{
if( rRenderOptions[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFirstPage" ) ) )
pFirstPage = &rRenderOptions[ nData ].Value;
else if( rRenderOptions[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "IsLastPage" ) ) )
pLastPage = &rRenderOptions[ nData ].Value;
+ else if( rRenderOptions[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportNotesPages" ) ) )
+ rRenderOptions[ nData ].Value >>= bExportNotesPages;
}
OutputDevice* pOut = rPDFWriter.GetReferenceDevice();
@@ -196,6 +200,8 @@ sal_Bool PDFExport::ExportSelection( vcl::PDFWriter& rPDFWriter,
vcl::PDFExtOutDevData* pPDFExtOutDevData = PTR_CAST( vcl::PDFExtOutDevData, pOut->GetExtOutDevData() );
if ( nPageCount )
{
+ pPDFExtOutDevData->SetIsExportNotes( bExportNotesPages );
+
sal_Int32 nCurrentPage(0);
StringRangeEnumerator::Iterator aIter = rRangeEnum.begin();
StringRangeEnumerator::Iterator aEnd = rRangeEnum.end();
commit ac0a752acdb8ce769f0830776209342f2ed3a68c
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:44:45 2011 +0000
impress212: export images with relative links
# User Daniel Rentz [dr] <daniel.rentz at oracle.com>
* found as LGPLv3-only fix at svn rev 1167625 (http://svn.apache.org/viewvc?view=revision&revision=1167625)
diff --git a/sc/source/filter/xcl97/xcl97esc.cxx b/sc/source/filter/xcl97/xcl97esc.cxx
index cf60b12..9102025 100644
--- a/sc/source/filter/xcl97/xcl97esc.cxx
+++ b/sc/source/filter/xcl97/xcl97esc.cxx
@@ -46,6 +46,7 @@
#include <unotools/tempfile.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include <svx/sdasitm.hxx>
+#include <sfx2/docfile.hxx>
#include <sot/exchange.hxx>
#include "xeescher.hxx"
@@ -81,6 +82,7 @@ using ::com::sun::star::script::XEventAttacherManager;
XclEscherExGlobal::XclEscherExGlobal( const XclExpRoot& rRoot ) :
XclExpRoot( rRoot )
{
+ SetBaseURI( GetMedium().GetBaseURL( true ) );
}
SvStream* XclEscherExGlobal::ImplQueryPictureStream()
commit 6ad3c553a9bd3b8fb91c45204f0c833f52c52431
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:44:32 2011 +0000
impress212: #i97241# added relative links
* found as LGPLv3-only fix at svn rev 1167624 (http://svn.apache.org/viewvc?view=revision&revision=1167624)
diff --git a/filter/inc/filter/msfilter/escherex.hxx b/filter/inc/filter/msfilter/escherex.hxx
index 5a03167..94f700f 100644
--- a/filter/inc/filter/msfilter/escherex.hxx
+++ b/filter/inc/filter/msfilter/escherex.hxx
@@ -42,6 +42,7 @@
#include <com/sun/star/awt/Rectangle.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/PropertyState.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/drawing/BitmapMode.hpp>
#include <com/sun/star/drawing/Hatch.hpp>
#include <svx/msdffdef.hxx>
@@ -1086,6 +1087,8 @@ class MSFILTER_DLLPUBLIC EscherGraphicProvider
sal_uInt32 mnBlibBufSize;
sal_uInt32 mnBlibEntrys;
+ rtl::OUString maBaseURI;
+
protected:
sal_uInt32 ImplInsertBlib( EscherBlibEntry* p_EscherBlibEntry );
@@ -1109,6 +1112,9 @@ public:
sal_Bool GetPrefSize( const sal_uInt32 nBlibId, Size& rSize, MapMode& rMapMode );
+ void SetBaseURI( const rtl::OUString& rBaseURI ) { maBaseURI = rBaseURI; };
+ const rtl::OUString& GetBaseURI() { return maBaseURI; };
+
EscherGraphicProvider( sal_uInt32 nFlags = _E_GRAPH_PROV_DO_NOT_ROTATE_METAFILES );
~EscherGraphicProvider();
@@ -1551,12 +1557,12 @@ class MSFILTER_DLLPUBLIC EscherEx : public EscherPersistTable
protected:
typedef ::std::auto_ptr< ImplEscherExSdr > ImplEscherExSdrPtr;
- EscherExGlobalRef mxGlobal;
- ImplEscherExSdrPtr mpImplEscherExSdr;
- SvStream* mpOutStrm;
+ EscherExGlobalRef mxGlobal;
+ ImplEscherExSdrPtr mpImplEscherExSdr;
+ SvStream* mpOutStrm;
sal_uInt32 mnStrmStartOfs;
- std::vector< sal_uInt32 > mOffsets;
- std::vector< sal_uInt16 > mRecTypes;
+ std::vector< sal_uInt32 > mOffsets;
+ std::vector< sal_uInt16 > mRecTypes;
sal_uInt32 mnCurrentDg;
sal_uInt32 mnCountOfs;
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 21e6f2d..71d4ac6 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1411,6 +1411,21 @@ sal_Bool EscherPropertyContainer::CreateGraphicProperties(
delete pIn;
}
}
+ if ( !aUniqueId.Len() )
+ {
+ if ( pGraphicProvider )
+ {
+ const rtl::OUString& rBaseURI( pGraphicProvider->GetBaseURI() );
+ INetURLObject aBaseURI( rBaseURI );
+ if( aBaseURI.GetProtocol() == aTmp.GetProtocol() )
+ {
+ rtl::OUString aRelUrl( INetURLObject::GetRelURL( rBaseURI, aGraphicUrl,
+ INetURLObject::WAS_ENCODED, INetURLObject::DECODE_TO_IURI, RTL_TEXTENCODING_UTF8, INetURLObject::FSYS_DETECT ) );
+ if ( aRelUrl.getLength() )
+ aGraphicUrl = aRelUrl;
+ }
+ }
+ }
}
}
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index 832e7b0..26fcd2c 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -74,7 +74,7 @@ using ::com::sun::star::beans::XPropertySet;
//============================ PPTWriter ==================================
-PPTWriter::PPTWriter( SvStorageRef& rSvStorage,
+PPTWriter::PPTWriter( const std::vector< com::sun::star::beans::PropertyValue >& rMediaData, SvStorageRef& rSvStorage,
::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,
SvMemoryStream* pVBA, sal_uInt32 nCnvrtFlags ) :
@@ -126,7 +126,19 @@ void PPTWriter::exportPPTPre()
if ( !mpPicStrm )
mpPicStrm = mrStg->OpenSotStream( String( RTL_CONSTASCII_USTRINGPARAM( "Pictures" ) ) );
- mpPptEscherEx = new PptEscherEx( *mpStrm );
+ const String sBaseURI( RTL_CONSTASCII_USTRINGPARAM( "BaseURI" ) );
+ std::vector< com::sun::star::beans::PropertyValue >::const_iterator aIter( rMediaData.begin() );
+ while( aIter != rMediaData.end() )
+ {
+ if ( (*aIter).Name.equals( sBaseURI ) )
+ {
+ rtl::OUString sBaseURI;
+ (*aIter).Value >>= maBaseURI;
+ break;
+ }
+ aIter++;
+ }
+ mpPptEscherEx = new PptEscherEx( *mpStrm, maBaseURI );
}
void PPTWriter::exportPPTPost( )
@@ -1478,7 +1490,7 @@ sal_Bool PPTWriter::ImplWriteAtomEnding()
// - exported function -
// ---------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool __LOADONCALLAPI ExportPPT( SvStorageRef& rSvStorage,
+extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool __LOADONCALLAPI ExportPPT( const std::vector< com::sun::star::beans::PropertyValue >& rMediaData, SvStorageRef& rSvStorage,
::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,
SvMemoryStream* pVBA, sal_uInt32 nCnvrtFlags )
@@ -1486,7 +1498,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool __LOADONCALLAPI ExportPPT( SvStorageRef
PPTWriter* pPPTWriter;
sal_Bool bStatus = sal_False;
- pPPTWriter = new PPTWriter( rSvStorage, rXModel, rXStatInd, pVBA, nCnvrtFlags );
+ pPPTWriter = new PPTWriter( rMediaData, rSvStorage, rXModel, rXStatInd, pVBA, nCnvrtFlags );
if ( pPPTWriter )
{
pPPTWriter->exportPPT();
diff --git a/sd/source/filter/eppt/eppt.hxx b/sd/source/filter/eppt/eppt.hxx
index 5695aa5..6096276 100644
--- a/sd/source/filter/eppt/eppt.hxx
+++ b/sd/source/filter/eppt/eppt.hxx
@@ -177,8 +177,8 @@ class PPTWriter : public PPTWriterBase, public PPTExBulletProvider
sal_uInt32 mnStatMaxValue;
sal_uInt32 mnLatestStatValue;
- EscherGraphicProvider* mpGraphicProvider;
std::vector<rtl::OUString> maSlideNameList;
+ rtl::OUString maBaseURI;
::com::sun::star::uno::Reference< ::com::sun::star::text::XSimpleText > mXText; // TextRef des globalen Text
::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > mXCursor;
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
index 10932ac..45d2abe 100644
--- a/sd/source/filter/eppt/epptso.cxx
+++ b/sd/source/filter/eppt/epptso.cxx
@@ -405,7 +405,18 @@ sal_uInt32 PPTWriter::ImplInsertBookmarkURL( const String& rBookmarkURL, const s
const String& rStringVer0, const String& rStringVer1, const String& rStringVer2, const String& rStringVer3 )
{
sal_uInt32 nHyperId = ++mnExEmbed;
- maHyperlink.Insert( new EPPTHyperlink( rBookmarkURL, nType ), LIST_APPEND );
+
+ rtl::OUString sBookmarkURL( rBookmarkURL );
+ INetURLObject aBaseURI( maBaseURI );
+ INetURLObject aBookmarkURI( rBookmarkURL );
+ if( aBaseURI.GetProtocol() == aBookmarkURI.GetProtocol() )
+ {
+ rtl::OUString aRelUrl( INetURLObject::GetRelURL( maBaseURI, rBookmarkURL,
+ INetURLObject::WAS_ENCODED, INetURLObject::DECODE_TO_IURI, RTL_TEXTENCODING_UTF8, INetURLObject::FSYS_DETECT ) );
+ if ( aRelUrl.getLength() )
+ sBookmarkURL = aRelUrl;
+ }
+ maHyperlink.Insert( new EPPTHyperlink( sBookmarkURL, nType ), LIST_APPEND );
*mpExEmbed << (sal_uInt16)0xf
<< (sal_uInt16)EPP_ExHyperlink
diff --git a/sd/source/filter/eppt/escherex.cxx b/sd/source/filter/eppt/escherex.cxx
index 7714ca4..70e1b06 100644
--- a/sd/source/filter/eppt/escherex.cxx
+++ b/sd/source/filter/eppt/escherex.cxx
@@ -36,9 +36,10 @@
// ---------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------
-PptEscherEx::PptEscherEx( SvStream& rOutStrm ) :
+PptEscherEx::PptEscherEx( SvStream& rOutStrm, const rtl::OUString& rBaseURI ) :
EscherEx( EscherExGlobalRef( new EscherExGlobal ), rOutStrm )
{
+ mxGlobal->SetBaseURI( rBaseURI );
mnCurrentDg = 0;
}
diff --git a/sd/source/filter/eppt/escherex.hxx b/sd/source/filter/eppt/escherex.hxx
index 4b77a1a..1d053af 100644
--- a/sd/source/filter/eppt/escherex.hxx
+++ b/sd/source/filter/eppt/escherex.hxx
@@ -60,7 +60,7 @@ class PptEscherEx : public EscherEx
public:
- PptEscherEx( SvStream& rOut );
+ PptEscherEx( SvStream& rOut, const rtl::OUString& );
~PptEscherEx();
void OpenContainer( sal_uInt16 n_EscherContainer, int nRecInstance = 0 );
diff --git a/sd/source/filter/sdpptwrp.cxx b/sd/source/filter/sdpptwrp.cxx
index 62ddab2..8a60567 100644
--- a/sd/source/filter/sdpptwrp.cxx
+++ b/sd/source/filter/sdpptwrp.cxx
@@ -52,7 +52,7 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::task;
using namespace ::com::sun::star::frame;
-typedef sal_Bool ( __LOADONCALLAPI *ExportPPT )( SvStorageRef&,
+typedef sal_Bool ( __LOADONCALLAPI *ExportPPT )( const std::vector< com::sun::star::beans::PropertyValue >&, SvStorageRef&,
Reference< XModel > &,
Reference< XStatusIndicator > &,
SvMemoryStream*, sal_uInt32 nCnvrtFlags );
@@ -166,7 +166,14 @@ sal_Bool SdPPTFilter::Export()
if( mbShowProgress )
CreateStatusIndicator();
- bRet = PPTExport( xStorRef, mxModel, mxStatusIndicator, pBas, nCnvrtFlags );
+ rtl::OUString sBaseURI( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
+ std::vector< PropertyValue > aProperties;
+ PropertyValue aProperty;
+ aProperty.Name = sBaseURI;
+ aProperty.Value = makeAny( mrMedium.GetBaseURL( true ) );
+ aProperties.push_back( aProperty );
+
+ bRet = PPTExport( aProperties, xStorRef, mxModel, mxStatusIndicator, pBas, nCnvrtFlags );
xStorRef->Commit();
}
}
commit 619ea0c6d3b8fb4390bf5e82f1b44608c3cd878d
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:44:11 2011 +0000
impress212: #i71731# fixed fill bitmap - pattern import
# User sj <sj at openoffice.org>
* found as LGPLv3-only fix at svn rev 1167623 (http://svn.apache.org/viewvc?view=revision&revision=1167623)
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index c26f214..47077db 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -1737,8 +1737,6 @@ void DffPropertyReader::ApplyFillAttributes( SvStream& rIn, SfxItemSet& rSet, co
aCol2 = rManager.MSO_CLR_ToColor( GetPropertyValue( DFF_Prop_fillBackColor ), DFF_Prop_fillBackColor );
XOBitmap aXOBitmap;
-
- // Bitmap einsetzen
aXOBitmap.SetBitmap( aBmp );
aXOBitmap.SetBitmapType( XBITMAP_IMPORT );
@@ -1747,17 +1745,9 @@ void DffPropertyReader::ApplyFillAttributes( SvStream& rIn, SfxItemSet& rSet, co
aXOBitmap.Bitmap2Array();
aXOBitmap.SetBitmapType( XBITMAP_8X8 );
aXOBitmap.SetPixelSize( aBmp.GetSizePixel() );
-
- if( aXOBitmap.GetBackgroundColor() == COL_BLACK )
- {
- aXOBitmap.SetPixelColor( aCol1 );
- aXOBitmap.SetBackgroundColor( aCol2 );
- }
- else
- {
- aXOBitmap.SetPixelColor( aCol2 );
- aXOBitmap.SetBackgroundColor( aCol1 );
- }
+ aXOBitmap.SetPixelColor( aCol1 );
+ aXOBitmap.SetBackgroundColor( aCol2 );
+ aXOBitmap.Array2Bitmap();
}
rSet.Put( XFillBitmapItem( String(), aXOBitmap ) );
}
commit 246c64c6a4375ab22dc8baa70093d373bea64ff2
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:43:48 2011 +0000
impress212: #i117042# added fix for i_updt1.bas testcase
* found as LGPLv3-only fix at svn rev 1167621 (http://svn.apache.org/viewvc?view=revision&revision=1167621)
diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx
index 342cbf3..ffeee13 100644
--- a/svx/source/svdraw/svdograf.cxx
+++ b/svx/source/svdraw/svdograf.cxx
@@ -89,11 +89,11 @@ using namespace ::com::sun::star::io;
// ------------------
-const Graphic ImpLoadLinkedGraphic( const String& rFileName, const String& rFilterName )
+const Graphic ImpLoadLinkedGraphic( const String aFileName, const String aFilterName )
{
Graphic aGraphic;
- SfxMedium xMed( rFileName, STREAM_STD_READ, sal_True );
+ SfxMedium xMed( aFileName, STREAM_STD_READ, sal_True );
xMed.DownLoad();
SvStream* pInStrm = xMed.GetInStream();
@@ -102,9 +102,9 @@ const Graphic ImpLoadLinkedGraphic( const String& rFileName, const String& rFilt
pInStrm->Seek( STREAM_SEEK_TO_BEGIN );
GraphicFilter& rGF = GraphicFilter::GetGraphicFilter();
- const sal_uInt16 nFilter = rFilterName.Len() && rGF.GetImportFormatCount()
- ? rGF.GetImportFormatNumber( rFilterName )
- : GRFILTER_FORMAT_DONTKNOW;
+ const sal_uInt16 nFilter = aFilterName.Len() && rGF.GetImportFormatCount()
+ ? rGF.GetImportFormatNumber( aFilterName )
+ : GRFILTER_FORMAT_DONTKNOW;
String aEmptyStr;
com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > aFilterData( 1 );
@@ -149,7 +149,7 @@ public:
void SAL_CALL Terminate( void );
- sal_Bool GraphicLinkChanged( const String& rFileName ){ return mrFileName != rFileName; };
+ sal_Bool GraphicLinkChanged( const String& rFileName ){ return maFileName != rFileName; };
protected:
@@ -165,17 +165,16 @@ protected:
private:
- ::osl::Mutex maMutex;
- const String& mrFileName;
- const String& mrFilterName;
+ const String maFileName;
+ const String maFilterName;
SdrGraphicLink& mrGraphicLink;
- volatile bool mbIsTerminated;
+ volatile bool mbIsTerminated;
};
SdrGraphicUpdater::SdrGraphicUpdater( const String& rFileName, const String& rFilterName, SdrGraphicLink& rGraphicLink )
-: mrFileName( rFileName )
-, mrFilterName( rFilterName )
+: maFileName( rFileName )
+, maFilterName( rFilterName )
, mrGraphicLink( rGraphicLink )
, mbIsTerminated( sal_False )
{
@@ -188,7 +187,6 @@ SdrGraphicUpdater::~SdrGraphicUpdater( void )
void SdrGraphicUpdater::Terminate()
{
- ::osl::MutexGuard aGuard( maMutex );
mbIsTerminated = sal_True;
}
@@ -199,8 +197,7 @@ void SAL_CALL SdrGraphicUpdater::onTerminated(void)
void SAL_CALL SdrGraphicUpdater::run(void)
{
- Graphic aGraphic( ImpLoadLinkedGraphic( mrFileName, mrFilterName ) );
- ::osl::MutexGuard aGuard(maMutex);
+ Graphic aGraphic( ImpLoadLinkedGraphic( maFileName, maFilterName ) );
SolarMutexGuard aSolarGuard;
if ( !mbIsTerminated )
{
commit 9f62089d7228f71fd532dc6ca00f2fd70c976199
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:43:35 2011 +0000
impress212: #i81610# fixed animation export
# User sj <sj at openoffice.org>
* found as LGPLv3-only fix at svn rev 1167620 (http://svn.apache.org/viewvc?view=revision&revision=1167620)
diff --git a/svtools/source/filter/filter.cxx b/svtools/source/filter/filter.cxx
index a6385a9..4cdd34d 100644
--- a/svtools/source/filter/filter.cxx
+++ b/svtools/source/filter/filter.cxx
@@ -835,19 +835,17 @@ static Graphic ImpGetScaledGraphic( const Graphic& rGraphic, FilterConfigItem& r
aMap.SetScaleY( aFrac );
Size aOldSize = aBitmap.GetSizePixel();
- aBitmap.SetPrefMapMode( aMap );
- aBitmap.SetPrefSize( Size( aOldSize.Width() * 100,
+ aGraphic = rGraphic;
+ aGraphic.SetPrefMapMode( aMap );
+ aGraphic.SetPrefSize( Size( aOldSize.Width() * 100,
aOldSize.Height() * 100 ) );
-
- aGraphic = Graphic( aBitmap );
}
// Groesse wird eingestellt
else if( nMode == 2 )
{
- BitmapEx aBitmapEx( rGraphic.GetBitmapEx() );
- aBitmapEx.SetPrefMapMode( MapMode( MAP_100TH_MM ) );
- aBitmapEx.SetPrefSize( Size( nLogicalWidth, nLogicalHeight ) );
- aGraphic = Graphic( aBitmapEx );
+ aGraphic = rGraphic;
+ aGraphic.SetPrefMapMode( MapMode( MAP_100TH_MM ) );
+ aGraphic.SetPrefSize( Size( nLogicalWidth, nLogicalHeight ) );
}
else
aGraphic = rGraphic;
commit 2663cd34e34d4cf7796b328b7679426fb960cc07
Author: erack <er at openoffice.org>
Date: Sat Sep 10 22:43:10 2011 +0000
impress212: #i105675# better keyboard handling in animation create dialog
* found as LGPLv3-only fix at svn rev 1167618 (http://svn.apache.org/viewvc?view=revision&revision=1167618)
diff --git a/sd/source/ui/animations/CustomAnimationCreateDialog.src b/sd/source/ui/animations/CustomAnimationCreateDialog.src
index 62abf70..b30c1fa 100644
--- a/sd/source/ui/animations/CustomAnimationCreateDialog.src
+++ b/sd/source/ui/animations/CustomAnimationCreateDialog.src
@@ -81,12 +81,14 @@ TabDialog DLG_CUSTOMANIMATION_CREATE
Pos = MAP_APPFONT ( 3 , 223 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
+ DefButton = TRUE;
};
CancelButton 1
{
Pos = MAP_APPFONT ( 56 , 223 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
+ DefButton = TRUE;
};
HelpButton 1
{
More information about the Libreoffice-commits
mailing list