diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2020-09-16 10:07:56 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-09-16 11:31:31 +0200 |
commit | d30af8c77940b9e7d03a21a595d3eeaf703ddea3 (patch) | |
tree | 34b01c702f4616aa6d71905253463eb1a999cb2b /sc | |
parent | 9ecf3cec2bd83791d777bb95ab614c137bfbb45a (diff) |
Remove more redundant checks
... follow-up for bf3d1b8e8f89bfdb409c70cfea126f36474d4772.
Changes pointer to ScDocument into reference; makes some unique_ptrs
inlined; simplifies construction of ScViewData to remove the need in
additional initialization after internal ctor.
Change-Id: I54055ce8243628c3bf9a3e40c557e0098e5801ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102833
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/inc/viewdata.hxx | 52 | ||||
-rw-r--r-- | sc/source/ui/view/viewdata.cxx | 463 |
2 files changed, 237 insertions, 278 deletions
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx index d923e7341461..f84c0903ba3d 100644 --- a/sc/source/ui/inc/viewdata.hxx +++ b/sc/source/ui/inc/viewdata.hxx @@ -274,14 +274,13 @@ private: double nPPTX, nPPTY; // Scaling factors ::std::vector<std::unique_ptr<ScViewDataTable>> maTabData; - std::unique_ptr<ScMarkData> mpMarkData; + ScMarkData maMarkData; ScViewDataTable* pThisTab; // Data of the displayed sheet ScDocShell* pDocShell; - ScDocument* pDoc; - ScDBFunc* pView; - ScTabViewShell* pViewShell; + ScDocument& mrDoc; + ScTabViewShell* pView; std::unique_ptr<EditView> pEditView[4]; // Belongs to the window - std::unique_ptr<ScViewOptions> pOptions; + ScViewOptions maOptions; EditView* pSpellingView; Size aScenButSize; @@ -345,8 +344,7 @@ private: SAL_DLLPRIVATE void EnsureTabDataSize(size_t nSize); SAL_DLLPRIVATE void UpdateCurrentTab(); - ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh ); - void InitData(ScDocument& rDocument); + ScViewData(ScDocument* pDoc, ScDocShell* pDocSh, ScTabViewShell* pViewSh); public: ScViewData( ScDocShell& rDocSh, ScTabViewShell* pViewSh ); @@ -355,8 +353,8 @@ public: ScDocShell* GetDocShell() const { return pDocShell; } ScDocFunc& GetDocFunc() const; - ScDBFunc* GetView() const { return pView; } - ScTabViewShell* GetViewShell() const { return pViewShell; } + ScDBFunc* GetView() const; + ScTabViewShell* GetViewShell() const { return pView; } SfxObjectShell* GetSfxDocShell() const { return pDocShell; } SfxBindings& GetBindings(); // from ViewShell's ViewFrame SfxDispatcher& GetDispatcher(); // from ViewShell's ViewFrame @@ -379,7 +377,7 @@ public: void WriteUserDataSequence(css::uno::Sequence <css::beans::PropertyValue>& rSettings) const; void ReadUserDataSequence(const css::uno::Sequence <css::beans::PropertyValue>& rSettings); - ScDocument& GetDocument() const; + ScDocument& GetDocument() const { return mrDoc; } bool IsActive() const { return bActive; } void Activate(bool bActivate) { bActive = bActivate; } @@ -395,8 +393,8 @@ public: void SetRefTabNo( SCTAB nNewTab ) { nRefTabNo = nNewTab; } SCTAB GetTabNo() const { return nTabNo; } - SCCOL MaxCol() const { return pDoc->MaxCol(); } - SCROW MaxRow() const { return pDoc->MaxRow(); } + SCCOL MaxCol() const { return mrDoc.MaxCol(); } + SCROW MaxRow() const { return mrDoc.MaxRow(); } ScSplitPos GetActivePart() const { return pThisTab->eWhichActive; } SCCOL GetPosX( ScHSplitPos eWhich, SCTAB nForTab = -1 ) const; SCROW GetPosY( ScVSplitPos eWhich, SCTAB nForTab = -1 ) const; @@ -536,23 +534,23 @@ public: inline void GetMoveCursor( SCCOL& rCurX, SCROW& rCurY ); - const ScViewOptions& GetOptions() const { return *pOptions; } + const ScViewOptions& GetOptions() const { return maOptions; } void SetOptions( const ScViewOptions& rOpt ); - bool IsGridMode () const { return pOptions->GetOption( VOPT_GRID ); } - void SetGridMode ( bool bNewMode ) { pOptions->SetOption( VOPT_GRID, bNewMode ); } - bool IsSyntaxMode () const { return pOptions->GetOption( VOPT_SYNTAX ); } - void SetSyntaxMode ( bool bNewMode ) { pOptions->SetOption( VOPT_SYNTAX, bNewMode ); } - bool IsHeaderMode () const { return pOptions->GetOption( VOPT_HEADER ); } - void SetHeaderMode ( bool bNewMode ) { pOptions->SetOption( VOPT_HEADER, bNewMode ); } - bool IsTabMode () const { return pOptions->GetOption( VOPT_TABCONTROLS ); } - void SetTabMode ( bool bNewMode ) { pOptions->SetOption( VOPT_TABCONTROLS, bNewMode ); } - bool IsVScrollMode () const { return pOptions->GetOption( VOPT_VSCROLL ); } - void SetVScrollMode ( bool bNewMode ) { pOptions->SetOption( VOPT_VSCROLL, bNewMode ); } - bool IsHScrollMode () const { return pOptions->GetOption( VOPT_HSCROLL ); } - void SetHScrollMode ( bool bNewMode ) { pOptions->SetOption( VOPT_HSCROLL, bNewMode ); } - bool IsOutlineMode () const { return pOptions->GetOption( VOPT_OUTLINER ); } - void SetOutlineMode ( bool bNewMode ) { pOptions->SetOption( VOPT_OUTLINER, bNewMode ); } + bool IsGridMode () const { return maOptions.GetOption(VOPT_GRID); } + void SetGridMode ( bool bNewMode ) { maOptions.SetOption(VOPT_GRID, bNewMode); } + bool IsSyntaxMode () const { return maOptions.GetOption(VOPT_SYNTAX); } + void SetSyntaxMode ( bool bNewMode ) { maOptions.SetOption(VOPT_SYNTAX, bNewMode); } + bool IsHeaderMode () const { return maOptions.GetOption(VOPT_HEADER); } + void SetHeaderMode ( bool bNewMode ) { maOptions.SetOption(VOPT_HEADER, bNewMode); } + bool IsTabMode () const { return maOptions.GetOption(VOPT_TABCONTROLS); } + void SetTabMode ( bool bNewMode ) { maOptions.SetOption(VOPT_TABCONTROLS, bNewMode); } + bool IsVScrollMode () const { return maOptions.GetOption(VOPT_VSCROLL); } + void SetVScrollMode ( bool bNewMode ) { maOptions.SetOption(VOPT_VSCROLL, bNewMode); } + bool IsHScrollMode () const { return maOptions.GetOption(VOPT_HSCROLL); } + void SetHScrollMode ( bool bNewMode ) { maOptions.SetOption(VOPT_HSCROLL, bNewMode); } + bool IsOutlineMode () const { return maOptions.GetOption(VOPT_OUTLINER); } + void SetOutlineMode ( bool bNewMode ) { maOptions.SetOption(VOPT_OUTLINER, bNewMode); } /// Force page size for PgUp/PgDown to overwrite the computation based on m_aVisArea. void ForcePageUpDownOffset(long nTwips) { m_nLOKPageUpDownOffset = nTwips; } diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 2a220afaf693..d95a5cf12d9d 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -744,28 +744,37 @@ ScSplitPos ScViewDataTable::SanitizeWhichActive() const const ScSheetLimits gaNoShellSheetLimits(MAXCOL, MAXROW); ScViewData::ScViewData(ScDocShell& rDocSh, ScTabViewShell* pViewSh) - : ScViewData(&rDocSh, pViewSh) + : ScViewData(nullptr, &rDocSh, pViewSh) { } ScViewData::ScViewData(ScDocument& rDoc) - : ScViewData(nullptr, nullptr) + : ScViewData(&rDoc, nullptr, nullptr) { - InitData(rDoc); } -ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh ) : +static ScViewOptions DefaultOptions() +{ + ScViewOptions aOptions; + aOptions.SetOption(VOPT_GRID, true); + aOptions.SetOption(VOPT_SYNTAX, false); + aOptions.SetOption(VOPT_HEADER, true); + aOptions.SetOption(VOPT_TABCONTROLS, true); + aOptions.SetOption(VOPT_VSCROLL, true); + aOptions.SetOption(VOPT_HSCROLL, true); + aOptions.SetOption(VOPT_OUTLINER, true); + return aOptions; +} + +// Either pDoc or pDocSh must be valid +ScViewData::ScViewData(ScDocument* pDoc, ScDocShell* pDocSh, ScTabViewShell* pViewSh) : nPPTX(0.0), nPPTY(0.0), - mpMarkData(pDocSh? - new ScMarkData(pDocSh->GetDocument().GetSheetLimits()) : - new ScMarkData(gaNoShellSheetLimits) - ), + maMarkData (pDocSh ? pDocSh->GetDocument().GetSheetLimits() : gaNoShellSheetLimits), pDocShell ( pDocSh ), - pDoc ( nullptr ), + mrDoc (pDoc ? *pDoc : pDocSh->GetDocument()), pView ( pViewSh ), - pViewShell ( pViewSh ), - pOptions ( new ScViewOptions ), + maOptions (pDocSh ? pDocSh->GetDocument().GetViewOptions() : DefaultOptions()), pSpellingView ( nullptr ), aLogicMode ( MapUnit::Map100thMM ), eDefZoomType( SvxZoomType::PERCENT ), @@ -799,15 +808,8 @@ ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh ) : bGrowing (false), m_nLOKPageUpDownOffset( 0 ) { - mpMarkData->SelectOneTable(0); // Sync with nTabNo - - SetGridMode ( true ); - SetSyntaxMode ( false ); - SetHeaderMode ( true ); - SetTabMode ( true ); - SetVScrollMode ( true ); - SetHScrollMode ( true ); - SetOutlineMode ( true ); + assert(bool(pDoc) != bool(pDocSh)); // either one or the other, not both + maMarkData.SelectOneTable(0); // Sync with nTabNo aScrSize = Size( long( STD_COL_WIDTH * PIXEL_PER_TWIPS * OLE_STD_CELLS_X ), static_cast<long>( ScGlobal::nStdRowHeight * PIXEL_PER_TWIPS * OLE_STD_CELLS_Y ) ); @@ -818,16 +820,10 @@ ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh ) : nEditEndRow = nEditRow = 0; nTabStartCol = SC_TABSTART_NONE; - if (pDocShell) - { - pDoc = &pDocShell->GetDocument(); - *pOptions = pDoc->GetViewOptions(); - } - // don't show hidden tables - if (pDoc && !pDoc->IsVisible(nTabNo)) + if (!mrDoc.IsVisible(nTabNo)) { - while ( !pDoc->IsVisible(nTabNo) && pDoc->HasTable(nTabNo+1) ) + while (!mrDoc.IsVisible(nTabNo) && mrDoc.HasTable(nTabNo + 1)) { ++nTabNo; maTabData.emplace_back(nullptr); @@ -836,46 +832,25 @@ ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh ) : pThisTab = maTabData[nTabNo].get(); } - if (pDoc) - { - SCTAB nTableCount = pDoc->GetTableCount(); - EnsureTabDataSize(nTableCount); + SCTAB nTableCount = mrDoc.GetTableCount(); + EnsureTabDataSize(nTableCount); - for ( auto & xTabData : maTabData ) - { - if (xTabData) - xTabData->InitData( *pDoc ); - } - } - - CalcPPT(); -} - -void ScViewData::InitData(ScDocument& rDocument) -{ - pDoc = &rDocument; - *pOptions = pDoc->GetViewOptions(); - for ( auto & xTabData : maTabData ) + for (auto& xTabData : maTabData) { if (xTabData) - xTabData->InitData( rDocument ); + xTabData->InitData(mrDoc); } -} -ScDocument& ScViewData::GetDocument() const -{ - if (pDoc) - return *pDoc; - assert(pDocShell && "we must have one of pDoc and pDocShell"); - return pDocShell->GetDocument(); + CalcPPT(); } ScViewData::~ScViewData() COVERITY_NOEXCEPT_FALSE { KillEditView(); - pOptions.reset(); } +ScDBFunc* ScViewData::GetView() const { return pView; } + void ScViewData::UpdateCurrentTab() { assert(0 <= nTabNo && o3tl::make_unsigned(nTabNo) < maTabData.size()); @@ -886,7 +861,7 @@ void ScViewData::UpdateCurrentTab() pThisTab = maTabData[--nTabNo].get(); else { - maTabData[0].reset(new ScViewDataTable(pDoc)); + maTabData[0].reset(new ScViewDataTable(&mrDoc)); pThisTab = maTabData[0].get(); } } @@ -901,7 +876,7 @@ void ScViewData::InsertTab( SCTAB nTab ) CreateTabData( nTab ); UpdateCurrentTab(); - mpMarkData->InsertTab( nTab ); + maMarkData.InsertTab(nTab); collectUIInformation({{}}, "InsertTab"); } @@ -920,7 +895,7 @@ void ScViewData::InsertTabs( SCTAB nTab, SCTAB nNewSheets ) for (SCTAB i = nTab; i < nTab + nNewSheets; ++i) { CreateTabData( i ); - mpMarkData->InsertTab( i ); + maMarkData.InsertTab(i); } UpdateCurrentTab(); } @@ -936,14 +911,14 @@ void ScViewData::DeleteTab( SCTAB nTab ) nTabNo = maTabData.size() - 1; } UpdateCurrentTab(); - mpMarkData->DeleteTab( nTab ); + maMarkData.DeleteTab(nTab); } void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets ) { for (SCTAB i = 0; i < nSheets; ++i) { - mpMarkData->DeleteTab( nTab + i ); + maMarkData.DeleteTab(nTab + i); } maTabData.erase(maTabData.begin() + nTab, maTabData.begin()+ nTab+nSheets); if (o3tl::make_unsigned(nTabNo) >= maTabData.size()) @@ -957,7 +932,7 @@ void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets ) void ScViewData::CopyTab( SCTAB nSrcTab, SCTAB nDestTab ) { if (nDestTab==SC_TAB_APPEND) - nDestTab = pDoc->GetTableCount() - 1; // something had to have been copied + nDestTab = mrDoc.GetTableCount() - 1; // something had to have been copied if (nDestTab > MAXTAB) { @@ -976,13 +951,13 @@ void ScViewData::CopyTab( SCTAB nSrcTab, SCTAB nDestTab ) maTabData.insert(maTabData.begin() + nDestTab, nullptr); UpdateCurrentTab(); - mpMarkData->InsertTab( nDestTab ); + maMarkData.InsertTab(nDestTab); } void ScViewData::MoveTab( SCTAB nSrcTab, SCTAB nDestTab ) { if (nDestTab==SC_TAB_APPEND) - nDestTab = pDoc->GetTableCount() - 1; + nDestTab = mrDoc.GetTableCount() - 1; std::unique_ptr<ScViewDataTable> pTab; if (nSrcTab < static_cast<SCTAB>(maTabData.size())) { @@ -999,8 +974,8 @@ void ScViewData::MoveTab( SCTAB nSrcTab, SCTAB nDestTab ) } UpdateCurrentTab(); - mpMarkData->DeleteTab( nSrcTab ); - mpMarkData->InsertTab( nDestTab ); // adapted if needed + maMarkData.DeleteTab(nSrcTab); + maMarkData.InsertTab(nDestTab); // adapted if needed } void ScViewData::CreateTabData( std::vector< SCTAB >& rvTabs ) @@ -1040,7 +1015,7 @@ void ScViewData::SetZoomType( SvxZoomType eNew, bool bAll ) std::vector< SCTAB > vTabs; // Empty for all tabs if ( !bAll ) // get selected tabs { - ScMarkData::iterator itr = mpMarkData->begin(), itrEnd = mpMarkData->end(); + ScMarkData::iterator itr = maMarkData.begin(), itrEnd = maMarkData.end(); vTabs.insert(vTabs.begin(), itr, itrEnd); } SetZoomType( eNew, vTabs ); @@ -1114,7 +1089,7 @@ void ScViewData::SetZoom( const Fraction& rNewX, const Fraction& rNewY, bool bAl std::vector< SCTAB > vTabs; if ( !bAll ) // get selected tabs { - ScMarkData::iterator itr = mpMarkData->begin(), itrEnd = mpMarkData->end(); + ScMarkData::iterator itr = maMarkData.begin(), itrEnd = maMarkData.end(); vTabs.insert(vTabs.begin(), itr, itrEnd); } SetZoom( rNewX, rNewY, vTabs ); @@ -1182,7 +1157,7 @@ ScMarkType ScViewData::GetSimpleArea( SCCOL& rStartCol, SCROW& rStartRow, SCTAB& // handling itself) ScRange aRange; - ScMarkData aNewMark(*mpMarkData); // use a local copy for MarkToSimple + ScMarkData aNewMark(maMarkData); // use a local copy for MarkToSimple ScMarkType eMarkType = GetSimpleArea( aRange, aNewMark); aRange.GetVars( rStartCol, rStartRow, rStartTab, rEndCol, rEndRow, rEndTab); return eMarkType; @@ -1192,7 +1167,7 @@ ScMarkType ScViewData::GetSimpleArea( ScRange& rRange ) const { // parameter bMergeMark is no longer needed, see above - ScMarkData aNewMark(*mpMarkData); // use a local copy for MarkToSimple + ScMarkData aNewMark(maMarkData); // use a local copy for MarkToSimple return GetSimpleArea( rRange, aNewMark); } @@ -1200,7 +1175,7 @@ void ScViewData::GetMultiArea( ScRangeListRef& rRange ) const { // parameter bMergeMark is no longer needed, see GetSimpleArea - ScMarkData aNewMark(*mpMarkData); // use a local copy for MarkToSimple + ScMarkData aNewMark(maMarkData); // use a local copy for MarkToSimple bool bMulti = aNewMark.IsMultiMarked(); if (bMulti) @@ -1230,7 +1205,7 @@ bool ScViewData::SimpleColMarked() SCROW nEndRow; SCTAB nEndTab; if (GetSimpleArea(nStartCol,nStartRow,nStartTab,nEndCol,nEndRow,nEndTab) == SC_MARK_SIMPLE) - if (nStartRow==0 && nEndRow==pDoc->MaxRow()) + if (nStartRow == 0 && nEndRow == mrDoc.MaxRow()) return true; return false; @@ -1245,7 +1220,7 @@ bool ScViewData::SimpleRowMarked() SCROW nEndRow; SCTAB nEndTab; if (GetSimpleArea(nStartCol,nStartRow,nStartTab,nEndCol,nEndRow,nEndTab) == SC_MARK_SIMPLE) - if (nStartCol==0 && nEndCol==pDoc->MaxCol()) + if (nStartCol == 0 && nEndCol == mrDoc.MaxCol()) return true; return false; @@ -1406,14 +1381,11 @@ void ScViewData::SetCurYForTab( SCCOL nNewCurY, SCTAB nTabIndex ) void ScViewData::SetMaxTiledCol( SCCOL nNewMaxCol ) { - if (nNewMaxCol < 0) - nNewMaxCol = 0; - if (nNewMaxCol > pDoc->MaxCol()) - nNewMaxCol = pDoc->MaxCol(); + nNewMaxCol = std::clamp(nNewMaxCol, SCCOL(0), mrDoc.MaxCol()); const SCTAB nTab = GetTabNo(); auto GetColWidthPx = [this, nTab](SCCOL nCol) { - const sal_uInt16 nSize = this->pDoc->GetColWidth(nCol, nTab); + const sal_uInt16 nSize = this->mrDoc.GetColWidth(nCol, nTab); const long nSizePx = ScViewData::ToPixel(nSize, nPPTX); return nSizePx; }; @@ -1438,7 +1410,7 @@ void ScViewData::SetMaxTiledRow( SCROW nNewMaxRow ) const SCTAB nTab = GetTabNo(); auto GetRowHeightPx = [this, nTab](SCROW nRow) { - const sal_uInt16 nSize = this->pDoc->GetRowHeight(nRow, nTab); + const sal_uInt16 nSize = this->mrDoc.GetRowHeight(nRow, nTab); const long nSizePx = ScViewData::ToPixel(nSize, nPPTY); return nSizePx; }; @@ -1460,7 +1432,7 @@ tools::Rectangle ScViewData::GetEditArea( ScSplitPos eWhich, SCCOL nPosX, SCROW { Point aCellTopLeft = bInPrintTwips ? GetPrintTwipsPos(nPosX, nPosY) : GetScrPos(nPosX, nPosY, eWhich, true); - return ScEditUtil( pDoc, nPosX, nPosY, nTabNo, aCellTopLeft, + return ScEditUtil(&mrDoc, nPosX, nPosY, nTabNo, aCellTopLeft, pWin, nPPTX, nPPTY, GetZoomX(), GetZoomY(), bInPrintTwips ). GetEditArea( pPattern, bForceToTop ); } @@ -1469,7 +1441,7 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich, ScEditEngineDefaulter* pNewEngine, vcl::Window* pWin, SCCOL nNewX, SCROW nNewY ) { - bool bLayoutRTL = pDoc->IsLayoutRTL( nTabNo ); + bool bLayoutRTL = mrDoc.IsLayoutRTL(nTabNo); ScHSplitPos eHWhich = WhichH(eWhich); ScVSplitPos eVWhich = WhichV(eWhich); bool bLOKActive = comphelper::LibreOfficeKit::isActive(); @@ -1505,7 +1477,7 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich, { // We can broadcast the view-cursor message in print-twips for all views. pEditView[eWhich]->SetBroadcastLOKViewCursor(bLOKPrintTwips); - pEditView[eWhich]->RegisterViewShell(pViewShell); + pEditView[eWhich]->RegisterViewShell(pView); } } @@ -1536,7 +1508,7 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich, bEditActive[eWhich] = true; - const ScPatternAttr* pPattern = pDoc->GetPattern( nNewX, nNewY, nTabNo ); + const ScPatternAttr* pPattern = mrDoc.GetPattern(nNewX, nNewY, nTabNo); SvxCellHorJustify eJust = pPattern->GetItem( ATTR_HOR_JUSTIFY ).GetValue(); bool bBreak = ( eJust == SvxCellHorJustify::Block ) || @@ -1544,14 +1516,14 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich, bool bAsianVertical = pNewEngine->IsVertical(); // set by InputHandler - tools::Rectangle aPixRect = ScEditUtil( pDoc, nNewX,nNewY,nTabNo, GetScrPos(nNewX,nNewY,eWhich), + tools::Rectangle aPixRect = ScEditUtil(&mrDoc, nNewX, nNewY, nTabNo, GetScrPos(nNewX, nNewY, eWhich), pWin, nPPTX,nPPTY,GetZoomX(),GetZoomY() ). GetEditArea( pPattern, true ); tools::Rectangle aPTwipsRect; if (bLOKPrintTwips) { - aPTwipsRect = ScEditUtil(pDoc, nNewX, nNewY, nTabNo, GetPrintTwipsPos(nNewX, nNewY), + aPTwipsRect = ScEditUtil(&mrDoc, nNewX, nNewY, nTabNo, GetPrintTwipsPos(nNewX, nNewY), pWin, nPPTX, nPPTY, GetZoomX(), GetZoomY(), true /* bInPrintTwips */). GetEditArea(pPattern, true); } @@ -1680,7 +1652,7 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich, // (and same line breaks) as for output. Fraction aFract(1,1); - tools::Rectangle aUtilRect = ScEditUtil( pDoc,nNewX,nNewY,nTabNo, Point(0,0), pWin, + tools::Rectangle aUtilRect = ScEditUtil(&mrDoc, nNewX, nNewY, nTabNo, Point(0, 0), pWin, HMM_PER_TWIPS, HMM_PER_TWIPS, aFract, aFract ).GetEditArea( pPattern, false ); aPaperSize.setWidth( aUtilRect.GetWidth() ); if (bLOKPrintTwips) @@ -2131,7 +2103,7 @@ void ScViewData::EditGrowY( bool bInitial ) // to be clipped before extending to following rows, to avoid obscuring cells for // reference input (next row is likely to be useful in formulas). long nAllowedExtra = SC_GROWY_SMALL_EXTRA; - if ( nEditEndRow == nEditRow && !( pDoc->GetRowFlags( nEditRow, nTabNo ) & CRFlags::ManualSize ) && + if (nEditEndRow == nEditRow && !(mrDoc.GetRowFlags(nEditRow, nTabNo) & CRFlags::ManualSize) && pEngine->GetParagraphCount() <= 1 ) { // If the (only) paragraph starts with a '=', it's a formula. @@ -2238,7 +2210,7 @@ void ScViewData::CreateTabData( SCTAB nNewTab ) if (!maTabData[nNewTab]) { - maTabData[nNewTab].reset( new ScViewDataTable(pDoc) ); + maTabData[nNewTab].reset(new ScViewDataTable(&mrDoc)); maTabData[nNewTab]->eZoomType = eDefZoomType; maTabData[nNewTab]->aZoomX = aDefZoomX; @@ -2250,7 +2222,7 @@ void ScViewData::CreateTabData( SCTAB nNewTab ) void ScViewData::CreateSelectedTabData() { - for (const auto& rTab : *mpMarkData) + for (const auto& rTab : maMarkData) CreateTabData(rTab); } @@ -2384,11 +2356,11 @@ Point ScViewData::GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich, { for (SCCOL nX = nStartPosX; nX < nWhereX && (bAllowNeg || bIsTiledRendering || nScrPosX <= aScrSize.Width()); nX++) { - if ( nX > pDoc->MaxCol() ) + if (nX > mrDoc.MaxCol()) nScrPosX = 0x7FFFFFFF; else { - nTSize = pDoc->GetColWidth( nX, nForTab ); + nTSize = mrDoc.GetColWidth(nX, nForTab); if (nTSize) { long nSizeXPix = ToPixel( nTSize, nPPTX ); @@ -2402,7 +2374,7 @@ Point ScViewData::GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich, for (SCCOL nX = nStartPosX; nX > nWhereX;) { --nX; - nTSize = pDoc->GetColWidth( nX, nForTab ); + nTSize = mrDoc.GetColWidth(nX, nForTab); if (nTSize) { long nSizeXPix = ToPixel( nTSize, nPPTX ); @@ -2432,17 +2404,17 @@ Point ScViewData::GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich, { if (bAllowNeg || bIsTiledRendering || nScrPosY <= aScrSize.Height()) { - if ( nWhereY-1 > pDoc->MaxRow() ) + if (nWhereY - 1 > mrDoc.MaxRow()) nScrPosY = 0x7FFFFFFF; else if (bAllowNeg || bIsTiledRendering) { - sal_uLong nSizeYPix = pDoc->GetScaledRowHeight( nStartPosY, nWhereY-1, nForTab, nPPTY ); + sal_uLong nSizeYPix = mrDoc.GetScaledRowHeight(nStartPosY, nWhereY - 1, nForTab, nPPTY); nScrPosY += nSizeYPix; } else { sal_uLong nMaxHeight = aScrSize.getHeight() - nScrPosY; - sal_uLong nSizeYPix = pDoc->GetScaledRowHeight( nStartPosY, nWhereY-1, nForTab, nPPTY, &nMaxHeight ); + sal_uLong nSizeYPix = mrDoc.GetScaledRowHeight(nStartPosY, nWhereY - 1, nForTab, nPPTY, &nMaxHeight); nScrPosY += nSizeYPix; } } @@ -2452,7 +2424,7 @@ Point ScViewData::GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich, for (SCROW nY = nStartPosY; nY > nWhereY;) { --nY; - nTSize = pDoc->GetRowHeight( nY, nForTab ); + nTSize = mrDoc.GetRowHeight(nY, nForTab); if (nTSize) { long nSizeYPix = ToPixel( nTSize, nPPTY ); @@ -2462,7 +2434,7 @@ Point ScViewData::GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich, } } - if ( pDoc->IsLayoutRTL( nForTab ) ) + if (mrDoc.IsLayoutRTL(nForTab)) { // mirror horizontal position nScrPosX = aScrSize.Width() - 1 - nScrPosX; @@ -2475,9 +2447,9 @@ Point ScViewData::GetPrintTwipsPos(SCCOL nCol, SCROW nRow) const { // hidden ones are given 0 sizes by these by default. // TODO: rewrite this to loop over spans (matters for jumbosheets). - long nPosX = nCol ? pDoc->GetColWidth(0, nCol - 1, nTabNo) : 0; + long nPosX = nCol ? mrDoc.GetColWidth(0, nCol - 1, nTabNo) : 0; // This is now fast as it loops over spans. - long nPosY = nRow ? pDoc->GetRowHeight(0, nRow - 1, nTabNo) : 0; + long nPosY = nRow ? mrDoc.GetRowHeight(0, nRow - 1, nTabNo) : 0; // TODO: adjust for RTL layout case. return Point(nPosX, nPosY); @@ -2569,11 +2541,11 @@ SCCOL ScViewData::CellsAtX( SCCOL nPosX, SCCOL nDir, ScHSplitPos eWhichX, sal_uI for ( ; nScrPosX<=nScrSizeX && !bOut; nX = sal::static_int_cast<SCCOL>(nX + nDir) ) { SCCOL nColNo = nX; - if ( nColNo < 0 || nColNo > pDoc->MaxCol() ) + if (nColNo < 0 || nColNo > mrDoc.MaxCol()) bOut = true; else { - sal_uInt16 nTSize = pDoc->GetColWidth( nColNo, nTabNo ); + sal_uInt16 nTSize = mrDoc.GetColWidth(nColNo, nTabNo); if (nTSize) { long nSizeXPix = ToPixel( nTSize, nPPTX ); @@ -2607,9 +2579,9 @@ SCROW ScViewData::CellsAtY( SCROW nPosY, SCROW nDir, ScVSplitPos eWhichY, sal_uI // forward nY = nPosY; long nScrPosY = 0; - AddPixelsWhile( nScrPosY, nScrSizeY, nY, pDoc->MaxRow(), nPPTY, pDoc, nTabNo); + AddPixelsWhile(nScrPosY, nScrSizeY, nY, mrDoc.MaxRow(), nPPTY, &mrDoc, nTabNo); // Original loop ended on last evaluated +1 or if that was MaxRow even on MaxRow+2. - nY += (nY == pDoc->MaxRow() ? 2 : 1); + nY += (nY == mrDoc.MaxRow() ? 2 : 1); nY -= nPosY; } else @@ -2617,7 +2589,7 @@ SCROW ScViewData::CellsAtY( SCROW nPosY, SCROW nDir, ScVSplitPos eWhichY, sal_uI // backward nY = nPosY-1; long nScrPosY = 0; - AddPixelsWhileBackward( nScrPosY, nScrSizeY, nY, 0, nPPTY, pDoc, nTabNo); + AddPixelsWhileBackward(nScrPosY, nScrSizeY, nY, 0, nPPTY, &mrDoc, nTabNo); // Original loop ended on last evaluated -1 or if that was 0 even on -2. nY -= (nY == 0 ? 2 : 1); nY = (nPosY-1)-nY; @@ -2649,26 +2621,26 @@ SCROW ScViewData::PrevCellsY( ScVSplitPos eWhichY ) const bool ScViewData::GetMergeSizePixel( SCCOL nX, SCROW nY, long& rSizeXPix, long& rSizeYPix ) const { - const ScMergeAttr* pMerge = pDoc->GetAttr( nX,nY,nTabNo, ATTR_MERGE ); + const ScMergeAttr* pMerge = mrDoc.GetAttr(nX, nY, nTabNo, ATTR_MERGE); if ( pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1 ) { long nOutWidth = 0; long nOutHeight = 0; SCCOL nCountX = pMerge->GetColMerge(); for (SCCOL i=0; i<nCountX; i++) - nOutWidth += ToPixel( pDoc->GetColWidth(nX+i,nTabNo), nPPTX ); + nOutWidth += ToPixel(mrDoc.GetColWidth(nX + i, nTabNo), nPPTX); SCROW nCountY = pMerge->GetRowMerge(); for (SCROW nRow = nY; nRow <= nY+nCountY-1; ++nRow) { SCROW nLastRow = nRow; - if (pDoc->RowHidden(nRow, nTabNo, nullptr, &nLastRow)) + if (mrDoc.RowHidden(nRow, nTabNo, nullptr, &nLastRow)) { nRow = nLastRow; continue; } - sal_uInt16 nHeight = pDoc->GetRowHeight(nRow, nTabNo); + sal_uInt16 nHeight = mrDoc.GetRowHeight(nRow, nTabNo); nOutHeight += ToPixel(nHeight, nPPTY); } @@ -2678,24 +2650,24 @@ bool ScViewData::GetMergeSizePixel( SCCOL nX, SCROW nY, long& rSizeXPix, long& r } else { - rSizeXPix = ToPixel( pDoc->GetColWidth( nX, nTabNo ), nPPTX ); - rSizeYPix = ToPixel( pDoc->GetRowHeight( nY, nTabNo ), nPPTY ); + rSizeXPix = ToPixel(mrDoc.GetColWidth(nX, nTabNo), nPPTX); + rSizeYPix = ToPixel(mrDoc.GetRowHeight(nY, nTabNo), nPPTY); return false; } } bool ScViewData::GetMergeSizePrintTwips(SCCOL nX, SCROW nY, long& rSizeXTwips, long& rSizeYTwips) const { - const ScMergeAttr* pMerge = pDoc->GetAttr(nX, nY, nTabNo, ATTR_MERGE); + const ScMergeAttr* pMerge = mrDoc.GetAttr(nX, nY, nTabNo, ATTR_MERGE); SCCOL nCountX = pMerge->GetColMerge(); if (!nCountX) nCountX = 1; - rSizeXTwips = pDoc->GetColWidth(nX, nX + nCountX - 1, nTabNo); + rSizeXTwips = mrDoc.GetColWidth(nX, nX + nCountX - 1, nTabNo); SCROW nCountY = pMerge->GetRowMerge(); if (!nCountY) nCountY = 1; - rSizeYTwips = pDoc->GetRowHeight(nY, nY + nCountY - 1, nTabNo); + rSizeYTwips = mrDoc.GetRowHeight(nY, nY + nCountY - 1, nTabNo); return (nCountX > 1 || nCountY > 1); } @@ -2719,7 +2691,7 @@ void ScViewData::GetPosFromPixel( long nClickX, long nClickY, ScSplitPos eWhich, ScHSplitPos eHWhich = WhichH(eWhich); ScVSplitPos eVWhich = WhichV(eWhich); - if ( pDoc->IsLayoutRTL( nForTab ) ) + if (mrDoc.IsLayoutRTL(nForTab)) { // mirror horizontal position if (pView) @@ -2736,9 +2708,9 @@ void ScViewData::GetPosFromPixel( long nClickX, long nClickY, ScSplitPos eWhich, if (nClickX > 0) { - while ( rPosX<=pDoc->MaxCol() && nClickX >= nScrX ) + while (rPosX <= mrDoc.MaxCol() && nClickX >= nScrX) { - nScrX += ToPixel( pDoc->GetColWidth( rPosX, nForTab ), nPPTX ); + nScrX += ToPixel(mrDoc.GetColWidth(rPosX, nForTab), nPPTX); ++rPosX; } --rPosX; @@ -2748,19 +2720,19 @@ void ScViewData::GetPosFromPixel( long nClickX, long nClickY, ScSplitPos eWhich, while ( rPosX>0 && nClickX < nScrX ) { --rPosX; - nScrX -= ToPixel( pDoc->GetColWidth( rPosX, nForTab ), nPPTX ); + nScrX -= ToPixel(mrDoc.GetColWidth(rPosX, nForTab), nPPTX); } } if (nClickY > 0) - AddPixelsWhile( nScrY, nClickY, rPosY, pDoc->MaxRow(), nPPTY, pDoc, nForTab ); + AddPixelsWhile(nScrY, nClickY, rPosY, mrDoc.MaxRow(), nPPTY, &mrDoc, nForTab); else { /* TODO: could need some "SubPixelsWhileBackward" method */ while ( rPosY>0 && nClickY < nScrY ) { --rPosY; - nScrY -= ToPixel( pDoc->GetRowHeight( rPosY, nForTab ), nPPTY ); + nScrY -= ToPixel(mrDoc.GetRowHeight(rPosY, nForTab), nPPTY); } } @@ -2780,10 +2752,8 @@ void ScViewData::GetPosFromPixel( long nClickX, long nClickY, ScSplitPos eWhich, ++rPosY; } - if (rPosX<0) rPosX=0; - if (rPosX>pDoc->MaxCol()) rPosX=pDoc->MaxCol(); - if (rPosY<0) rPosY=0; - if (rPosY>pDoc->MaxRow()) rPosY=pDoc->MaxRow(); + rPosX = std::clamp(rPosX, SCCOL(0), mrDoc.MaxCol()); + rPosY = std::clamp(rPosY, SCROW(0), mrDoc.MaxRow()); if (!(bTestMerge && bForCurTab)) return; @@ -2791,32 +2761,33 @@ void ScViewData::GetPosFromPixel( long nClickX, long nClickY, ScSplitPos eWhich, // public method to adapt position SCCOL nOrigX = rPosX; SCROW nOrigY = rPosY; - pDoc->SkipOverlapped(rPosX, rPosY, nTabNo); + mrDoc.SkipOverlapped(rPosX, rPosY, nTabNo); bool bHOver = (nOrigX != rPosX); bool bVOver = (nOrigY != rPosY); if ( !(bRepair && ( bHOver || bVOver )) ) return; - const ScMergeAttr* pMerge = pDoc->GetAttr( rPosX, rPosY, nTabNo, ATTR_MERGE ); + const ScMergeAttr* pMerge = mrDoc.GetAttr(rPosX, rPosY, nTabNo, ATTR_MERGE); if ( ( bHOver && pMerge->GetColMerge() <= 1 ) || ( bVOver && pMerge->GetRowMerge() <= 1 ) ) { OSL_FAIL("merge error found"); - pDoc->RemoveFlagsTab( 0,0, pDoc->MaxCol(),pDoc->MaxRow(), nTabNo, ScMF::Hor | ScMF::Ver ); - SCCOL nEndCol = pDoc->MaxCol(); - SCROW nEndRow = pDoc->MaxRow(); - pDoc->ExtendMerge( 0,0, nEndCol,nEndRow, nTabNo, true ); + mrDoc.RemoveFlagsTab(0, 0, mrDoc.MaxCol(), mrDoc.MaxRow(), nTabNo, ScMF::Hor | ScMF::Ver); + SCCOL nEndCol = mrDoc.MaxCol(); + SCROW nEndRow = mrDoc.MaxRow(); + mrDoc.ExtendMerge(0, 0, nEndCol, nEndRow, nTabNo, true); if (pDocShell) - pDocShell->PostPaint( ScRange(0,0,nTabNo,pDoc->MaxCol(),pDoc->MaxRow(),nTabNo), PaintPartFlags::Grid ); + pDocShell->PostPaint(ScRange(0, 0, nTabNo, mrDoc.MaxCol(), mrDoc.MaxRow(), nTabNo), + PaintPartFlags::Grid); } } void ScViewData::GetMouseQuadrant( const Point& rClickPos, ScSplitPos eWhich, SCCOL nPosX, SCROW nPosY, bool& rLeft, bool& rTop ) { - bool bLayoutRTL = pDoc->IsLayoutRTL( nTabNo ); + bool bLayoutRTL = mrDoc.IsLayoutRTL(nTabNo); long nLayoutSign = bLayoutRTL ? -1 : 1; Point aCellStart = GetScrPos( nPosX, nPosY, eWhich, true ); @@ -2840,14 +2811,14 @@ void ScViewData::SetPosX( ScHSplitPos eWhich, SCCOL nNewPosX ) if ( nNewPosX > nOldPosX ) for ( i=nOldPosX; i<nNewPosX; i++ ) { - long nThis = pDoc->GetColWidth( i,nTabNo ); + long nThis = mrDoc.GetColWidth(i, nTabNo); nTPosX -= nThis; nPixPosX -= ToPixel(sal::static_int_cast<sal_uInt16>(nThis), nPPTX); } else for ( i=nNewPosX; i<nOldPosX; i++ ) { - long nThis = pDoc->GetColWidth( i,nTabNo ); + long nThis = mrDoc.GetColWidth(i, nTabNo); nTPosX += nThis; nPixPosX += ToPixel(sal::static_int_cast<sal_uInt16>(nThis), nPPTX); } @@ -2879,7 +2850,7 @@ void ScViewData::SetPosY( ScVSplitPos eWhich, SCROW nNewPosY ) if ( nNewPosY > nOldPosY ) for ( i=nOldPosY; i<nNewPosY; i++ ) { - long nThis = pDoc->GetRowHeight( i, nTabNo, nullptr, &nHeightEndRow ); + long nThis = mrDoc.GetRowHeight(i, nTabNo, nullptr, &nHeightEndRow); SCROW nRows = std::min( nNewPosY, nHeightEndRow + 1) - i; i = nHeightEndRow; nTPosY -= nThis * nRows; @@ -2888,7 +2859,7 @@ void ScViewData::SetPosY( ScVSplitPos eWhich, SCROW nNewPosY ) else for ( i=nNewPosY; i<nOldPosY; i++ ) { - long nThis = pDoc->GetRowHeight( i, nTabNo, nullptr, &nHeightEndRow ); + long nThis = mrDoc.GetRowHeight(i, nTabNo, nullptr, &nHeightEndRow); SCROW nRows = std::min( nOldPosY, nHeightEndRow + 1) - i; i = nHeightEndRow; nTPosY += nThis * nRows; @@ -2916,13 +2887,13 @@ void ScViewData::RecalcPixPos() // after zoom changes long nPixPosX = 0; SCCOL nPosX = pThisTab->nPosX[eWhich]; for (SCCOL i=0; i<nPosX; i++) - nPixPosX -= ToPixel(pDoc->GetColWidth(i,nTabNo), nPPTX); + nPixPosX -= ToPixel(mrDoc.GetColWidth(i, nTabNo), nPPTX); pThisTab->nPixPosX[eWhich] = nPixPosX; long nPixPosY = 0; SCROW nPosY = pThisTab->nPosY[eWhich]; for (SCROW j=0; j<nPosY; j++) - nPixPosY -= ToPixel(pDoc->GetRowHeight(j,nTabNo), nPPTY); + nPixPosY -= ToPixel(mrDoc.GetRowHeight(j, nTabNo), nPPTY); pThisTab->nPixPosY[eWhich] = nPixPosY; } } @@ -2955,7 +2926,7 @@ void ScViewData::SetScreen( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) for (nCol=nCol1; nCol<=nCol2; nCol++) { - nTSize = pDoc->GetColWidth( nCol, nTabNo ); + nTSize = mrDoc.GetColWidth(nCol, nTabNo); if (nTSize) { nSizePix = ToPixel( nTSize, nPPTX ); @@ -2965,7 +2936,7 @@ void ScViewData::SetScreen( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) for (nRow=nRow1; nRow<=nRow2; nRow++) { - nTSize = pDoc->GetRowHeight( nRow, nTabNo ); + nTSize = mrDoc.GetRowHeight(nRow, nTabNo); if (nTSize) { nSizePix = ToPixel( nTSize, nPPTY ); @@ -2985,14 +2956,14 @@ void ScViewData::SetScreenPos( const Point& rVisAreaStart ) nSize = 0; nTwips = static_cast<long>(rVisAreaStart.X() / HMM_PER_TWIPS); - if ( pDoc->IsLayoutRTL( nTabNo ) ) + if (mrDoc.IsLayoutRTL(nTabNo)) nTwips = -nTwips; SCCOL nX1 = 0; bEnd = false; while (!bEnd) { - nAdd = static_cast<long>(pDoc->GetColWidth(nX1,nTabNo)); - if (nSize+nAdd <= nTwips+1 && nX1<pDoc->MaxCol()) + nAdd = static_cast<long>(mrDoc.GetColWidth(nX1, nTabNo)); + if (nSize + nAdd <= nTwips + 1 && nX1 < mrDoc.MaxCol()) { nSize += nAdd; ++nX1; @@ -3007,8 +2978,8 @@ void ScViewData::SetScreenPos( const Point& rVisAreaStart ) bEnd = false; while (!bEnd) { - nAdd = static_cast<long>(pDoc->GetRowHeight(nY1,nTabNo)); - if (nSize+nAdd <= nTwips+1 && nY1<pDoc->MaxRow()) + nAdd = static_cast<long>(mrDoc.GetRowHeight(nY1, nTabNo)); + if (nSize + nAdd <= nTwips + 1 && nY1 < mrDoc.MaxRow()) { nSize += nAdd; ++nY1; @@ -3043,30 +3014,30 @@ ScDocFunc& ScViewData::GetDocFunc() const SfxBindings& ScViewData::GetBindings() { - assert(pViewShell && "GetBindings() without ViewShell"); - return pViewShell->GetViewFrame()->GetBindings(); + assert(pView && "GetBindings() without ViewShell"); + return pView->GetViewFrame()->GetBindings(); } SfxDispatcher& ScViewData::GetDispatcher() { - assert(pViewShell && "GetDispatcher() without ViewShell"); - return *pViewShell->GetViewFrame()->GetDispatcher(); + assert(pView && "GetDispatcher() without ViewShell"); + return *pView->GetViewFrame()->GetDispatcher(); } ScMarkData& ScViewData::GetMarkData() { - return *mpMarkData; + return maMarkData; } const ScMarkData& ScViewData::GetMarkData() const { - return *mpMarkData; + return maMarkData; } weld::Window* ScViewData::GetDialogParent() { - assert(pViewShell && "GetDialogParent() without ViewShell"); - return pViewShell->GetDialogParent(); + assert(pView && "GetDialogParent() without ViewShell"); + return pView->GetDialogParent(); } ScGridWindow* ScViewData::GetActiveWin() @@ -3125,15 +3096,15 @@ void ScViewData::CalcPPT() // try to adjust horizontal scale so the most common column width has minimal rounding errors, // to avoid differences between cell and drawing layer output - if ( pDoc && pDoc->HasDetectiveObjects(nTabNo) ) + if (mrDoc.HasDetectiveObjects(nTabNo)) { SCCOL nEndCol = 0; SCROW nDummy = 0; - pDoc->GetTableArea( nTabNo, nEndCol, nDummy ); + mrDoc.GetTableArea(nTabNo, nEndCol, nDummy); if (nEndCol<20) nEndCol = 20; // same end position as when determining draw scale - sal_uInt16 nTwips = pDoc->GetCommonWidth( nEndCol, nTabNo ); + sal_uInt16 nTwips = mrDoc.GetCommonWidth(nEndCol, nTabNo); if ( nTwips ) { double fOriginal = nTwips * nPPTX; @@ -3184,7 +3155,7 @@ void ScViewData::WriteUserData(OUString& rData) rData += ";" + OUString::number( nTabNo ) + ";" TAG_TABBARWIDTH + OUString::number( pView->GetTabBarWidth() ); - SCTAB nTabCount = pDoc->GetTableCount(); + SCTAB nTabCount = mrDoc.GetTableCount(); for (SCTAB i=0; i<nTabCount; i++) { rData += ";"; // Numbering must not get mixed up under any circumstances @@ -3253,7 +3224,7 @@ void ScViewData::ReadUserData(const OUString& rData) // sheet may have become invalid (for instance last version): SCTAB nNewTab = static_cast<SCTAB>(rData.getToken(0, ';', nMainIdx).toUInt32()); - if (pDoc->HasTable( nNewTab )) + if (mrDoc.HasTable(nNewTab)) SetTabNo(nNewTab); // if available, get tab bar width: @@ -3278,7 +3249,7 @@ void ScViewData::ReadUserData(const OUString& rData) aTabOpt = rData.getToken(0, ';', nMainIdx); EnsureTabDataSize(nPos + 1); if (!maTabData[nPos]) - maTabData[nPos].reset( new ScViewDataTable(pDoc) ); + maTabData[nPos].reset(new ScViewDataTable(&mrDoc)); sal_Unicode cTabSep = 0; if (comphelper::string::getTokenCount(aTabOpt, SC_OLD_TABSEP) >= 11) @@ -3290,15 +3261,15 @@ void ScViewData::ReadUserData(const OUString& rData) if (cTabSep) { nIdx = 0; - maTabData[nPos]->nCurX = pDoc->SanitizeCol( static_cast<SCCOL>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32())); - maTabData[nPos]->nCurY = pDoc->SanitizeRow( aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); + maTabData[nPos]->nCurX = mrDoc.SanitizeCol(static_cast<SCCOL>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32())); + maTabData[nPos]->nCurY = mrDoc.SanitizeRow(aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); maTabData[nPos]->eHSplitMode = static_cast<ScSplitMode>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); maTabData[nPos]->eVSplitMode = static_cast<ScSplitMode>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); sal_Int32 nTmp{ aTabOpt.getToken(0, cTabSep, nIdx).toInt32() }; if ( maTabData[nPos]->eHSplitMode == SC_SPLIT_FIX ) { - maTabData[nPos]->nFixPosX = pDoc->SanitizeCol( static_cast<SCCOL>(nTmp)); + maTabData[nPos]->nFixPosX = mrDoc.SanitizeCol(static_cast<SCCOL>(nTmp)); UpdateFixX(nPos); } else @@ -3307,17 +3278,17 @@ void ScViewData::ReadUserData(const OUString& rData) nTmp = aTabOpt.getToken(0, cTabSep, nIdx).toInt32(); if ( maTabData[nPos]->eVSplitMode == SC_SPLIT_FIX ) { - maTabData[nPos]->nFixPosY = pDoc->SanitizeRow(nTmp); + maTabData[nPos]->nFixPosY = mrDoc.SanitizeRow(nTmp); UpdateFixY(nPos); } else maTabData[nPos]->nVSplitPos = nTmp; maTabData[nPos]->eWhichActive = static_cast<ScSplitPos>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); - maTabData[nPos]->nPosX[0] = pDoc->SanitizeCol( static_cast<SCCOL>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32())); - maTabData[nPos]->nPosX[1] = pDoc->SanitizeCol( static_cast<SCCOL>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32())); - maTabData[nPos]->nPosY[0] = pDoc->SanitizeRow( aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); - maTabData[nPos]->nPosY[1] = pDoc->SanitizeRow( aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); + maTabData[nPos]->nPosX[0] = mrDoc.SanitizeCol(static_cast<SCCOL>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32())); + maTabData[nPos]->nPosX[1] = mrDoc.SanitizeCol(static_cast<SCCOL>(aTabOpt.getToken(0, cTabSep, nIdx).toInt32())); + maTabData[nPos]->nPosY[0] = mrDoc.SanitizeRow(aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); + maTabData[nPos]->nPosY[1] = mrDoc.SanitizeRow(aTabOpt.getToken(0, cTabSep, nIdx).toInt32()); maTabData[nPos]->eWhichActive = maTabData[nPos]->SanitizeWhichActive(); } @@ -3425,12 +3396,9 @@ void ScViewData::WriteExtOptions( ScExtDocOptions& rDocOpt ) const // grid color rTabSett.maGridColor = COL_AUTO; - if( pOptions ) - { - const Color& rGridColor = pOptions->GetGridColor(); - if( rGridColor != SC_STD_GRIDCOLOR ) - rTabSett.maGridColor = rGridColor; - } + const Color& rGridColor = maOptions.GetGridColor(); + if (rGridColor != SC_STD_GRIDCOLOR) + rTabSett.maGridColor = rGridColor; rTabSett.mbShowGrid = pViewTab->bShowGrid; // view mode and zoom @@ -3468,7 +3436,7 @@ void ScViewData::ReadExtOptions( const ScExtDocOptions& rDocOpt ) if( const ScExtTabSettings* pTabSett = rDocOpt.GetTabSettings( nTab ) ) { if( !maTabData[ nTab ] ) - maTabData[ nTab ].reset( new ScViewDataTable(pDoc) ); + maTabData[nTab].reset(new ScViewDataTable(&mrDoc)); const ScExtTabSettings& rTabSett = *pTabSett; ScViewDataTable& rViewTab = *maTabData[ nTab ]; @@ -3586,13 +3554,10 @@ void ScViewData::ReadExtOptions( const ScExtDocOptions& rDocOpt ) if( nTab == GetTabNo() ) { // grid color -- #i47435# set automatic grid color explicitly - if( pOptions ) - { - Color aGridColor( rTabSett.maGridColor ); - if( aGridColor == COL_AUTO ) - aGridColor = SC_STD_GRIDCOLOR; - pOptions->SetGridColor( aGridColor, EMPTY_OUSTRING ); - } + Color aGridColor(rTabSett.maGridColor); + if (aGridColor == COL_AUTO) + aGridColor = SC_STD_GRIDCOLOR; + maOptions.SetGridColor(aGridColor, EMPTY_OUSTRING); // view mode and default zoom (for new sheets) from current sheet if( rTabSett.mnNormalZoom ) @@ -3618,7 +3583,7 @@ void ScViewData::WriteUserDataSequence(uno::Sequence <beans::PropertyValue>& rSe // + 1, because we have to put the view id in the sequence beans::PropertyValue* pSettings = rSettings.getArray(); - sal_uInt16 nViewID(pViewShell->GetViewFrame()->GetCurViewId()); + sal_uInt16 nViewID(pView->GetViewFrame()->GetCurViewId()); pSettings[SC_VIEW_ID].Name = SC_VIEWID; pSettings[SC_VIEW_ID].Value <<= SC_VIEW + OUString::number(nViewID); @@ -3667,45 +3632,42 @@ void ScViewData::WriteUserDataSequence(uno::Sequence <beans::PropertyValue>& rSe pSettings[SC_PAGE_BREAK_PREVIEW].Name = SC_SHOWPAGEBREAKPREVIEW; pSettings[SC_PAGE_BREAK_PREVIEW].Value <<= bPagebreak; - if (pOptions) - { - pSettings[SC_SHOWZERO].Name = SC_UNO_SHOWZERO; - pSettings[SC_SHOWZERO].Value <<= pOptions->GetOption( VOPT_NULLVALS ); - pSettings[SC_SHOWNOTES].Name = SC_UNO_SHOWNOTES; - pSettings[SC_SHOWNOTES].Value <<= pOptions->GetOption( VOPT_NOTES ); - pSettings[SC_SHOWGRID].Name = SC_UNO_SHOWGRID; - pSettings[SC_SHOWGRID].Value <<= pOptions->GetOption( VOPT_GRID ); - pSettings[SC_GRIDCOLOR].Name = SC_UNO_GRIDCOLOR; - OUString aColorName; - Color aColor = pOptions->GetGridColor(&aColorName); - pSettings[SC_GRIDCOLOR].Value <<= aColor; - pSettings[SC_SHOWPAGEBR].Name = SC_UNO_SHOWPAGEBR; - pSettings[SC_SHOWPAGEBR].Value <<= pOptions->GetOption( VOPT_PAGEBREAKS ); - pSettings[SC_COLROWHDR].Name = SC_UNO_COLROWHDR; - pSettings[SC_COLROWHDR].Value <<= pOptions->GetOption( VOPT_HEADER ); - pSettings[SC_SHEETTABS].Name = SC_UNO_SHEETTABS; - pSettings[SC_SHEETTABS].Value <<= pOptions->GetOption( VOPT_TABCONTROLS ); - pSettings[SC_OUTLSYMB].Name = SC_UNO_OUTLSYMB; - pSettings[SC_OUTLSYMB].Value <<= pOptions->GetOption( VOPT_OUTLINER ); - pSettings[SC_VALUE_HIGHLIGHTING].Name = SC_UNO_VALUEHIGH; - pSettings[SC_VALUE_HIGHLIGHTING].Value <<= pOptions->GetOption( VOPT_SYNTAX ); - - const ScGridOptions& aGridOpt = pOptions->GetGridOptions(); - pSettings[SC_SNAPTORASTER].Name = SC_UNO_SNAPTORASTER; - pSettings[SC_SNAPTORASTER].Value <<= aGridOpt.GetUseGridSnap(); - pSettings[SC_RASTERVIS].Name = SC_UNO_RASTERVIS; - pSettings[SC_RASTERVIS].Value <<= aGridOpt.GetGridVisible(); - pSettings[SC_RASTERRESX].Name = SC_UNO_RASTERRESX; - pSettings[SC_RASTERRESX].Value <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDrawX() ); - pSettings[SC_RASTERRESY].Name = SC_UNO_RASTERRESY; - pSettings[SC_RASTERRESY].Value <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDrawY() ); - pSettings[SC_RASTERSUBX].Name = SC_UNO_RASTERSUBX; - pSettings[SC_RASTERSUBX].Value <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDivisionX() ); - pSettings[SC_RASTERSUBY].Name = SC_UNO_RASTERSUBY; - pSettings[SC_RASTERSUBY].Value <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDivisionY() ); - pSettings[SC_RASTERSYNC].Name = SC_UNO_RASTERSYNC; - pSettings[SC_RASTERSYNC].Value <<= aGridOpt.GetSynchronize(); - } + pSettings[SC_SHOWZERO].Name = SC_UNO_SHOWZERO; + pSettings[SC_SHOWZERO].Value <<= maOptions.GetOption(VOPT_NULLVALS); + pSettings[SC_SHOWNOTES].Name = SC_UNO_SHOWNOTES; + pSettings[SC_SHOWNOTES].Value <<= maOptions.GetOption(VOPT_NOTES); + pSettings[SC_SHOWGRID].Name = SC_UNO_SHOWGRID; + pSettings[SC_SHOWGRID].Value <<= maOptions.GetOption(VOPT_GRID); + pSettings[SC_GRIDCOLOR].Name = SC_UNO_GRIDCOLOR; + OUString aColorName; + Color aColor = maOptions.GetGridColor(&aColorName); + pSettings[SC_GRIDCOLOR].Value <<= aColor; + pSettings[SC_SHOWPAGEBR].Name = SC_UNO_SHOWPAGEBR; + pSettings[SC_SHOWPAGEBR].Value <<= maOptions.GetOption(VOPT_PAGEBREAKS); + pSettings[SC_COLROWHDR].Name = SC_UNO_COLROWHDR; + pSettings[SC_COLROWHDR].Value <<= maOptions.GetOption(VOPT_HEADER); + pSettings[SC_SHEETTABS].Name = SC_UNO_SHEETTABS; + pSettings[SC_SHEETTABS].Value <<= maOptions.GetOption(VOPT_TABCONTROLS); + pSettings[SC_OUTLSYMB].Name = SC_UNO_OUTLSYMB; + pSettings[SC_OUTLSYMB].Value <<= maOptions.GetOption(VOPT_OUTLINER); + pSettings[SC_VALUE_HIGHLIGHTING].Name = SC_UNO_VALUEHIGH; + pSettings[SC_VALUE_HIGHLIGHTING].Value <<= maOptions.GetOption(VOPT_SYNTAX); + + const ScGridOptions& aGridOpt = maOptions.GetGridOptions(); + pSettings[SC_SNAPTORASTER].Name = SC_UNO_SNAPTORASTER; + pSettings[SC_SNAPTORASTER].Value <<= aGridOpt.GetUseGridSnap(); + pSettings[SC_RASTERVIS].Name = SC_UNO_RASTERVIS; + pSettings[SC_RASTERVIS].Value <<= aGridOpt.GetGridVisible(); + pSettings[SC_RASTERRESX].Name = SC_UNO_RASTERRESX; + pSettings[SC_RASTERRESX].Value <<= static_cast<sal_Int32>(aGridOpt.GetFieldDrawX()); + pSettings[SC_RASTERRESY].Name = SC_UNO_RASTERRESY; + pSettings[SC_RASTERRESY].Value <<= static_cast<sal_Int32>(aGridOpt.GetFieldDrawY()); + pSettings[SC_RASTERSUBX].Name = SC_UNO_RASTERSUBX; + pSettings[SC_RASTERSUBX].Value <<= static_cast<sal_Int32>(aGridOpt.GetFieldDivisionX()); + pSettings[SC_RASTERSUBY].Name = SC_UNO_RASTERSUBY; + pSettings[SC_RASTERSUBY].Value <<= static_cast<sal_Int32>(aGridOpt.GetFieldDivisionY()); + pSettings[SC_RASTERSYNC].Name = SC_UNO_RASTERSYNC; + pSettings[SC_RASTERSYNC].Value <<= aGridOpt.GetSynchronize(); // Common SdrModel processing GetDocument().GetDrawLayer()->WriteUserDataSequence(rSettings); @@ -3742,7 +3704,7 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> { EnsureTabDataSize(nTab + 1); if (!maTabData[nTab]) - maTabData[nTab].reset( new ScViewDataTable(pDoc) ); + maTabData[nTab].reset(new ScViewDataTable(&mrDoc)); bool bHasZoom = false; maTabData[nTab]->ReadUserDataSequence(aTabSettings, *this, nTab, bHasZoom); @@ -3797,11 +3759,11 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> else if (sName == SC_SHOWPAGEBREAKPREVIEW) bPageMode = ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ); else if ( sName == SC_UNO_SHOWZERO ) - pOptions->SetOption(VOPT_NULLVALS, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_NULLVALS, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else if ( sName == SC_UNO_SHOWNOTES ) - pOptions->SetOption(VOPT_NOTES, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_NOTES, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else if ( sName == SC_UNO_SHOWGRID ) - pOptions->SetOption(VOPT_GRID, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_GRID, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else if ( sName == SC_UNO_GRIDCOLOR ) { Color aColor; @@ -3810,40 +3772,40 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> // #i47435# set automatic grid color explicitly if( aColor == COL_AUTO ) aColor = SC_STD_GRIDCOLOR; - pOptions->SetGridColor(aColor, OUString()); + maOptions.SetGridColor(aColor, OUString()); } } else if ( sName == SC_UNO_SHOWPAGEBR ) - pOptions->SetOption(VOPT_PAGEBREAKS, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_PAGEBREAKS, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else if ( sName == SC_UNO_COLROWHDR ) - pOptions->SetOption(VOPT_HEADER, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_HEADER, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else if ( sName == SC_UNO_SHEETTABS ) - pOptions->SetOption(VOPT_TABCONTROLS, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_TABCONTROLS, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else if ( sName == SC_UNO_OUTLSYMB ) - pOptions->SetOption(VOPT_OUTLINER, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_OUTLINER, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else if ( sName == SC_UNO_SHOWOBJ ) { // #i80528# placeholders not supported anymore if ( rSetting.Value >>= nTemp16 ) - pOptions->SetObjMode( VOBJ_TYPE_OLE, (nTemp16 == 1) ? VOBJ_MODE_HIDE : VOBJ_MODE_SHOW ); + maOptions.SetObjMode(VOBJ_TYPE_OLE, (nTemp16 == 1) ? VOBJ_MODE_HIDE : VOBJ_MODE_SHOW); } else if ( sName == SC_UNO_SHOWCHARTS ) { // #i80528# placeholders not supported anymore if ( rSetting.Value >>= nTemp16 ) - pOptions->SetObjMode( VOBJ_TYPE_CHART, (nTemp16 == 1) ? VOBJ_MODE_HIDE : VOBJ_MODE_SHOW ); + maOptions.SetObjMode(VOBJ_TYPE_CHART, (nTemp16 == 1) ? VOBJ_MODE_HIDE : VOBJ_MODE_SHOW); } else if ( sName == SC_UNO_SHOWDRAW ) { // #i80528# placeholders not supported anymore if ( rSetting.Value >>= nTemp16 ) - pOptions->SetObjMode( VOBJ_TYPE_DRAW, (nTemp16 == 1) ? VOBJ_MODE_HIDE : VOBJ_MODE_SHOW ); + maOptions.SetObjMode(VOBJ_TYPE_DRAW, (nTemp16 == 1) ? VOBJ_MODE_HIDE : VOBJ_MODE_SHOW); } else if ( sName.compareToAscii( SC_UNO_VALUEHIGH ) == 0 ) - pOptions->SetOption( VOPT_SYNTAX, ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); + maOptions.SetOption(VOPT_SYNTAX, ScUnoHelpFunctions::GetBoolFromAny(rSetting.Value)); else { - ScGridOptions aGridOpt(pOptions->GetGridOptions()); + ScGridOptions aGridOpt(maOptions.GetGridOptions()); if ( sName == SC_UNO_SNAPTORASTER ) aGridOpt.SetUseGridSnap( ScUnoHelpFunctions::GetBoolFromAny( rSetting.Value ) ); else if ( sName == SC_UNO_RASTERVIS ) @@ -3861,7 +3823,7 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> // Fallback to common SdrModel processing else GetDocument().GetDrawLayer()->ReadUserDataSequenceValue(&rSetting); - pOptions->SetGridOptions(aGridOpt); + maOptions.SetGridOptions(aGridOpt); } } @@ -3880,7 +3842,7 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> SetPagebreakMode( bPageMode ); // #i47426# write view options to document, needed e.g. for Excel export - pDoc->SetViewOptions( *pOptions ); + mrDoc.SetViewOptions(maOptions); if (comphelper::LibreOfficeKit::isActive()) DeriveLOKFreezeAllSheets(); @@ -3889,14 +3851,14 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> void ScViewData::SetOptions( const ScViewOptions& rOpt ) { // if visibility of horizontal ScrollBar is changed, TabBar may have to be resized... - bool bHScrollChanged = ( rOpt.GetOption(VOPT_HSCROLL) != pOptions->GetOption(VOPT_HSCROLL) ); + bool bHScrollChanged = (rOpt.GetOption(VOPT_HSCROLL) != maOptions.GetOption(VOPT_HSCROLL)); // if graphics are turned on or off, animation has to be started or stopped // graphics are controlled by VOBJ_TYPE_OLE - bool bGraphicsChanged = ( pOptions->GetObjMode(VOBJ_TYPE_OLE) != + bool bGraphicsChanged = (maOptions.GetObjMode(VOBJ_TYPE_OLE) != rOpt.GetObjMode(VOBJ_TYPE_OLE) ); - *pOptions = rOpt; + maOptions = rOpt; OSL_ENSURE( pView, "No View" ); if( pView ) @@ -3913,8 +3875,8 @@ Point ScViewData::GetMousePosPixel() void ScViewData::UpdateInputHandler( bool bForce ) { - if (pViewShell) - pViewShell->UpdateInputHandler( bForce ); + if (pView) + pView->UpdateInputHandler(bForce); } bool ScViewData::IsOle() const @@ -4117,7 +4079,7 @@ void ScViewData::AddPixelsWhileBackward( long & rScrY, long nEndPixels, SCCOLROW ScViewData::GetLOKSheetFreezeIndex(bool bIsCol) const { - SCCOLROW nFreezeIndex = bIsCol ? pDoc->GetLOKFreezeCol(nTabNo) : pDoc->GetLOKFreezeRow(nTabNo); + SCCOLROW nFreezeIndex = bIsCol ? mrDoc.GetLOKFreezeCol(nTabNo) : mrDoc.GetLOKFreezeRow(nTabNo); return nFreezeIndex >= 0 ? nFreezeIndex : 0; } @@ -4133,9 +4095,8 @@ bool ScViewData::SetLOKSheetFreezeIndex(const SCCOLROW nFreezeIndex, bool bIsCol return false; } - return bIsCol ? - pDoc->SetLOKFreezeCol(static_cast<SCCOL>(nFreezeIndex), nForTab) : - pDoc->SetLOKFreezeRow(static_cast<SCROW>(nFreezeIndex), nForTab); + return bIsCol ? mrDoc.SetLOKFreezeCol(static_cast<SCCOL>(nFreezeIndex), nForTab) + : mrDoc.SetLOKFreezeRow(static_cast<SCROW>(nFreezeIndex), nForTab); } bool ScViewData::RemoveLOKFreeze() @@ -4166,8 +4127,8 @@ void ScViewData::DeriveLOKFreezeIfNeeded(SCTAB nForTab) bool bConvertToFreezeX = false; bool bConvertToFreezeY = false; - SCCOL nFreezeCol = pDoc->GetLOKFreezeCol(nForTab); - SCROW nFreezeRow = pDoc->GetLOKFreezeRow(nForTab); + SCCOL nFreezeCol = mrDoc.GetLOKFreezeCol(nForTab); + SCROW nFreezeRow = mrDoc.GetLOKFreezeRow(nForTab); if (nFreezeCol == -1) { @@ -4206,16 +4167,16 @@ void ScViewData::DeriveLOKFreezeIfNeeded(SCTAB nForTab) nFreezeRow = nRow; } - pDoc->SetLOKFreezeCol(nFreezeCol, nForTab); - pDoc->SetLOKFreezeRow(nFreezeRow, nForTab); + mrDoc.SetLOKFreezeCol(nFreezeCol, nForTab); + mrDoc.SetLOKFreezeRow(nFreezeRow, nForTab); } void ScViewData::OverrideWithLOKFreeze(ScSplitMode& eExHSplitMode, ScSplitMode& eExVSplitMode, SCCOL& nExFixPosX, SCROW& nExFixPosY, long& nExHSplitPos, long& nExVSplitPos, SCTAB nForTab) const { - SCCOL nFreezeCol = pDoc->GetLOKFreezeCol(nForTab); - SCROW nFreezeRow = pDoc->GetLOKFreezeRow(nForTab); + SCCOL nFreezeCol = mrDoc.GetLOKFreezeCol(nForTab); + SCROW nFreezeRow = mrDoc.GetLOKFreezeRow(nForTab); bool bConvertToScrPosX = false; bool bConvertToScrPosY = false; |