sc/source/ui/unoobj/cellsuno.cxx | 75 ++++++++++++++++++++------------------ sc/source/ui/unoobj/chart2uno.cxx | 24 ++++++------ sc/source/ui/unoobj/confuno.cxx | 4 +- sc/source/ui/unoobj/cursuno.cxx | 14 ++++--- sc/source/ui/unoobj/defltuno.cxx | 4 +- sc/source/ui/unoobj/docuno.cxx | 51 ++++++++++++++++--------- sc/source/ui/unoobj/funcuno.cxx | 8 ++-- sc/source/ui/unoobj/nameuno.cxx | 6 +-- sc/source/ui/unoobj/servuno.cxx | 3 - sc/source/ui/unoobj/shapeuno.cxx | 4 +- sc/source/ui/unoobj/styleuno.cxx | 8 ++-- 11 files changed, 110 insertions(+), 91 deletions(-)
New commits: commit 009e7a54f40ebacd9dd4a394504c277789699801 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Tue Oct 22 15:30:34 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Oct 23 11:05:29 2019 +0200 sc: rowcol: tdf#50916 convert unoobj Change-Id: Iec648767c7f09f9655dcd6bceff9df5fc66026de Reviewed-on: https://gerrit.libreoffice.org/81332 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx index d7280b666477..b28ece90e404 100644 --- a/sc/source/ui/unoobj/cellsuno.cxx +++ b/sc/source/ui/unoobj/cellsuno.cxx @@ -921,13 +921,13 @@ static SCTAB lcl_FirstTab( const ScRangeList& rRanges ) return rFirst.aStart.Tab(); } -static bool lcl_WholeSheet( const ScRangeList& rRanges ) +static bool lcl_WholeSheet( const ScDocument* pDoc, const ScRangeList& rRanges ) { if ( rRanges.size() == 1 ) { const ScRange & rRange = rRanges[0]; - if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL && - rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW ) + if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == pDoc->MaxCol() && + rRange.aStart.Row() == 0 && rRange.aEnd.Row() == pDoc->MaxRow() ) return true; } return false; @@ -1560,8 +1560,8 @@ void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint ) ScRange & rR = aRanges.front(); rR.aStart.SetCol(0); rR.aStart.SetRow(0); - rR.aEnd.SetCol(MAXCOL); - rR.aEnd.SetRow(MAXROW); + rR.aEnd.SetCol(rDoc.MaxCol()); + rR.aEnd.SetRow(rDoc.MaxRow()); } RefChanged(); @@ -2919,9 +2919,10 @@ std::unique_ptr<ScMemChart> ScCellRangesBase::CreateMemChart_Impl() const // (only here - Listeners are registered for the whole area) //! check immediately if a ScTableSheetObj? + const ScDocument & rDoc = pDocShell->GetDocument(); const ScRange & rRange = aRanges[0]; - if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL && - rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW ) + if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == rDoc.MaxCol() && + rRange.aStart.Row() == 0 && rRange.aEnd.Row() == rDoc.MaxRow() ) { SCTAB nTab = rRange.aStart.Tab(); @@ -2987,9 +2988,10 @@ ScRangeListRef ScCellRangesBase::GetLimitedChartRanges_Impl( long nDataColumns, { if ( aRanges.size() == 1 ) { + const ScDocument & rDoc = pDocShell->GetDocument(); const ScRange & rRange = aRanges[0]; - if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL && - rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW ) + if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == rDoc.MaxCol() && + rRange.aStart.Row() == 0 && rRange.aEnd.Row() == rDoc.MaxRow() ) { // if aRanges is a complete sheet, limit to given size @@ -2998,14 +3000,14 @@ ScRangeListRef ScCellRangesBase::GetLimitedChartRanges_Impl( long nDataColumns, long nEndColumn = nDataColumns - 1 + ( bChartColAsHdr ? 1 : 0 ); if ( nEndColumn < 0 ) nEndColumn = 0; - if ( nEndColumn > MAXCOL ) - nEndColumn = MAXCOL; + if ( nEndColumn > rDoc.MaxCol() ) + nEndColumn = rDoc.MaxCol(); long nEndRow = nDataRows - 1 + ( bChartRowAsHdr ? 1 : 0 ); if ( nEndRow < 0 ) nEndRow = 0; - if ( nEndRow > MAXROW ) - nEndRow = MAXROW; + if ( nEndRow > rDoc.MaxRow() ) + nEndRow = rDoc.MaxRow(); ScRangeListRef xChartRanges = new ScRangeList( ScRange( 0, 0, nTab, static_cast<SCCOL>(nEndColumn), static_cast<SCROW>(nEndRow), nTab ) ); return xChartRanges; @@ -3341,21 +3343,21 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryVisibleC ScDocument& rDoc = pDocShell->GetDocument(); SCCOL nCol = 0, nLastCol; - while (nCol <= MAXCOL) + while (nCol <= rDoc.MaxCol()) { if (rDoc.ColHidden(nCol, nTab, nullptr, &nLastCol)) // hidden columns. Deselect them. - aMarkData.SetMultiMarkArea(ScRange(nCol, 0, nTab, nLastCol, MAXROW, nTab), false); + aMarkData.SetMultiMarkArea(ScRange(nCol, 0, nTab, nLastCol, rDoc.MaxRow(), nTab), false); nCol = nLastCol + 1; } SCROW nRow = 0, nLastRow; - while (nRow <= MAXROW) + while (nRow <= rDoc.MaxRow()) { if (rDoc.RowHidden(nRow, nTab, nullptr, &nLastRow)) // These rows are hidden. Deselect them. - aMarkData.SetMultiMarkArea(ScRange(0, nRow, nTab, MAXCOL, nLastRow, nTab), false); + aMarkData.SetMultiMarkArea(ScRange(0, nRow, nTab, rDoc.MaxCol(), nLastRow, nTab), false); nRow = nLastRow + 1; } @@ -3563,18 +3565,18 @@ uno::Reference<sheet::XSheetCellRanges> ScCellRangesBase::QueryDifferences_Impl( SCTAB nTab = lcl_FirstTab(aRanges); //! for all tables, if markings per table ScRange aCmpRange, aCellRange; if (bColumnDiff) - aCmpRange = ScRange( 0,nCmpPos,nTab, MAXCOL,nCmpPos,nTab ); + aCmpRange = ScRange( 0,nCmpPos,nTab, rDoc.MaxCol(),nCmpPos,nTab ); else - aCmpRange = ScRange( static_cast<SCCOL>(nCmpPos),0,nTab, static_cast<SCCOL>(nCmpPos),MAXROW,nTab ); + aCmpRange = ScRange( static_cast<SCCOL>(nCmpPos),0,nTab, static_cast<SCCOL>(nCmpPos),rDoc.MaxRow(),nTab ); ScCellIterator aCmpIter( &rDoc, aCmpRange ); for (bool bHasCell = aCmpIter.first(); bHasCell; bHasCell = aCmpIter.next()) { SCCOLROW nCellPos = bColumnDiff ? static_cast<SCCOLROW>(aCmpIter.GetPos().Col()) : static_cast<SCCOLROW>(aCmpIter.GetPos().Row()); if (bColumnDiff) aCellRange = ScRange( static_cast<SCCOL>(nCellPos),0,nTab, - static_cast<SCCOL>(nCellPos),MAXROW,nTab ); + static_cast<SCCOL>(nCellPos),rDoc.MaxRow(),nTab ); else - aCellRange = ScRange( 0,nCellPos,nTab, MAXCOL,nCellPos,nTab ); + aCellRange = ScRange( 0,nCellPos,nTab, rDoc.MaxCol(),nCellPos,nTab ); for (i=0; i<nRangeCount; i++) { @@ -3738,7 +3740,7 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryDependen SCTAB nTab = lcl_FirstTab(aNewRanges); //! all tables - ScCellIterator aCellIter( &rDoc, ScRange(0, 0, nTab, MAXCOL, MAXROW, nTab) ); + ScCellIterator aCellIter( &rDoc, ScRange(0, 0, nTab, rDoc.MaxCol(), rDoc.MaxRow(), nTab) ); for (bool bHasCell = aCellIter.first(); bHasCell; bHasCell = aCellIter.next()) { if (aCellIter.getType() != CELLTYPE_FORMULA) @@ -3804,7 +3806,7 @@ uno::Reference<container::XIndexAccess> SAL_CALL ScCellRangesBase::findAll( ScDocument& rDoc = pDocShell->GetDocument(); pSearchItem->SetCommand( SvxSearchCmd::FIND_ALL ); // always only within this object - pSearchItem->SetSelection( !lcl_WholeSheet(aRanges) ); + pSearchItem->SetSelection( !lcl_WholeSheet(&rDoc, aRanges) ); ScMarkData aMark(*GetMarkData()); @@ -3842,7 +3844,7 @@ uno::Reference<uno::XInterface> ScCellRangesBase::Find_Impl( ScDocument& rDoc = pDocShell->GetDocument(); pSearchItem->SetCommand( SvxSearchCmd::FIND ); // only always in this object - pSearchItem->SetSelection( !lcl_WholeSheet(aRanges) ); + pSearchItem->SetSelection( !lcl_WholeSheet(&rDoc, aRanges) ); ScMarkData aMark(*GetMarkData()); @@ -3924,7 +3926,7 @@ sal_Int32 SAL_CALL ScCellRangesBase::replaceAll( const uno::Reference<util::XSea bool bUndo(rDoc.IsUndoEnabled()); pSearchItem->SetCommand( SvxSearchCmd::REPLACE_ALL ); // only always in this object - pSearchItem->SetSelection( !lcl_WholeSheet(aRanges) ); + pSearchItem->SetSelection( !lcl_WholeSheet(&rDoc, aRanges) ); ScMarkData aMark(*GetMarkData()); @@ -5252,7 +5254,8 @@ void SAL_CALL ScCellRangeObj::fillAuto( sheet::FillDirection nFillDirection, default: bError = true; } - if (nCount < 0 || nCount > MAXROW) // overflow + const ScDocument& rDoc = pDocSh->GetDocument(); + if (nCount < 0 || nCount > rDoc.MaxRow()) // overflow bError = true; if (!bError) @@ -6562,7 +6565,7 @@ sal_Int16 SAL_CALL ScCellObj::resetActionLocks() } ScTableSheetObj::ScTableSheetObj( ScDocShell* pDocSh, SCTAB nTab ) : - ScCellRangeObj( pDocSh, ScRange(0,0,nTab, MAXCOL,MAXROW,nTab) ), + ScCellRangeObj( pDocSh, ScRange(0,0,nTab, pDocSh->GetDocument().MaxCol(), pDocSh->GetDocument().MaxRow(),nTab) ), pSheetPropSet(lcl_GetSheetPropertySet()) { } @@ -6573,7 +6576,8 @@ ScTableSheetObj::~ScTableSheetObj() void ScTableSheetObj::InitInsertSheet(ScDocShell* pDocSh, SCTAB nTab) { - InitInsertRange( pDocSh, ScRange(0,0,nTab, MAXCOL,MAXROW,nTab) ); + ScDocument& rDoc = pDocSh->GetDocument(); + InitInsertRange( pDocSh, ScRange(0,0,nTab, rDoc.MaxCol(),rDoc.MaxRow(),nTab) ); } uno::Any SAL_CALL ScTableSheetObj::queryInterface( const uno::Type& rType ) @@ -6731,8 +6735,9 @@ uno::Reference<sheet::XSheetCellCursor> SAL_CALL ScTableSheetObj::createCursor() if ( pDocSh ) { //! single cell or whole table?????? + const ScDocument& rDoc = pDocSh->GetDocument(); SCTAB nTab = GetTab_Impl(); - return new ScCellCursorObj( pDocSh, ScRange( 0,0,nTab, MAXCOL,MAXROW,nTab ) ); + return new ScCellCursorObj( pDocSh, ScRange( 0,0,nTab, rDoc.MaxCol(),rDoc.MaxRow(),nTab ) ); } return nullptr; } @@ -6798,7 +6803,7 @@ uno::Sequence<sheet::TablePageBreakData> SAL_CALL ScTableSheetObj::getColumnPage } SCCOL nCount = 0; - for (SCCOL nCol : rDoc.GetColumnsRange(nTab, 0, MAXCOL)) + for (SCCOL nCol : rDoc.GetColumnsRange(nTab, 0, rDoc.MaxCol())) if (rDoc.HasColBreak(nCol, nTab) != ScBreakType::NONE) ++nCount; @@ -6806,7 +6811,7 @@ uno::Sequence<sheet::TablePageBreakData> SAL_CALL ScTableSheetObj::getColumnPage uno::Sequence<sheet::TablePageBreakData> aSeq(nCount); sheet::TablePageBreakData* pAry = aSeq.getArray(); sal_uInt16 nPos = 0; - for (SCCOL nCol : rDoc.GetColumnsRange(nTab, 0, MAXCOL)) + for (SCCOL nCol : rDoc.GetColumnsRange(nTab, 0, rDoc.MaxCol())) { ScBreakType nBreak = rDoc.HasColBreak(nCol, nTab); if (nBreak != ScBreakType::NONE) @@ -6861,7 +6866,7 @@ void SAL_CALL ScTableSheetObj::removeAllManualPageBreaks() { ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO )); pUndoDoc->InitUndo( &rDoc, nTab, nTab, true, true ); - rDoc.CopyToDocument(0,0,nTab, MAXCOL,MAXROW,nTab, InsertDeleteFlags::NONE, false, *pUndoDoc); + rDoc.CopyToDocument(0,0,nTab, rDoc.MaxCol(),rDoc.MaxRow(),nTab, InsertDeleteFlags::NONE, false, *pUndoDoc); pDocSh->GetUndoManager()->AddUndoAction( std::make_unique<ScUndoRemoveBreaks>( pDocSh, nTab, std::move(pUndoDoc) ) ); } @@ -6871,7 +6876,7 @@ void SAL_CALL ScTableSheetObj::removeAllManualPageBreaks() //? UpdatePageBreakData( sal_True ); pDocSh->SetDocumentModified(); - pDocSh->PostPaint(ScRange(0, 0, nTab, MAXCOL, MAXROW, nTab), PaintPartFlags::Grid); + pDocSh->PostPaint(ScRange(0, 0, nTab, rDoc.MaxCol(), rDoc.MaxRow(), nTab), PaintPartFlags::Grid); } } @@ -8305,7 +8310,7 @@ uno::Sequence<OUString> SAL_CALL ScTableSheetObj::getSupportedServiceNames() UNO3_GETIMPLEMENTATION2_IMPL(ScTableSheetObj, ScCellRangeObj); ScTableColumnObj::ScTableColumnObj( ScDocShell* pDocSh, SCCOL nCol, SCTAB nTab ) : - ScCellRangeObj( pDocSh, ScRange(nCol,0,nTab, nCol,MAXROW,nTab) ), + ScCellRangeObj( pDocSh, ScRange(nCol,0,nTab, nCol, pDocSh->GetDocument().MaxRow(),nTab) ), pColPropSet(lcl_GetColumnPropertySet()) { } @@ -8489,7 +8494,7 @@ const SfxItemPropertyMap& ScTableColumnObj::GetItemPropertyMap() } ScTableRowObj::ScTableRowObj(ScDocShell* pDocSh, SCROW nRow, SCTAB nTab) : - ScCellRangeObj( pDocSh, ScRange(0,nRow,nTab, MAXCOL,nRow,nTab) ), + ScCellRangeObj( pDocSh, ScRange(0,nRow,nTab, pDocSh->GetDocument().MaxCol(),nRow,nTab) ), pRowPropSet(lcl_GetRowPropertySet()) { } diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx index 68bdd4e86ce4..0f404ba5d780 100644 --- a/sc/source/ui/unoobj/chart2uno.cxx +++ b/sc/source/ui/unoobj/chart2uno.cxx @@ -540,10 +540,10 @@ void Chart2Positioner::glueState() ScRefTokenHelper::getDoubleRefDataFromToken(aData, rxToken); SCCOLROW n1 = aData.Ref1.Col(); SCCOLROW n2 = aData.Ref2.Col(); - if (n1 > MAXCOL) - n1 = MAXCOL; - if (n2 > MAXCOL) - n2 = MAXCOL; + if (n1 > mpDoc->MaxCol()) + n1 = mpDoc->MaxCol(); + if (n2 > mpDoc->MaxCol()) + n2 = mpDoc->MaxCol(); if (n1 < mnStartCol) mnStartCol = static_cast<SCCOL>(n1); if (n2 > nEndCol) @@ -551,10 +551,10 @@ void Chart2Positioner::glueState() n1 = aData.Ref1.Row(); n2 = aData.Ref2.Row(); - if (n1 > MAXROW) - n1 = MAXROW; - if (n2 > MAXROW) - n2 = MAXROW; + if (n1 > mpDoc->MaxRow()) + n1 = mpDoc->MaxRow(); + if (n2 > mpDoc->MaxRow()) + n2 = mpDoc->MaxRow(); if (n1 < mnStartRow) mnStartRow = static_cast<SCROW>(n1); @@ -1342,15 +1342,15 @@ public: if(abs((e.Col()-s.Col())*(e.Row()-s.Row())) < SHRINK_RANGE_THRESHOLD) return; - SCCOL nMinCol = MAXCOL, nMaxCol = 0; - SCROW nMinRow = MAXROW, nMaxRow = 0; + SCCOL nMinCol = mpDoc->MaxCol(), nMaxCol = 0; + SCROW nMinRow = mpDoc->MaxRow(), nMaxRow = 0; // Determine the smallest range that encompasses the data ranges of all sheets. SCTAB nTab1 = s.Tab(), nTab2 = e.Tab(); for (SCTAB nTab = nTab1; nTab <= nTab2; ++nTab) { - SCCOL nCol1 = 0, nCol2 = MAXCOL; - SCROW nRow1 = 0, nRow2 = MAXROW; + SCCOL nCol1 = 0, nCol2 = mpDoc->MaxCol(); + SCROW nRow1 = 0, nRow2 = mpDoc->MaxRow(); mpDoc->ShrinkToDataArea(nTab, nCol1, nRow1, nCol2, nRow2); nMinCol = std::min(nMinCol, nCol1); nMinRow = std::min(nMinRow, nRow1); diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx index 9403d73408cc..5cd457885c71 100644 --- a/sc/source/ui/unoobj/confuno.cxx +++ b/sc/source/ui/unoobj/confuno.cxx @@ -417,8 +417,8 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue( // update automatic row heights and repaint SCTAB nTabCount = rDoc.GetTableCount(); for (SCTAB nTab=0; nTab<nTabCount; nTab++) - if ( !pDocShell->AdjustRowHeight( 0, MAXROW, nTab ) ) - pDocShell->PostPaint(ScRange(0, 0, nTab, MAXCOL, MAXROW, nTab), PaintPartFlags::Grid); + if ( !pDocShell->AdjustRowHeight( 0, rDoc.MaxRow(), nTab ) ) + pDocShell->PostPaint(ScRange(0, 0, nTab, rDoc.MaxCol(), rDoc.MaxRow(), nTab), PaintPartFlags::Grid); pDocShell->SetDocumentModified(); } diff --git a/sc/source/ui/unoobj/cursuno.cxx b/sc/source/ui/unoobj/cursuno.cxx index dd9b03c57e83..82cbe769fb34 100644 --- a/sc/source/ui/unoobj/cursuno.cxx +++ b/sc/source/ui/unoobj/cursuno.cxx @@ -162,7 +162,7 @@ void SAL_CALL ScCellCursorObj::expandToEntireColumns() ScRange aNewRange( rRanges[ 0 ] ); aNewRange.aStart.SetRow( 0 ); - aNewRange.aEnd.SetRow( MAXROW ); + aNewRange.aEnd.SetRow( GetDocShell()->GetDocument().MaxRow() ); SetNewRange( aNewRange ); } @@ -175,7 +175,7 @@ void SAL_CALL ScCellCursorObj::expandToEntireRows() ScRange aNewRange( rRanges[ 0 ] ); aNewRange.aStart.SetCol( 0 ); - aNewRange.aEnd.SetCol( MAXCOL ); + aNewRange.aEnd.SetCol( GetDocShell()->GetDocument().MaxCol() ); SetNewRange( aNewRange ); } @@ -196,12 +196,13 @@ void SAL_CALL ScCellCursorObj::collapseToSize( sal_Int32 nColumns, sal_Int32 nRo aNewRange.PutInOrder(); //! really? + const auto & rDoc = GetDocShell()->GetDocument(); long nEndX = aNewRange.aStart.Col() + nColumns - 1; long nEndY = aNewRange.aStart.Row() + nRows - 1; if ( nEndX < 0 ) nEndX = 0; - if ( nEndX > MAXCOL ) nEndX = MAXCOL; + if ( nEndX > rDoc.MaxCol() ) nEndX = rDoc.MaxCol(); if ( nEndY < 0 ) nEndY = 0; - if ( nEndY > MAXROW ) nEndY = MAXROW; + if ( nEndY > rDoc.MaxRow() ) nEndY = rDoc.MaxRow(); //! error/exception or so, if too big/small aNewRange.aEnd.SetCol(static_cast<SCCOL>(nEndX)); @@ -379,10 +380,11 @@ void SAL_CALL ScCellCursorObj::gotoOffset( sal_Int32 nColumnOffset, sal_Int32 nR ScRange aOneRange( rRanges[ 0 ] ); aOneRange.PutInOrder(); + const auto & rDoc = GetDocShell()->GetDocument(); if ( aOneRange.aStart.Col() + nColumnOffset >= 0 && - aOneRange.aEnd.Col() + nColumnOffset <= MAXCOL && + aOneRange.aEnd.Col() + nColumnOffset <= rDoc.MaxCol() && aOneRange.aStart.Row() + nRowOffset >= 0 && - aOneRange.aEnd.Row() + nRowOffset <= MAXROW ) + aOneRange.aEnd.Row() + nRowOffset <= rDoc.MaxRow() ) { ScRange aNew( static_cast<SCCOL>(aOneRange.aStart.Col() + nColumnOffset), static_cast<SCROW>(aOneRange.aStart.Row() + nRowOffset), diff --git a/sc/source/ui/unoobj/defltuno.cxx b/sc/source/ui/unoobj/defltuno.cxx index ca4ac662abff..68d5c962efeb 100644 --- a/sc/source/ui/unoobj/defltuno.cxx +++ b/sc/source/ui/unoobj/defltuno.cxx @@ -99,8 +99,8 @@ void ScDocDefaultsObj::ItemsChanged() if (pDocShell) { //! if not in XML import, adjust row heights - - pDocShell->PostPaint(ScRange(0, 0, 0, MAXCOL, MAXROW, MAXTAB), PaintPartFlags::Grid); + const auto & rDoc = pDocShell->GetDocument(); + pDocShell->PostPaint(ScRange(0, 0, 0, rDoc.MaxCol(), rDoc.MaxRow(), MAXTAB), PaintPartFlags::Grid); } } diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index eb7f2d7281b2..b30cbd61ddbc 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -1337,7 +1337,7 @@ static bool lcl_ParseTarget( const OUString& rTarget, ScRange& rTargetRange, too bRangeValid = true; // named range or database range } else if ( comphelper::string::isdigitAsciiString(rTarget) && - ( nNumeric = rTarget.toInt32() ) > 0 && nNumeric <= MAXROW+1 ) + ( nNumeric = rTarget.toInt32() ) > 0 && nNumeric <= pDoc->MaxRow()+1 ) { // row number is always mapped to cell A(row) on the same sheet rTargetRange = ScAddress( 0, static_cast<SCROW>(nNumeric-1), nSourceTab ); // target row number is 1-based @@ -3883,12 +3883,16 @@ void SAL_CALL ScTableColumnsObj::insertByIndex( sal_Int32 nPosition, sal_Int32 n { SolarMutexGuard aGuard; bool bDone = false; - if ( pDocShell && nCount > 0 && nPosition >= 0 && nStartCol+nPosition <= nEndCol && - nStartCol+nPosition+nCount-1 <= MAXCOL ) + if ( pDocShell ) { - ScRange aRange( static_cast<SCCOL>(nStartCol+nPosition), 0, nTab, - static_cast<SCCOL>(nStartCol+nPosition+nCount-1), MAXROW, nTab ); - bDone = pDocShell->GetDocFunc().InsertCells( aRange, nullptr, INS_INSCOLS_BEFORE, true, true ); + const ScDocument& rDoc = pDocShell->GetDocument(); + if ( nCount > 0 && nPosition >= 0 && nStartCol+nPosition <= nEndCol && + nStartCol+nPosition+nCount-1 <= rDoc.MaxCol() ) + { + ScRange aRange( static_cast<SCCOL>(nStartCol+nPosition), 0, nTab, + static_cast<SCCOL>(nStartCol+nPosition+nCount-1), rDoc.MaxRow(), nTab ); + bDone = pDocShell->GetDocFunc().InsertCells( aRange, nullptr, INS_INSCOLS_BEFORE, true, true ); + } } if (!bDone) throw uno::RuntimeException(); // no other exceptions specified @@ -3899,11 +3903,15 @@ void SAL_CALL ScTableColumnsObj::removeByIndex( sal_Int32 nIndex, sal_Int32 nCou SolarMutexGuard aGuard; bool bDone = false; // the range to be deleted has to lie within the object - if ( pDocShell && nCount > 0 && nIndex >= 0 && nStartCol+nIndex+nCount-1 <= nEndCol ) + if ( pDocShell ) { - ScRange aRange( static_cast<SCCOL>(nStartCol+nIndex), 0, nTab, - static_cast<SCCOL>(nStartCol+nIndex+nCount-1), MAXROW, nTab ); - bDone = pDocShell->GetDocFunc().DeleteCells( aRange, nullptr, DelCellCmd::Cols, true ); + const ScDocument& rDoc = pDocShell->GetDocument(); + if ( nCount > 0 && nIndex >= 0 && nStartCol+nIndex+nCount-1 <= nEndCol ) + { + ScRange aRange( static_cast<SCCOL>(nStartCol+nIndex), 0, nTab, + static_cast<SCCOL>(nStartCol+nIndex+nCount-1), rDoc.MaxRow(), nTab ); + bDone = pDocShell->GetDocFunc().DeleteCells( aRange, nullptr, DelCellCmd::Cols, true ); + } } if (!bDone) throw uno::RuntimeException(); // no other exceptions specified @@ -4122,12 +4130,16 @@ void SAL_CALL ScTableRowsObj::insertByIndex( sal_Int32 nPosition, sal_Int32 nCou { SolarMutexGuard aGuard; bool bDone = false; - if ( pDocShell && nCount > 0 && nPosition >= 0 && nStartRow+nPosition <= nEndRow && - nStartRow+nPosition+nCount-1 <= MAXROW ) + if ( pDocShell ) { - ScRange aRange( 0, static_cast<SCROW>(nStartRow+nPosition), nTab, - MAXCOL, static_cast<SCROW>(nStartRow+nPosition+nCount-1), nTab ); - bDone = pDocShell->GetDocFunc().InsertCells( aRange, nullptr, INS_INSROWS_BEFORE, true, true ); + const ScDocument& rDoc = pDocShell->GetDocument(); + if ( nCount > 0 && nPosition >= 0 && nStartRow+nPosition <= nEndRow && + nStartRow+nPosition+nCount-1 <= rDoc.MaxRow() ) + { + ScRange aRange( 0, static_cast<SCROW>(nStartRow+nPosition), nTab, + rDoc.MaxCol(), static_cast<SCROW>(nStartRow+nPosition+nCount-1), nTab ); + bDone = pDocShell->GetDocFunc().InsertCells( aRange, nullptr, INS_INSROWS_BEFORE, true, true ); + } } if (!bDone) throw uno::RuntimeException(); // no other exceptions specified @@ -4140,8 +4152,9 @@ void SAL_CALL ScTableRowsObj::removeByIndex( sal_Int32 nIndex, sal_Int32 nCount // the range to be deleted has to lie within the object if ( pDocShell && nCount > 0 && nIndex >= 0 && nStartRow+nIndex+nCount-1 <= nEndRow ) { + const ScDocument& rDoc = pDocShell->GetDocument(); ScRange aRange( 0, static_cast<SCROW>(nStartRow+nIndex), nTab, - MAXCOL, static_cast<SCROW>(nStartRow+nIndex+nCount-1), nTab ); + rDoc.MaxCol(), static_cast<SCROW>(nStartRow+nIndex+nCount-1), nTab ); bDone = pDocShell->GetDocFunc().DeleteCells( aRange, nullptr, DelCellCmd::Rows, true ); } if (!bDone) @@ -4286,7 +4299,7 @@ void SAL_CALL ScTableRowsObj::setPropertyValue( // Use ScCellRangeObj to set the property for all cells in the rows // (this means, the "row attribute" must be set before individual cell attributes). - ScRange aRange( 0, nStartRow, nTab, MAXCOL, nEndRow, nTab ); + ScRange aRange( 0, nStartRow, nTab, rDoc.MaxCol(), nEndRow, nTab ); uno::Reference<beans::XPropertySet> xRangeObj = new ScCellRangeObj( pDocShell, aRange ); xRangeObj->setPropertyValue( aPropertyName, aValue ); } @@ -4340,7 +4353,7 @@ uno::Any SAL_CALL ScTableRowsObj::getPropertyValue( const OUString& aPropertyNam // Use ScCellRangeObj to get the property from the cell range // (for completeness only, this is not used by the XML filter). - ScRange aRange( 0, nStartRow, nTab, MAXCOL, nEndRow, nTab ); + ScRange aRange( 0, nStartRow, nTab, rDoc.MaxCol(), nEndRow, nTab ); uno::Reference<beans::XPropertySet> xRangeObj = new ScCellRangeObj( pDocShell, aRange ); aAny = xRangeObj->getPropertyValue( aPropertyName ); } @@ -4469,7 +4482,7 @@ sal_Int32 SAL_CALL ScAnnotationsObj::getCount() if (pDocShell) { const ScDocument& rDoc = pDocShell->GetDocument(); - for (SCCOL nCol : rDoc.GetColumnsRange(nTab, 0, MAXCOL)) + for (SCCOL nCol : rDoc.GetColumnsRange(nTab, 0, rDoc.MaxCol())) nCount += rDoc.GetNoteCount(nTab, nCol); } return nCount; diff --git a/sc/source/ui/unoobj/funcuno.cxx b/sc/source/ui/unoobj/funcuno.cxx index b66c71120355..89680f3e7a28 100644 --- a/sc/source/ui/unoobj/funcuno.cxx +++ b/sc/source/ui/unoobj/funcuno.cxx @@ -148,13 +148,13 @@ static bool lcl_CopyData( ScDocument* pSrcDoc, const ScRange& rSrcRange, ScClipParam aClipParam(rSrcRange, false); pSrcDoc->CopyToClip(aClipParam, pClipDoc.get(), &aSourceMark, false, false); - if ( pClipDoc->HasAttrib( 0,0,nSrcTab, MAXCOL,MAXROW,nSrcTab, + if ( pClipDoc->HasAttrib( 0,0,nSrcTab, pClipDoc->MaxCol(), pClipDoc->MaxRow(),nSrcTab, HasAttrFlags::Merged | HasAttrFlags::Overlapped ) ) { ScPatternAttr aPattern( pSrcDoc->GetPool() ); aPattern.GetItemSet().Put( ScMergeAttr() ); // Defaults aPattern.GetItemSet().Put( ScMergeFlagAttr() ); - pClipDoc->ApplyPatternAreaTab( 0,0, MAXCOL,MAXROW, nSrcTab, aPattern ); + pClipDoc->ApplyPatternAreaTab( 0,0, pClipDoc->MaxCol(), pClipDoc->MaxRow(), nSrcTab, aPattern ); } ScMarkData aDestMark; @@ -411,7 +411,7 @@ public: nMaxColCount = nColCount; const seq* pColArr = rRow.getConstArray(); for (long nCol=0; nCol<nColCount; nCol++) - if ( nCol <= MAXCOL && mrDocRow <= MAXROW ) + if ( nCol <= mpDoc->MaxCol() && mrDocRow <= mpDoc->MaxRow() ) aVisitor.visitElem( nCol, mrDocRow, pColArr[ nCol ] ); else mbOverflow=true; @@ -627,7 +627,7 @@ uno::Any SAL_CALL ScFunctionAccess::callFunction( const OUString& aName, bArgErr = true; } - pDoc->DeleteAreaTab( 0, 0, MAXCOL, MAXROW, 0, InsertDeleteFlags::ALL ); + pDoc->DeleteAreaTab( 0, 0, pDoc->MaxCol(), pDoc->MaxRow(), 0, InsertDeleteFlags::ALL ); pDoc->DeleteAreaTab( 0, 0, 0, 0, nTempSheet, InsertDeleteFlags::ALL ); } diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx index 42e6a836a1b2..5359cb5eb03b 100644 --- a/sc/source/ui/unoobj/nameuno.cxx +++ b/sc/source/ui/unoobj/nameuno.cxx @@ -949,7 +949,7 @@ void ScLabelRangeObj::Modify_Impl( const ScRange* pLabel, const ScRange* pData ) rDoc.GetRowNameRangesRef() = xNewList; rDoc.CompileColRowNameFormula(); - pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PaintPartFlags::Grid ); + pDocShell->PostPaint( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB, PaintPartFlags::Grid ); pDocShell->SetDocumentModified(); //! Undo ?!?! (here and from dialog) @@ -1065,7 +1065,7 @@ void SAL_CALL ScLabelRangesObj::addNew( const table::CellRangeAddress& aLabelAre rDoc.GetRowNameRangesRef() = xNewList; rDoc.CompileColRowNameFormula(); - pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PaintPartFlags::Grid ); + pDocShell->PostPaint( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB, PaintPartFlags::Grid ); pDocShell->SetDocumentModified(); //! Undo ?!?! (here and from dialog) @@ -1094,7 +1094,7 @@ void SAL_CALL ScLabelRangesObj::removeByIndex( sal_Int32 nIndex ) rDoc.GetRowNameRangesRef() = xNewList; rDoc.CompileColRowNameFormula(); - pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PaintPartFlags::Grid ); + pDocShell->PostPaint( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB, PaintPartFlags::Grid ); pDocShell->SetDocumentModified(); bDone = true; diff --git a/sc/source/ui/unoobj/servuno.cxx b/sc/source/ui/unoobj/servuno.cxx index e778247eaa4f..23c7c4b93d27 100644 --- a/sc/source/ui/unoobj/servuno.cxx +++ b/sc/source/ui/unoobj/servuno.cxx @@ -401,8 +401,7 @@ uno::Reference<uno::XInterface> ScServiceProvider::MakeInstance( switch (nType) { case Type::SHEET: - // not inserted yet - DocShell=Null - xRet.set(static_cast<sheet::XSpreadsheet*>(new ScTableSheetObj(nullptr,0))); + xRet.set(static_cast<sheet::XSpreadsheet*>(new ScTableSheetObj(pDocShell,0))); break; case Type::URLFIELD: case Type::PAGEFIELD: diff --git a/sc/source/ui/unoobj/shapeuno.cxx b/sc/source/ui/unoobj/shapeuno.cxx index 8f353b361213..65d649913343 100644 --- a/sc/source/ui/unoobj/shapeuno.cxx +++ b/sc/source/ui/unoobj/shapeuno.cxx @@ -390,8 +390,8 @@ void SAL_CALL ScShapeObj::setPropertyValue(const OUString& aPropertyName, const if (aAddress.StartRow != aAddress.EndRow) //should be a Spreadsheet { - OSL_ENSURE(aAddress.StartRow == 0 && aAddress.EndRow == MAXROW && - aAddress.StartColumn == 0 && aAddress.EndColumn == MAXCOL, "here should be a XSpreadsheet"); + OSL_ENSURE(aAddress.StartRow == 0 && aAddress.EndRow == pDoc->MaxRow() && + aAddress.StartColumn == 0 && aAddress.EndColumn == pDoc->MaxCol(), "here should be a XSpreadsheet"); ScDrawLayer::SetPageAnchored(*pObj); } else diff --git a/sc/source/ui/unoobj/styleuno.cxx b/sc/source/ui/unoobj/styleuno.cxx index a9215095b970..3d61f1a29925 100644 --- a/sc/source/ui/unoobj/styleuno.cxx +++ b/sc/source/ui/unoobj/styleuno.cxx @@ -729,7 +729,7 @@ void SAL_CALL ScStyleFamilyObj::removeByName( const OUString& aName ) double nPPTY = aLogic.Y() / 1000.0; Fraction aZoom(1,1); rDoc.StyleSheetChanged( pStyle, false, pVDev, nPPTX, nPPTY, aZoom, aZoom ); - pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); + pDocShell->PostPaint( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); pDocShell->SetDocumentModified(); pStylePool->Remove( pStyle ); @@ -1035,7 +1035,7 @@ void SAL_CALL ScStyleObj::setParentStyle( const OUString& rParentStyle ) if (!rDoc.IsImportingXML()) { - pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); + pDocShell->PostPaint( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); pDocShell->SetDocumentModified(); } } @@ -1391,7 +1391,7 @@ void SAL_CALL ScStyleObj::setAllPropertiesToDefault() if (!rDoc.IsImportingXML()) { - pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); + pDocShell->PostPaint( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); pDocShell->SetDocumentModified(); } } @@ -1738,7 +1738,7 @@ void ScStyleObj::setPropertyValue_Impl( const OUString& rPropertyName, const Sfx if (!rDoc.IsImportingXML()) { - pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); + pDocShell->PostPaint( 0,0,0, rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB, PaintPartFlags::Grid|PaintPartFlags::Left ); pDocShell->SetDocumentModified(); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits