diff options
author | Noel Power <noel.power@suse.com> | 2013-05-27 16:55:36 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2013-05-27 17:02:57 +0100 |
commit | 9bff812099f56edfbc2efe6f2eae1913ab79661b (patch) | |
tree | 759157cfb32756d8de2bd898893e77bfaebed0ed | |
parent | Bump for 3.6-24 (diff) | |
download | core-9bff812099f56edfbc2efe6f2eae1913ab79661b.tar.gz core-9bff812099f56edfbc2efe6f2eae1913ab79661b.zip |
fix for bnc#819865 itemstate in parent style incorrectly reported as set
Problem occurs because attrs set with default values are reported as set when queried
Change-Id: Ic49e5e9908a6f11105cd255b8a70a95c83a512a8
-rw-r--r-- | sc/source/filter/oox/numberformatsbuffer.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/oox/stylesbuffer.cxx | 24 |
2 files changed, 12 insertions, 14 deletions
diff --git a/sc/source/filter/oox/numberformatsbuffer.cxx b/sc/source/filter/oox/numberformatsbuffer.cxx index 5133a91e7ade..af6608720c32 100644 --- a/sc/source/filter/oox/numberformatsbuffer.cxx +++ b/sc/source/filter/oox/numberformatsbuffer.cxx @@ -2076,7 +2076,7 @@ void NumberFormatsBuffer::insertBuiltinFormats() { // do not put the current system locale for default table Locale aLocale; - if( (*aVIt)->mpcLocale[ 0 ] != '\0' ) + if( (*aVIt)->mpcParent[ 0 ] != '\0' ) aLocale = aSysLocale; for( const BuiltinFormat* pBuiltin = (*aVIt)->mpFormats; pBuiltin && (pBuiltin->mnNumFmtId >= 0); ++pBuiltin ) { diff --git a/sc/source/filter/oox/stylesbuffer.cxx b/sc/source/filter/oox/stylesbuffer.cxx index cb1ce6eef76c..27a90199b934 100644 --- a/sc/source/filter/oox/stylesbuffer.cxx +++ b/sc/source/filter/oox/stylesbuffer.cxx @@ -2245,7 +2245,6 @@ void Xf::finalizeImport() // alignment and protection maAlignment.finalizeImport(); maProtection.finalizeImport(); - createPattern(); } FontRef Xf::getFont() const @@ -2342,8 +2341,12 @@ Xf::createPattern( bool bSkipPoolDefs ) StylesBuffer& rStyles = getStyles(); const Xf* pStyleXf = isCellXf() ? rStyles.getStyleXf( maModel.mnStyleXfId ).get() : 0; - if( pStyleXf ) + if( pStyleXf && !mpStyleSheet ) { + rStyles.createCellStyle( maModel.mnStyleXfId ); + mpStyleSheet = rStyles.getCellStyleSheet( maModel.mnStyleXfId ); + OSL_ENSURE( mpStyleSheet, "Xf::createPattern - no parentStyle created" ); + const XfModel& rStyleData = pStyleXf->maModel; if( !maModel.mbFontUsed ) maModel.mbFontUsed = !rStyleData.mbFontUsed || (maModel.mnFontId != rStyleData.mnFontId); @@ -2686,8 +2689,13 @@ void CellStyle::createCellStyle() { // #i1624# #i1768# ignore unnamed user styles + bool bDefStyle = maModel.isDefaultStyle(); if( !mbCreated ) + { + if ( bDefStyle && maFinalName.isEmpty() ) + maFinalName = ScGlobal::GetRscString( STR_STYLENAME_STANDARD ); mbCreated = maFinalName.isEmpty(); + } ::ScDocument& rDoc = getScDocument(); if( !mbCreated && !mpStyleSheet ) @@ -2695,12 +2703,11 @@ void CellStyle::createCellStyle() bool bCreatePattern = false; Xf* pXF = getStyles().getStyleXf( maModel.mnXfId ).get(); - bool bDefStyle = maModel.isDefaultStyle(); if( bDefStyle ) { // use existing "Default" style sheet mpStyleSheet = static_cast< ScStyleSheet* >( static_cast< ScStyleSheetPool* >( rDoc.GetStyleSheetPool() )->Find( - getStyles().getDefaultStyleName(), SFX_STYLE_FAMILY_PARA ) ); + ScGlobal::GetRscString( STR_STYLENAME_STANDARD ), SFX_STYLE_FAMILY_PARA ) ); OSL_ENSURE( mpStyleSheet, "CellStyle::createStyle - Default style not found" ); bCreatePattern = true; } @@ -2834,15 +2841,6 @@ void CellStyleBuffer::finalizeImport() // set final names and create user-defined and modified built-in cell styles aCellStyles.forEachMemWithKey( &CellStyle::finalizeImport ); - if (mxDefStyle) - { - Reference<XNameAccess> xNA(getStyleFamily(false), UNO_QUERY_THROW); - if (xNA->hasByName(CREATE_OUSTRING("Default"))) - { - PropertySet aPropSet(xNA->getByName(CREATE_OUSTRING("Default"))); - getStyles().writeStyleXfToPropertySet(aPropSet, mxDefStyle->getModel().mnXfId); - } - } } sal_Int32 CellStyleBuffer::getDefaultXfId() const |