sc/inc/column.hxx | 3 + sc/inc/formulacell.hxx | 4 +- sc/source/core/data/column.cxx | 20 +++++++--- sc/source/core/data/column2.cxx | 9 ++++ sc/source/core/data/column3.cxx | 13 +++++- sc/source/core/data/formulacell.cxx | 24 ++++++++---- sc/source/filter/excel/xestream.cxx | 22 +++++------ sc/source/filter/excel/xetable.cxx | 70 ++++++++---------------------------- sc/source/filter/inc/xetable.hxx | 3 - sc/source/filter/xml/xmlcelli.cxx | 2 + sc/source/ui/view/output2.cxx | 8 ++-- 11 files changed, 88 insertions(+), 90 deletions(-)
New commits: commit 7c0489cacd5bb86c6b268cf8dbea1cf6f84a7a38 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri May 24 22:41:44 2013 +0200 remove inherited number formats, related fdo#60215 Change-Id: I23d5e1b3baeb1499ada1fba1665027bdbe3fbb87 diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index e73a79c..49941f9 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -83,6 +83,7 @@ private: bool bInChangeTrack : 1; // Cell is in ChangeTrack bool bTableOpDirty : 1; // Dirty flag for TableOp bool bNeedListening : 1; // Listeners need to be re-established after UpdateReference + bool mbNeedsNumberFormat : 1; // set the calculated number format as hard number format enum ScInterpretTailParameter { @@ -145,6 +146,7 @@ public: void ResetDirty() { bDirty = false; } bool NeedsListening() const { return bNeedListening; } void SetNeedsListening( bool bVar ) { bNeedListening = bVar; } + void SetNeedNumberFormat( bool bVal ) { mbNeedsNumberFormat = bVal; } void Compile(const OUString& rFormula, bool bNoListening = false, const formula::FormulaGrammar::Grammar = formula::FormulaGrammar::GRAM_DEFAULT ); diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index 92b03ca..76f8fc6 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -2319,7 +2319,14 @@ void ScColumn::CompileXML( ScProgress& rProgress ) if ( pCell->GetCellType() == CELLTYPE_FORMULA ) { SCROW nRow = maItems[i].nRow; - static_cast<ScFormulaCell*>(pCell)->CompileXML( rProgress ); + ScFormulaCell* pFCell = static_cast<ScFormulaCell*>(pCell); + sal_uInt32 nCellFormat = GetNumberFormat( nRow ); + if( (nCellFormat % SV_COUNTRY_LANGUAGE_OFFSET) != 0) + pFCell->SetNeedNumberFormat(false); + else + pFCell->SetDirty(true); + + pFCell->CompileXML( rProgress ); if ( nRow != maItems[i].nRow ) Search( nRow, i ); // Listener deleted/inserted? } diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index c93e043..9e489ac 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -1507,6 +1507,15 @@ void ScColumn::CopyScriptTypesToDocument(SCROW nRow1, SCROW nRow2, ScColumn& rDe void ScColumn::SetCell(SCROW nRow, ScBaseCell* pNewCell) { + if(pNewCell->GetCellType() == CELLTYPE_FORMULA) + { + ScFormulaCell* pFCell = static_cast<ScFormulaCell*>(pNewCell); + sal_uInt32 nCellFormat = GetNumberFormat( nRow ); + if( (nCellFormat % SV_COUNTRY_LANGUAGE_OFFSET) == 0) + pFCell->SetNeedNumberFormat(true); + + } + bool bIsAppended = false; if ( !maItems.empty() ) { diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 63b3a5f..0b3c64f 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -1457,13 +1457,22 @@ void ScColumn::SetEditText( SCROW nRow, const EditTextObject& rEditText, const S void ScColumn::SetFormula( SCROW nRow, const ScTokenArray& rArray, formula::FormulaGrammar::Grammar eGram ) { ScAddress aPos(nCol, nRow, nTab); - Insert(nRow, new ScFormulaCell(pDocument, aPos, &rArray, eGram)); + ScFormulaCell* pCell = new ScFormulaCell(pDocument, aPos, &rArray, eGram); + sal_uInt32 nCellFormat = GetNumberFormat( nRow ); + if( (nCellFormat % SV_COUNTRY_LANGUAGE_OFFSET) != 0) + pCell->SetNeedNumberFormat(true); + Insert(nRow, pCell); } void ScColumn::SetFormula( SCROW nRow, const OUString& rFormula, formula::FormulaGrammar::Grammar eGram ) { ScAddress aPos(nCol, nRow, nTab); - Insert(nRow, new ScFormulaCell(pDocument, aPos, rFormula, eGram)); + ScFormulaCell* pCell = new ScFormulaCell(pDocument, aPos, rFormula, eGram); + + sal_uInt32 nCellFormat = GetNumberFormat( nRow ); + if( (nCellFormat % SV_COUNTRY_LANGUAGE_OFFSET) != 0) + pCell->SetNeedNumberFormat(true); + Insert(nRow, pCell); } void ScColumn::SetFormulaCell( SCROW nRow, ScFormulaCell* pCell ) diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 80305c2..446c89d 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -413,6 +413,7 @@ ScFormulaCell::ScFormulaCell( ScDocument* pDoc, const ScAddress& rPos, bInChangeTrack( false ), bTableOpDirty( false ), bNeedListening( false ), + mbNeedsNumberFormat( false ), aPos( rPos ) { Compile( rFormula, true, eGrammar ); // bNoListening, Insert does that @@ -447,6 +448,7 @@ ScFormulaCell::ScFormulaCell( ScDocument* pDoc, const ScAddress& rPos, bInChangeTrack( false ), bTableOpDirty( false ), bNeedListening( false ), + mbNeedsNumberFormat( false ), aPos( rPos ) { // UPN-Array generation @@ -491,6 +493,7 @@ ScFormulaCell::ScFormulaCell( const ScFormulaCell& rCell, ScDocument& rDoc, cons bInChangeTrack( false ), bTableOpDirty( false ), bNeedListening( false ), + mbNeedsNumberFormat( false ), aPos( rPos ) { pCode = rCell.pCode->Clone(); @@ -1289,16 +1292,21 @@ void ScFormulaCell::InterpretTail( ScInterpretTailParameter eTailParam ) if ( aResult.GetCellResultType() != svUnknown ) bContentChanged = true; } - // Different number format? - if( nFormatType != p->GetRetFormatType() ) - { - nFormatType = p->GetRetFormatType(); - bChanged = true; - } - if( nFormatIndex != p->GetRetFormatIndex() ) + + if( mbNeedsNumberFormat ) { - nFormatIndex = p->GetRetFormatIndex(); + sal_uInt16 nFormatType = p->GetRetFormatType(); + sal_Int32 nFormatIndex = p->GetRetFormatIndex(); + + if((nFormatIndex % SV_COUNTRY_LANGUAGE_OFFSET) == 0) + nFormatIndex = ScGlobal::GetStandardFormat(*pDocument->GetFormatTable(), + nFormatIndex, nFormatType); + + // set number format explicitly + pDocument->SetNumberFormat( aPos, nFormatIndex ); + bChanged = true; + mbNeedsNumberFormat = false; } // In case of changes just obtain the result, no temporary and diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx index 556f27b..56d6121 100644 --- a/sc/source/filter/xml/xmlcelli.cxx +++ b/sc/source/filter/xml/xmlcelli.cxx @@ -1116,6 +1116,7 @@ void ScXMLTableRowCellContext::PutValueCell( const ScAddress& rCurrentPos ) { ScFormulaCell* pFCell = rXMLImport.GetDocument()->GetFormulaCell(rCurrentPos); SetFormulaCell(pFCell); + pFCell->SetNeedNumberFormat( true ); } } else //regular value cell @@ -1348,6 +1349,7 @@ void ScXMLTableRowCellContext::PutFormulaCell( const ScAddress& rCellPos ) ScFormulaCell* pNewCell = new ScFormulaCell(pDoc, rCellPos, pCode.get(), eGrammar, MM_NONE); SetFormulaCell(pNewCell); pDoc->SetFormulaCell(rCellPos, pNewCell); + pNewCell->SetNeedNumberFormat( true ); } else if ( aText[0] == '\'' && aText.getLength() > 1 ) { commit 967f147cc577aee8c6f0039a18c4791151310b7a Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri May 24 02:07:16 2013 +0200 make ScColumn::Append private This method should never be called outside of ScColumn anyway. Change-Id: I11443ae2001e440c92b6ee45c6400e9e2af2fa02 diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index e0773aa..122988f 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -176,7 +176,6 @@ public: ScRefCellValue GetCellValue( SCROW nRow ) const; void Insert( SCROW nRow, ScBaseCell* pCell ); void Insert( SCROW nRow, sal_uInt32 nFormatIndex, ScBaseCell* pCell ); - void Append( SCROW nRow, ScBaseCell* pCell ); void Delete( SCROW nRow ); void DeleteAtIndex( SCSIZE nIndex ); void FreeAll(); @@ -487,6 +486,8 @@ private: void CopyScriptTypesToDocument(SCROW nRow1, SCROW nRow2, ScColumn& rDestCol) const; void SetCell(SCROW nRow, ScBaseCell* pNewCell); + + void Append( SCROW nRow, ScBaseCell* pCell ); }; commit 5b2e4f7ec59d8d0d6842cbf5e93110420db7b8dd Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Thu May 23 23:17:49 2013 +0200 use static_cast instead of c style cast Change-Id: I9194d5fb9fc42247cf43bfcd0327472eeca7c297 diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index 2933e9f..92b03ca 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -2267,13 +2267,13 @@ void ScColumn::CalcAll() ScBaseCell* pCell = maItems[i].pCell; if (pCell->GetCellType() == CELLTYPE_FORMULA) { + ScFormulaCell* pFCell = static_cast<ScFormulaCell*>(pCell); #if OSL_DEBUG_LEVEL > 1 // after F9 ctrl-F9: check the calculation for each FormulaTree - ScFormulaCell* pFCell = (ScFormulaCell*)pCell; double nOldVal, nNewVal; nOldVal = pFCell->GetValue(); #endif - ((ScFormulaCell*)pCell)->Interpret(); + pFCell->Interpret(); #if OSL_DEBUG_LEVEL > 1 if ( pFCell->GetCode()->IsRecalcModeNormal() ) nNewVal = pFCell->GetValue(); @@ -2298,9 +2298,10 @@ void ScColumn::CompileAll() SCROW nRow = maItems[i].nRow; // for unconditional compilation // bCompile=true and pCode->nError=0 - ((ScFormulaCell*)pCell)->GetCode()->SetCodeError( 0 ); - ((ScFormulaCell*)pCell)->SetCompile( true ); - ((ScFormulaCell*)pCell)->CompileTokenArray(); + ScFormulaCell* pFCell = static_cast<ScFormulaCell*>(pCell); + pFCell->GetCode()->SetCodeError( 0 ); + pFCell->SetCompile( true ); + pFCell->CompileTokenArray(); if ( nRow != maItems[i].nRow ) Search( nRow, i ); // Listener deleted/inserted? } @@ -2318,7 +2319,7 @@ void ScColumn::CompileXML( ScProgress& rProgress ) if ( pCell->GetCellType() == CELLTYPE_FORMULA ) { SCROW nRow = maItems[i].nRow; - ((ScFormulaCell*)pCell)->CompileXML( rProgress ); + static_cast<ScFormulaCell*>(pCell)->CompileXML( rProgress ); if ( nRow != maItems[i].nRow ) Search( nRow, i ); // Listener deleted/inserted? } commit 25b093c73f9266d6dff4d443392e0c0cd422c136 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue May 21 20:26:04 2013 +0200 this method is unused now We are down to two number format methods in ScFormulaCell now Change-Id: If8bf13dfdd9803872bc1425909c31a5bb0ee1598 diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index 4152450..e73a79c 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -93,8 +93,6 @@ private: void InterpretTail( ScInterpretTailParameter ); ScFormulaCell( const ScFormulaCell& ); - sal_uLong GetFormatIndex() const { return nFormatIndex; } - public: enum CompareState { NotEqual = 0, EqualInvariant, EqualRelativeRef }; commit 815458802168834778c76bd2855a58e5abff0d00 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue May 21 20:25:21 2013 +0200 String to OUString Change-Id: I4ca8254fea9e2ec78cb1d542cc8c0c2cd12e6e89 diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 1ce9da4..9c3ebcd 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -910,8 +910,8 @@ void XclExpFormulaCell::WriteContents( XclExpStream& rStrm ) case NUMBERFORMAT_TEXT: { - String aResult = mrScFmlaCell.GetString(); - if( aResult.Len() || (rStrm.GetRoot().GetBiff() <= EXC_BIFF5) ) + OUString aResult = mrScFmlaCell.GetString(); + if( !aResult.isEmpty() || (rStrm.GetRoot().GetBiff() <= EXC_BIFF5) ) { rStrm << EXC_FORMULA_RES_STRING; mxStringRec.reset( new XclExpStringRec( rStrm.GetRoot(), aResult ) ); commit 447b9ff6db7948d4229a14293933ed3b918e008f Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue May 7 03:05:07 2013 +0200 bail out early for error cells Change-Id: Ice38b42cdd01b8dbb472752d2c8e1679181f8422 diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index d2dccc0..1ce9da4 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -887,20 +887,24 @@ void XclExpFormulaCell::SaveXml( XclExpXmlStream& rStrm ) void XclExpFormulaCell::WriteContents( XclExpStream& rStrm ) { + sal_uInt16 nScErrCode = mrScFmlaCell.GetErrCode(); + if( nScErrCode ) + { + rStrm << EXC_FORMULA_RES_ERROR << sal_uInt8( 0 ) + << XclTools::GetXclErrorCode( nScErrCode ) + << sal_uInt8( 0 ) << sal_uInt16( 0 ) + << sal_uInt16( 0xFFFF ); + + return; + } + // result of the formula switch( mrScFmlaCell.GetFormatType() ) { case NUMBERFORMAT_NUMBER: { // either value or error code - sal_uInt16 nScErrCode = mrScFmlaCell.GetErrCode(); - if( nScErrCode ) - rStrm << EXC_FORMULA_RES_ERROR << sal_uInt8( 0 ) - << XclTools::GetXclErrorCode( nScErrCode ) - << sal_uInt8( 0 ) << sal_uInt16( 0 ) - << sal_uInt16( 0xFFFF ); - else - rStrm << mrScFmlaCell.GetValue(); + rStrm << mrScFmlaCell.GetValue(); } break; commit 7179c8e6d569d32ad00ee50b58201ed9382e5709 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue May 7 02:10:12 2013 +0200 bail out for error cells early Change-Id: I36581f3b735008dbba6eea5808da654eb8b279e3 diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx index 02632ed..bf9c1d8 100644 --- a/sc/source/filter/excel/xestream.cxx +++ b/sc/source/filter/excel/xestream.cxx @@ -675,22 +675,22 @@ static const char* lcl_GetErrorString( sal_uInt16 nScErrCode ) void XclXmlUtils::GetFormulaTypeAndValue( ScFormulaCell& rCell, const char*& rsType, OUString& rsValue ) { + sal_uInt16 nScErrCode = rCell.GetErrCode(); + if( nScErrCode ) + { + rsType = "e"; + rsValue = ToOUString( lcl_GetErrorString( nScErrCode ) ); + + return; + } + switch( rCell.GetFormatType() ) { case NUMBERFORMAT_NUMBER: { // either value or error code - sal_uInt16 nScErrCode = rCell.GetErrCode(); - if( nScErrCode ) - { - rsType = "e"; - rsValue = ToOUString( lcl_GetErrorString( nScErrCode ) ); - } - else - { - rsType = "n"; - rsValue = OUString::valueOf( rCell.GetValue() ); - } + rsType = "n"; + rsValue = OUString::valueOf( rCell.GetValue() ); } break; commit 07e267e6d9367f3fe45209aa90d811b02068a7b5 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue May 7 02:03:54 2013 +0200 fix warning Change-Id: I7a226a7411ff2bab7d373c5720541071aabd573b diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx index 2cdb205..6ec5017 100644 --- a/sc/source/ui/view/output2.cxx +++ b/sc/source/ui/view/output2.cxx @@ -154,7 +154,7 @@ public: const Size& GetTextSize() const { return aTextSize; } long GetOriginalWidth() const { return nOriginalWidth; } - sal_uLong GetResultValueFormat( const ScRefCellValue& rCell ) const; + sal_uLong GetResultValueFormat() const; sal_uLong GetValueFormat() const { return nValueFormat; } sal_Bool GetLineBreak() const { return bLineBreak; } @@ -597,7 +597,7 @@ void ScDrawStringsVars::SetTextToWidthOrHash( ScRefCellValue& rCell, long nWidth return; } - sal_uLong nFormat = GetResultValueFormat(rCell); + sal_uLong nFormat = GetResultValueFormat(); if ((nFormat % SV_COUNTRY_LANGUAGE_OFFSET) != 0) { // Not 'General' number format. Set hash text and bail out. @@ -783,7 +783,7 @@ sal_Bool ScDrawStringsVars::HasEditCharacters() const return aString.SearchChar( pChars ) != STRING_NOTFOUND; } -sal_uLong ScDrawStringsVars::GetResultValueFormat( const ScRefCellValue& rCell ) const +sal_uLong ScDrawStringsVars::GetResultValueFormat() const { // Get the effective number format, including formula result types. // This assumes that a formula cell has already been calculated. @@ -1672,7 +1672,7 @@ void ScOutputData::DrawStrings( sal_Bool bPixelToLogic ) bool bBreak = ( aVars.GetLineBreak() || aVars.GetHorJust() == SVX_HOR_JUSTIFY_BLOCK ); // #i111387# #o11817313# disable automatic line breaks only for "General" number format - if (bBreak && bCellIsValue && (aVars.GetResultValueFormat(aCell) % SV_COUNTRY_LANGUAGE_OFFSET) == 0) + if (bBreak && bCellIsValue && (aVars.GetResultValueFormat() % SV_COUNTRY_LANGUAGE_OFFSET) == 0) bBreak = false; bool bRepeat = aVars.IsRepeat() && !bBreak; commit 45b0350eaa2615aa598cbce152da62b49032f74e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue May 7 02:00:25 2013 +0200 remove one more use of inherited number formats Change-Id: If12ca06b45821efe9e52555095a45ae3ce2d377a diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 4851f20..d2dccc0 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -760,55 +760,13 @@ IMPL_FIXEDMEMPOOL_NEWDEL( XclExpFormulaCell ) XclExpFormulaCell::XclExpFormulaCell( const XclExpRoot& rRoot, const XclAddress& rXclPos, - const ScPatternAttr* pPattern, sal_uInt32 nForcedXFId, - const ScFormulaCell& rScFmlaCell, + sal_uInt32 nForcedXFId, const ScFormulaCell& rScFmlaCell, XclExpArrayBuffer& rArrayBfr, XclExpShrfmlaBuffer& rShrfmlaBfr, XclExpTableopBuffer& rTableopBfr ) : XclExpSingleCellBase( EXC_ID2_FORMULA, 0, rXclPos, nForcedXFId ), mrScFmlaCell( const_cast< ScFormulaCell& >( rScFmlaCell ) ) { - // *** Find result number format overwriting cell number format *** ------- - - if( GetXFId() == EXC_XFID_NOTFOUND ) - { - SvNumberFormatter& rFormatter = rRoot.GetFormatter(); - XclExpNumFmtBuffer& rNumFmtBfr = rRoot.GetNumFmtBuffer(); - - // current cell number format - sal_uLong nScNumFmt = pPattern ? - GETITEMVALUE( pPattern->GetItemSet(), SfxUInt32Item, ATTR_VALUE_FORMAT, sal_uLong ) : - rNumFmtBfr.GetStandardFormat(); - - // alternative number format passed to XF buffer - sal_uLong nAltScNumFmt = NUMBERFORMAT_ENTRY_NOT_FOUND; - /* Xcl doesn't know Boolean number formats, we write - "TRUE";"FALSE" (language dependent). Don't do it for automatic - formula formats, because Excel gets them right. */ - /* #i8640# Don't set text format, if we have string results. */ - short nFormatType = mrScFmlaCell.GetFormatType(); - if( ((nScNumFmt % SV_COUNTRY_LANGUAGE_OFFSET) == 0) && - (nFormatType != NUMBERFORMAT_LOGICAL) && - (nFormatType != NUMBERFORMAT_TEXT) ) - nAltScNumFmt = mrScFmlaCell.GetStandardFormat( rFormatter, nScNumFmt ); - /* If cell number format is Boolean and automatic formula - format is Boolean don't write that ugly special format. */ - else if( (nFormatType == NUMBERFORMAT_LOGICAL) && - (rFormatter.GetType( nScNumFmt ) == NUMBERFORMAT_LOGICAL) ) - nAltScNumFmt = rNumFmtBfr.GetStandardFormat(); - - // #i41420# find script type according to result type (always latin for numeric results) - sal_Int16 nScript = ApiScriptType::LATIN; - bool bForceLineBreak = false; - if( nFormatType == NUMBERFORMAT_TEXT ) - { - String aResult = mrScFmlaCell.GetString(); - bForceLineBreak = mrScFmlaCell.IsMultilineResult(); - nScript = XclExpStringHelper::GetLeadingScriptType( rRoot, aResult ); - } - SetXFId( rRoot.GetXFBuffer().InsertWithNumFmt( pPattern, nScript, nAltScNumFmt, bForceLineBreak ) ); - } - // *** Convert the formula token array *** -------------------------------- ScAddress aScPos( static_cast< SCCOL >( rXclPos.mnCol ), static_cast< SCROW >( rXclPos.mnRow ), rRoot.GetCurrScTab() ); @@ -2374,7 +2332,7 @@ XclExpCellTable::XclExpCellTable( const XclExpRoot& rRoot ) : case CELLTYPE_FORMULA: { xCell.reset(new XclExpFormulaCell( - GetRoot(), aXclPos, pPattern, nMergeBaseXFId, + GetRoot(), aXclPos, nMergeBaseXFId, *rScCell.mpFormula, maArrayBfr, maShrfmlaBfr, maTableopBfr)); } break; diff --git a/sc/source/filter/inc/xetable.hxx b/sc/source/filter/inc/xetable.hxx index 655d6ea..b0253b3 100644 --- a/sc/source/filter/inc/xetable.hxx +++ b/sc/source/filter/inc/xetable.hxx @@ -451,8 +451,7 @@ class XclExpFormulaCell : public XclExpSingleCellBase public: explicit XclExpFormulaCell( const XclExpRoot& rRoot, const XclAddress& rXclPos, - const ScPatternAttr* pPattern, sal_uInt32 nForcedXFId, - const ScFormulaCell& rScFmlaCell, + sal_uInt32 nForcedXFId, const ScFormulaCell& rScFmlaCell, XclExpArrayBuffer& rArrayBfr, XclExpShrfmlaBuffer& rShrfmlaBfr, XclExpTableopBuffer& rTableopBfr ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits