summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-04-04 03:50:50 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-04-04 04:15:23 +0200
commit78f4ed104c832b4aa1ae2d8d367f1db7de486065 (patch)
tree6ece84ab1289c7f89c8d7483b03e22b6f71d447d
parent4ca0ca862fcfb81a500b52f4ae6454d949d8681c (diff)
correct xlsx element order, related tdf#59663
Change-Id: Iffb7a766f15475e3600332a6c76a15a1d192d7c8
-rw-r--r--sc/source/filter/excel/excdoc.cxx4
-rw-r--r--sc/source/filter/excel/xepage.cxx7
-rw-r--r--sc/source/filter/inc/xepage.hxx4
3 files changed, 14 insertions, 1 deletions
diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx
index 2582712fa616..c32262546ddd 100644
--- a/sc/source/filter/excel/excdoc.cxx
+++ b/sc/source/filter/excel/excdoc.cxx
@@ -673,6 +673,10 @@ void ExcTable::FillAsTableXml()
// all MSODRAWING and OBJ stuff of this sheet goes here
aRecList.AppendRecord( GetObjectManager().ProcessDrawing( GetSdrPage( mnScTab ) ) );
+ XclExpImgData* pImgData = xPageSett->getGraphicExport();
+ if (pImgData)
+ aRecList.AppendRecord(std::shared_ptr<XclExpRecordBase>(pImgData));
+
aRecList.AppendRecord( xExtLst );
}
diff --git a/sc/source/filter/excel/xepage.cxx b/sc/source/filter/excel/xepage.cxx
index d3520254ab1c..a68f0218d12e 100644
--- a/sc/source/filter/excel/xepage.cxx
+++ b/sc/source/filter/excel/xepage.cxx
@@ -405,9 +405,14 @@ void XclExpPageSettings::SaveXml( XclExpXmlStream& rStrm )
static_cast< sal_uInt16 >( GetXclMaxPos().Col() ) ).SaveXml( rStrm );
XclExpPageBreaks( EXC_ID_VERPAGEBREAKS, maData.maVerPageBreaks,
static_cast< sal_uInt16 >( GetXclMaxPos().Row() ) ).SaveXml( rStrm );
+}
+XclExpImgData* XclExpPageSettings::getGraphicExport()
+{
if( const Graphic* pGraphic = maData.mxBrushItem->GetGraphic() )
- XclExpImgData( *pGraphic, EXC_ID8_IMGDATA ).SaveXml( rStrm );
+ return new XclExpImgData( *pGraphic, EXC_ID8_IMGDATA );
+
+ return NULL;
}
XclExpChartPageSettings::XclExpChartPageSettings( const XclExpRoot& rRoot ) :
diff --git a/sc/source/filter/inc/xepage.hxx b/sc/source/filter/inc/xepage.hxx
index 2df9be95a7c2..ea1d82ce8852 100644
--- a/sc/source/filter/inc/xepage.hxx
+++ b/sc/source/filter/inc/xepage.hxx
@@ -24,6 +24,8 @@
#include "xlpage.hxx"
#include "xeroot.hxx"
+class XclExpImgData;
+
// Page settings records ======================================================
// Header/footer --------------------------------------------------------------
@@ -100,6 +102,8 @@ public:
virtual void Save( XclExpStream& rStrm ) SAL_OVERRIDE;
virtual void SaveXml( XclExpXmlStream& rStrm ) SAL_OVERRIDE;
+ XclExpImgData* getGraphicExport();
+
private:
XclPageData maData; /// Page settings data.
};