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
diff --git a/sc/source/filter/oox/numberformatsbuffer.cxx b/sc/source/filter/oox/numberformatsbuffer.cxx
index 4baa33e..8f7935d 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 fc3ee80..4d4a205 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