sc/source/core/data/table2.cxx | 5 -- sc/source/core/data/table3.cxx | 12 ++--- sc/source/core/tool/token.cxx | 6 +- sc/source/filter/excel/excform.cxx | 14 ++--- sc/source/filter/excel/excform8.cxx | 14 ++--- sc/source/filter/excel/frmbase.cxx | 85 +++++++++++++++++------------------- sc/source/filter/inc/formel.hxx | 4 - 7 files changed, 67 insertions(+), 73 deletions(-)
New commits: commit 311d4726572ce9c439288f198cb7373576fac2a1 Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Fri Jul 26 23:06:06 2013 -0400 More of the same. Will this ever end, I'm starting to wonder... Change-Id: I36bc90e8477cba306e107fb6d6e47f5732161df8 diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index 5bbb6d3..ebbd7fb 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -971,10 +971,7 @@ void ScTable::TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScAddress aDestPos( static_cast<SCCOL>(nRow-nRow1), static_cast<SCROW>(nCol-nCol1), pTransClip->nTab ); ScSingleRefData aRef; - aRef.nCol = nCol; - aRef.nRow = nRow; - aRef.nTab = nTab; - aRef.InitFlags(); // -> all absolute + aRef.InitAddress(ScAddress(nCol,nRow,nTab)); aRef.SetFlag3D(true); ScTokenArray aArr; aArr.AddSingleReference( aRef ); diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index 9971816..60df260 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -1107,8 +1107,8 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) // now insert the formulas ScComplexRefData aRef; aRef.InitFlags(); - aRef.Ref1.nTab = nTab; - aRef.Ref2.nTab = nTab; + aRef.Ref1.SetAbsTab(nTab); + aRef.Ref2.SetAbsTab(nTab); for ( ::std::vector< RowEntry >::const_iterator iEntry( aRowVector.begin()); iEntry != aRowVector.end(); ++iEntry) { @@ -1117,10 +1117,10 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) ScSubTotalFunc* eResFunc = rParam.pFunctions[iEntry->nGroupNo]; for ( SCCOL nResult=0; nResult < nResCount; ++nResult ) { - aRef.Ref1.nCol = nResCols[nResult]; - aRef.Ref1.nRow = iEntry->nFuncStart; - aRef.Ref2.nCol = nResCols[nResult]; - aRef.Ref2.nRow = iEntry->nFuncEnd; + aRef.Ref1.SetAbsCol(nResCols[nResult]); + aRef.Ref1.SetAbsRow(iEntry->nFuncStart); + aRef.Ref2.SetAbsCol(nResCols[nResult]); + aRef.Ref2.SetAbsRow(iEntry->nFuncEnd); ScTokenArray aArr; aArr.AddOpCode( ocSubTotal ); diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index a46d33e..df54e8f 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -2070,13 +2070,13 @@ void AdjustSingleRefData( ScSingleRefData& rRef, const ScAddress& rOldPos, const SCsTAB nTabs = rNewPos.Tab() - rOldPos.Tab(); if (!rRef.IsColRel()) - rRef.nCol += nCols; + rRef.IncCol(nCols); if (!rRef.IsRowRel()) - rRef.nRow += nRows; + rRef.IncRow(nRows); if (!rRef.IsTabRel()) - rRef.nTab += nTabs; + rRef.IncTab(nTabs); } } diff --git a/sc/source/filter/excel/excform.cxx b/sc/source/filter/excel/excform.cxx index ec9817d..7918bad 100644 --- a/sc/source/filter/excel/excform.cxx +++ b/sc/source/filter/excel/excform.cxx @@ -1037,7 +1037,7 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal ExcRelToScRel( nUINT16, nByte, aSRD, bRangeName ); - rRangeList.Append( aSRD, nTab ); + rRangeList.Append(aSRD.toAbs(aEingPos), nTab); break; case 0x45: case 0x65: @@ -1063,7 +1063,7 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal else if( IsComplRowRange( nRowFirst, nRowLast ) ) SetComplRow( aCRD ); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); } break; case 0x46: @@ -1099,7 +1099,7 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal ExcRelToScRel( nUINT16, nByte, aSRD, bRNorSF ); - rRangeList.Append( aSRD, nTab ); + rRangeList.Append(aSRD.toAbs(aEingPos), nTab); } break; case 0x4D: @@ -1124,7 +1124,7 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal else if( IsComplRowRange( nRowFirst, nRowLast ) ) SetComplRow( aCRD ); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); } break; case 0x49: @@ -1192,10 +1192,10 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal aCRD.Ref2.SetAbsTab(static_cast<SCTAB>(nTabLast)); b3D = ( static_cast<SCTAB>(nTabLast) != aEingPos.Tab() ); aCRD.Ref2.SetFlag3D( b3D ); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); } else - rRangeList.Append( aSRD, nTab ); + rRangeList.Append(aSRD.toAbs(aEingPos), nTab); } } @@ -1250,7 +1250,7 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal else if( IsComplRowRange( nRowFirst, nRowLast ) ) SetComplRow( aCRD ); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); }//END in current Workbook } break; diff --git a/sc/source/filter/excel/excform8.cxx b/sc/source/filter/excel/excform8.cxx index 7a180e4..7e72b04 100644 --- a/sc/source/filter/excel/excform8.cxx +++ b/sc/source/filter/excel/excform8.cxx @@ -1053,7 +1053,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa ExcRelToScRel8( nRow, nCol, aSRD, bRangeName ); - rRangeList.Append( aSRD, nTab ); + rRangeList.Append(aSRD.toAbs(aEingPos), nTab); } break; case 0x45: @@ -1080,7 +1080,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa else if( IsComplRowRange( nRowFirst, nRowLast ) ) SetComplRow( aCRD ); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); } break; case 0x46: @@ -1123,7 +1123,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa ExcRelToScRel8( nRow, nCol, aSRD, bRNorSF ); - rRangeList.Append( aSRD, nTab ); + rRangeList.Append(aSRD.toAbs(aEingPos), nTab); } break; case 0x4D: @@ -1148,7 +1148,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa else if( IsComplRowRange( nRowFirst, nRowLast ) ) SetComplRow( aCRD ); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); } break; case 0x4E: @@ -1189,10 +1189,10 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa aCRD.Ref1 = aSRD; aCRD.Ref2 = aSRD; aCRD.Ref2.SetAbsTab(nLastScTab); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); } else - rRangeList.Append( aSRD, nTab ); + rRangeList.Append(aSRD.toAbs(aEingPos), nTab); } } break; @@ -1225,7 +1225,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa else if( IsComplRowRange( nRw1, nRw2 ) ) SetComplRow( aCRD ); - rRangeList.Append( aCRD, nTab ); + rRangeList.Append(aCRD.toAbs(aEingPos), nTab); } } break; diff --git a/sc/source/filter/excel/frmbase.cxx b/sc/source/filter/excel/frmbase.cxx index 936f41d..b1166ee 100644 --- a/sc/source/filter/excel/frmbase.cxx +++ b/sc/source/filter/excel/frmbase.cxx @@ -29,18 +29,20 @@ _ScRangeListTabs::~_ScRangeListTabs() } -void _ScRangeListTabs::Append( ScSingleRefData a, SCTAB nTab, const bool b ) +void _ScRangeListTabs::Append( const ScAddress& aSRD, SCTAB nTab, const bool b ) { + ScAddress a = aSRD; + if( b ) { - if( a.nTab > MAXTAB ) - a.nTab = MAXTAB; + if (a.Tab() > MAXTAB) + a.SetTab(MAXTAB); - if( a.nCol > MAXCOL ) - a.nCol = MAXCOL; + if (a.Col() > MAXCOL) + a.SetCol(MAXCOL); - if( a.nRow > MAXROW ) - a.nRow = MAXROW; + if (a.Row() > MAXROW) + a.SetRow(MAXROW); } else { @@ -50,7 +52,7 @@ void _ScRangeListTabs::Append( ScSingleRefData a, SCTAB nTab, const bool b ) if( nTab == SCTAB_MAX) return; if( nTab < 0) - nTab = a.nTab; + nTab = a.Tab(); if (nTab < 0 || MAXTAB < nTab) return; @@ -68,46 +70,43 @@ void _ScRangeListTabs::Append( ScSingleRefData a, SCTAB nTab, const bool b ) itr = r.first; } - itr->second->push_back(ScRange(a.nCol,a.nRow,a.nTab)); + itr->second->push_back(ScRange(a.Col(),a.Row(),a.Tab())); } -void _ScRangeListTabs::Append( ScComplexRefData a, SCTAB nTab, bool b ) +void _ScRangeListTabs::Append( const ScRange& aCRD, SCTAB nTab, bool b ) { + ScRange a = aCRD; + if( b ) { // ignore 3D ranges - if( a.Ref1.nTab != a.Ref2.nTab ) + if (a.aStart.Tab() != a.aEnd.Tab()) return; - SCsTAB& rTab = a.Ref1.nTab; - if( rTab > MAXTAB ) - rTab = MAXTAB; - else if( rTab < 0 ) - rTab = 0; - - SCsCOL& rCol1 = a.Ref1.nCol; - if( rCol1 > MAXCOL ) - rCol1 = MAXCOL; - else if( rCol1 < 0 ) - rCol1 = 0; - - SCsROW& rRow1 = a.Ref1.nRow; - if( rRow1 > MAXROW ) - rRow1 = MAXROW; - else if( rRow1 < 0 ) - rRow1 = 0; - - SCsCOL& rCol2 = a.Ref2.nCol; - if( rCol2 > MAXCOL ) - rCol2 = MAXCOL; - else if( rCol2 < 0 ) - rCol2 = 0; - - SCsROW& rRow2 = a.Ref2.nRow; - if( rRow2 > MAXROW ) - rRow2 = MAXROW; - else if( rRow2 < 0 ) - rRow2 = 0; + if (a.aStart.Tab() > MAXTAB) + a.aStart.SetTab(MAXTAB); + else if (a.aStart.Tab() < 0) + a.aStart.SetTab(0); + + if (a.aStart.Col() > MAXCOL) + a.aStart.SetCol(MAXCOL); + else if (a.aStart.Col() < 0) + a.aStart.SetCol(0); + + if (a.aStart.Row() > MAXROW) + a.aStart.SetRow(MAXROW); + else if (a.aStart.Row() < 0) + a.aStart.SetRow(0); + + if (a.aEnd.Col() > MAXCOL) + a.aEnd.SetCol(MAXCOL); + else if (a.aEnd.Col() < 0) + a.aEnd.SetCol(0); + + if (a.aEnd.Row() > MAXROW) + a.aEnd.SetRow(MAXROW); + else if (a.aEnd.Row() < 0) + a.aEnd.SetRow(0); } else { @@ -121,7 +120,7 @@ void _ScRangeListTabs::Append( ScComplexRefData a, SCTAB nTab, bool b ) return; if( nTab < -1) - nTab = a.Ref1.nTab; + nTab = a.aStart.Tab(); if (nTab < 0 || MAXTAB < nTab) return; @@ -139,9 +138,7 @@ void _ScRangeListTabs::Append( ScComplexRefData a, SCTAB nTab, bool b ) itr = r.first; } - itr->second->push_back( - ScRange(a.Ref1.nCol,a.Ref1.nRow,a.Ref1.nTab, - a.Ref2.nCol,a.Ref2.nRow,a.Ref2.nTab)); + itr->second->push_back(a); } const ScRange* _ScRangeListTabs::First( SCTAB n ) diff --git a/sc/source/filter/inc/formel.hxx b/sc/source/filter/inc/formel.hxx index 1514e11..faf61b7 100644 --- a/sc/source/filter/inc/formel.hxx +++ b/sc/source/filter/inc/formel.hxx @@ -65,8 +65,8 @@ public: _ScRangeListTabs (); ~_ScRangeListTabs(); - void Append( ScSingleRefData aSRD, SCTAB nTab, bool bLimit = true ); - void Append( ScComplexRefData aCRD, SCTAB nTab, bool bLimit = true ); + void Append( const ScAddress& aSRD, SCTAB nTab, bool bLimit = true ); + void Append( const ScRange& aCRD, SCTAB nTab, bool bLimit = true ); const ScRange* First ( SCTAB nTab = 0 ); const ScRange* Next (); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits