diff options
author | Noel Power <noel.power@suse.com> | 2013-05-22 10:00:34 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2013-05-22 10:03:26 +0100 |
commit | bf8e9b29aaebcbdd8f2f06b42ac97b8d9f8f4503 (patch) | |
tree | 6b254f595e5053597f611b2d101c4ad8c83da5ec | |
parent | 6a0a33444255fcdbe16500de24fc5bfd74adca4b (diff) |
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: I89d6c3b09312fb78052d87ff20aa12c6fbe7bc98
-rw-r--r-- | sc/source/filter/oox/numberformatsbuffer.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/oox/stylesbuffer.cxx | 25 |
2 files changed, 12 insertions, 15 deletions
diff --git a/sc/source/filter/oox/numberformatsbuffer.cxx b/sc/source/filter/oox/numberformatsbuffer.cxx index 4baa33ee8ff3..8f7935d1d597 100644 --- a/sc/source/filter/oox/numberformatsbuffer.cxx +++ b/sc/source/filter/oox/numberformatsbuffer.cxx @@ -2049,7 +2049,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 fc3ee8051f6f..4d4a205239a7 100644 --- a/sc/source/filter/oox/stylesbuffer.cxx +++ b/sc/source/filter/oox/stylesbuffer.cxx @@ -2274,7 +2274,6 @@ void Xf::finalizeImport() // alignment and protection maAlignment.finalizeImport(); maProtection.finalizeImport(); - createPattern(); } FontRef Xf::getFont() const @@ -2371,8 +2370,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); @@ -2741,8 +2744,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(); + } if( !mbCreated && !mpStyleSheet ) { @@ -2750,12 +2758,11 @@ void CellStyle::createCellStyle() Xf* pXF = getStyles().getStyleXf( maModel.mnXfId ).get(); ::ScDocument& rDoc = getScDocument(); - 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; } @@ -2891,16 +2898,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("Default")) - { - PropertySet aPropSet(xNA->getByName("Default")); - getStyles().writeStyleXfToPropertySet(aPropSet, mxDefStyle->getModel().mnXfId); - } - } } sal_Int32 CellStyleBuffer::getDefaultXfId() const |