[Libreoffice-commits] core.git: Branch 'feature/gsoc-calc-enhanced-db-range' - sc/source
Akash Shetye
shetyeakash at gmail.com
Sun Jul 28 05:26:28 PDT 2013
sc/source/filter/excel/xestyle.cxx | 20 ++++++++++++++------
sc/source/filter/inc/xestyle.hxx | 1 +
2 files changed, 15 insertions(+), 6 deletions(-)
New commits:
commit 244821c0df2baca727d0e770ed9906be713b0be1
Author: Akash Shetye <shetyeakash at gmail.com>
Date: Sun Jul 28 17:53:04 2013 +0530
Patch adds check for ensuring atleast one table style exists
Earlier code just added a new style and did not perform any checks to ensure atleast one style was present, this stops excel from creating empty table style tags.
Change-Id: Ib83e8001410b65aa129fb22b032956c9bd7e1ddd
diff --git a/sc/source/filter/excel/xestyle.cxx b/sc/source/filter/excel/xestyle.cxx
index 11c3faf..2e0a74e 100644
--- a/sc/source/filter/excel/xestyle.cxx
+++ b/sc/source/filter/excel/xestyle.cxx
@@ -3212,6 +3212,9 @@ void XclExpTableStyle::SaveXml( XclExpXmlStream& rStrm )
XclExpTableStyles::XclExpTableStyles( const XclExpRoot& rRoot, XclExpDxfs& rDxfs )
:XclExpRoot( rRoot )
{
+ //Set the has table styles member to false, for conditions when there is not
+ //table style defined.
+ mbHasTableStyles = false;
//Search through the collection of ScDBData (Database Ranges)
//checking for any table styles associated with them
miCount = 0;
@@ -3232,10 +3235,12 @@ XclExpTableStyles::XclExpTableStyles( const XclExpRoot& rRoot, XclExpDxfs& rDxfs
*/
ScDBDataFormatting aDBFormatting;
(*itr).GetTableFormatting( aDBFormatting );
- if( &(aDBFormatting) )//Probably non-standard?
+ if( &(aDBFormatting)!=NULL )//Probably non-standard?
{
miCount++;
maStyleContainer.push_back( new XclExpTableStyle( rRoot, aDBFormatting, rDxfs ) );
+ //We have atleast one style so mbHasTableStyles needs to be set
+ mbHasTableStyles = true;
}
}
}
@@ -3247,13 +3252,16 @@ XclExpTableStyles::~XclExpTableStyles()
void XclExpTableStyles::SaveXml( XclExpXmlStream& rStrm )
{
- sax_fastparser::FSHelperPtr& rStyleSheet = rStrm.GetCurrentStream();
- rStyleSheet->startElement( XML_tableStyles, XML_count, OString::number(miCount).getStr(), FSEND );
- for ( StyleContainer::iterator itr = maStyleContainer.begin(); itr != maStyleContainer.end(); ++itr )
+ if( mbHasTableStyles ) //If it has table styles only then start the element
{
- itr->SaveXml( rStrm );
+ sax_fastparser::FSHelperPtr& rStyleSheet = rStrm.GetCurrentStream();
+ rStyleSheet->startElement( XML_tableStyles, XML_count, OString::number(miCount).getStr(), FSEND );
+ for ( StyleContainer::iterator itr = maStyleContainer.begin(); itr != maStyleContainer.end(); ++itr )
+ {
+ itr->SaveXml( rStrm );
+ }
+ rStyleSheet->endElement( XML_tableStyles );
}
- rStyleSheet->endElement( XML_tableStyles );
}
// ============================================================================
diff --git a/sc/source/filter/inc/xestyle.hxx b/sc/source/filter/inc/xestyle.hxx
index a4e6017..d8d3031 100644
--- a/sc/source/filter/inc/xestyle.hxx
+++ b/sc/source/filter/inc/xestyle.hxx
@@ -804,6 +804,7 @@ private:
typedef boost::ptr_vector< XclExpTableStyle > StyleContainer;
StyleContainer maStyleContainer;
int miCount;
+ bool mbHasTableStyles;
};
// ============================================================================
More information about the Libreoffice-commits
mailing list