sc/source/ui/inc/select.hxx | 8 - sc/source/ui/view/select.cxx | 232 ++++++++++++++++++++---------------------- sc/source/ui/view/tabview.cxx | 4 3 files changed, 121 insertions(+), 123 deletions(-)
New commits: commit f8a39e7c8bc09627bfe360c8cd1242c0e9666823 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri Apr 25 17:51:36 2025 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Apr 25 21:34:12 2025 +0200 sc: pass ScViewData by ref here too Change-Id: Id21b9e901502dc2c589ef6ee22105e883b3c5f80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184634 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/source/ui/inc/select.hxx b/sc/source/ui/inc/select.hxx index 299463afddd2..0e996042cb0d 100644 --- a/sc/source/ui/inc/select.hxx +++ b/sc/source/ui/inc/select.hxx @@ -40,7 +40,7 @@ public: class ScViewFunctionSet : public FunctionSet // View (Gridwin / keyboard) { private: - ScViewData* m_pViewData; + ScViewData& m_rViewData; ScViewSelectionEngine* m_pEngine; bool m_bAnchor; @@ -53,7 +53,7 @@ private: bool bLeftScroll, bool bTopScroll, bool bRightScroll, bool bBottomScroll ); public: - ScViewFunctionSet( ScViewData* pNewViewData ); + ScViewFunctionSet( ScViewData& rViewData ); void SetSelectionEngine( ScViewSelectionEngine* pSelEngine ); @@ -75,7 +75,7 @@ public: class ScHeaderFunctionSet : public FunctionSet // Column / row headers { private: - ScViewData* pViewData; + ScViewData& rViewData; bool bColumn; // Col- / Rowbar ScSplitPos eWhich; @@ -83,7 +83,7 @@ private: SCCOLROW nCursorPos; public: - ScHeaderFunctionSet( ScViewData* pNewViewData ); + ScHeaderFunctionSet( ScViewData& rData ); void SetColumn( bool bSet ); void SetWhich( ScSplitPos eNew ); diff --git a/sc/source/ui/view/select.cxx b/sc/source/ui/view/select.cxx index 28ee0bc4cc77..5585c9f92395 100644 --- a/sc/source/ui/view/select.cxx +++ b/sc/source/ui/view/select.cxx @@ -43,13 +43,12 @@ static Point aSwitchPos; //! Member static bool bDidSwitch = false; // View (Gridwin / keyboard) -ScViewFunctionSet::ScViewFunctionSet( ScViewData* pNewViewData ) : - m_pViewData( pNewViewData ), +ScViewFunctionSet::ScViewFunctionSet( ScViewData& rViewData ) : + m_rViewData( rViewData ), m_pEngine( nullptr ), m_bAnchor( false ), m_bStarted( false ) { - OSL_ENSURE(m_pViewData, "ViewData==0 at FunctionSet"); } ScSplitPos ScViewFunctionSet::GetWhich() const @@ -57,7 +56,7 @@ ScSplitPos ScViewFunctionSet::GetWhich() const if (m_pEngine) return m_pEngine->GetWhich(); else - return m_pViewData->GetActivePart(); + return m_rViewData.GetActivePart(); } sal_uInt64 ScViewFunctionSet::CalcUpdateInterval( const Size& rWinSize, const Point& rEffPos, @@ -124,7 +123,7 @@ sal_uInt64 ScViewFunctionSet::CalcUpdateInterval( const Size& rWinSize, const Po } #ifdef _WIN32 - ScTabViewShell* pViewShell = m_pViewData->GetViewShell(); + ScTabViewShell* pViewShell = m_rViewData.GetViewShell(); bool bRefMode = pViewShell && pViewShell->IsRefInputMode(); if (bRefMode && nUpdateInterval < SC_SELENG_REFMODE_UPDATE_INTERVAL_MIN) // Lower the update interval during ref mode, because re-draw can be @@ -145,22 +144,22 @@ void ScViewFunctionSet::SetSelectionEngine( ScViewSelectionEngine* pSelEngine ) // Drag & Drop void ScViewFunctionSet::BeginDrag() { - if (m_pViewData->GetViewShell()->IsLokReadOnlyView()) + if (m_rViewData.GetViewShell()->IsLokReadOnlyView()) return; - SCTAB nTab = m_pViewData->GetTabNo(); + SCTAB nTab = m_rViewData.GetTabNo(); SCCOL nPosX; SCROW nPosY; if (m_pEngine) { Point aMPos = m_pEngine->GetMousePosPixel(); - m_pViewData->GetPosFromPixel( aMPos.X(), aMPos.Y(), GetWhich(), nPosX, nPosY ); + m_rViewData.GetPosFromPixel( aMPos.X(), aMPos.Y(), GetWhich(), nPosX, nPosY ); } else { - nPosX = m_pViewData->GetCurX(); - nPosY = m_pViewData->GetCurY(); + nPosX = m_rViewData.GetCurX(); + nPosY = m_rViewData.GetCurY(); } ScModule* pScMod = ScModule::get(); @@ -168,24 +167,24 @@ void ScViewFunctionSet::BeginDrag() if (bRefMode) return; - m_pViewData->GetView()->FakeButtonUp( GetWhich() ); // ButtonUp is swallowed + m_rViewData.GetView()->FakeButtonUp( GetWhich() ); // ButtonUp is swallowed - ScMarkData& rMark = m_pViewData->GetMarkData(); + ScMarkData& rMark = m_rViewData.GetMarkData(); rMark.MarkToSimple(); if ( !rMark.IsMarked() || rMark.IsMultiMarked() ) return; ScDocumentUniquePtr pClipDoc(new ScDocument( SCDOCMODE_CLIP )); // bApi = TRUE -> no error messages - bool bCopied = m_pViewData->GetView()->CopyToClip( pClipDoc.get(), false, true ); + bool bCopied = m_rViewData.GetView()->CopyToClip( pClipDoc.get(), false, true ); if ( !bCopied ) return; - sal_Int8 nDragActions = m_pViewData->GetView()->SelectionEditable() ? + sal_Int8 nDragActions = m_rViewData.GetView()->SelectionEditable() ? ( DND_ACTION_COPYMOVE | DND_ACTION_LINK ) : ( DND_ACTION_COPY | DND_ACTION_LINK ); - ScDocShell* pDocSh = m_pViewData->GetDocShell(); + ScDocShell* pDocSh = m_rViewData.GetDocShell(); TransferableObjectDescriptor aObjDesc; pDocSh->FillTransferableObjectDescriptor( aObjDesc ); aObjDesc.maDisplayName = pDocSh->GetMedium()->GetURLObject().GetURLNoPass(); @@ -200,12 +199,12 @@ void ScViewFunctionSet::BeginDrag() SCCOL nHandleX = (nPosX >= nStartX) ? nPosX - nStartX : 0; SCROW nHandleY = (nPosY >= nStartY) ? nPosY - nStartY : 0; pTransferObj->SetDragHandlePos( nHandleX, nHandleY ); - pTransferObj->SetSourceCursorPos( m_pViewData->GetCurX(), m_pViewData->GetCurY() ); + pTransferObj->SetSourceCursorPos( m_rViewData.GetCurX(), m_rViewData.GetCurY() ); pTransferObj->SetVisibleTab( nTab ); pTransferObj->SetDragSource( pDocSh, rMark ); - vcl::Window* pWindow = m_pViewData->GetActiveWin(); + vcl::Window* pWindow = m_rViewData.GetActiveWin(); if ( pWindow->IsTracking() ) pWindow->EndTracking( TrackingEventFlags::Cancel ); // abort selecting @@ -226,16 +225,16 @@ void ScViewFunctionSet::CreateAnchor() bool bRefMode = ScModule::get()->IsFormulaMode(); if (bRefMode) - SetAnchor( m_pViewData->GetRefStartX(), m_pViewData->GetRefStartY() ); + SetAnchor( m_rViewData.GetRefStartX(), m_rViewData.GetRefStartY() ); else - SetAnchor( m_pViewData->GetCurX(), m_pViewData->GetCurY() ); + SetAnchor( m_rViewData.GetCurX(), m_rViewData.GetCurY() ); } void ScViewFunctionSet::SetAnchor( SCCOL nPosX, SCROW nPosY ) { bool bRefMode = ScModule::get()->IsFormulaMode(); - ScTabView* pView = m_pViewData->GetView(); - SCTAB nTab = m_pViewData->GetTabNo(); + ScTabView* pView = m_rViewData.GetView(); + SCTAB nTab = m_rViewData.GetTabNo(); if (bRefMode) { @@ -245,7 +244,7 @@ void ScViewFunctionSet::SetAnchor( SCCOL nPosX, SCROW nPosY ) SC_REFTYPE_REF ); m_bStarted = true; } - else if (m_pViewData->IsAnyFillMode()) + else if (m_rViewData.IsAnyFillMode()) { m_aAnchorPos.Set( nPosX, nPosY, nTab ); m_bStarted = true; @@ -261,7 +260,7 @@ void ScViewFunctionSet::SetAnchor( SCCOL nPosX, SCROW nPosY ) { pView->DoneBlockMode( true ); m_aAnchorPos.Set( nPosX, nPosY, nTab ); - ScMarkData& rMark = m_pViewData->GetMarkData(); + ScMarkData& rMark = m_rViewData.GetMarkData(); if ( rMark.IsMarked() || rMark.IsMultiMarked() ) { pView->InitBlockMode( m_aAnchorPos.Col(), m_aAnchorPos.Row(), @@ -277,14 +276,14 @@ void ScViewFunctionSet::SetAnchor( SCCOL nPosX, SCROW nPosY ) void ScViewFunctionSet::DestroyAnchor() { - if (m_pViewData->IsAnyFillMode()) + if (m_rViewData.IsAnyFillMode()) return; bool bRefMode = ScModule::get()->IsFormulaMode(); if (bRefMode) - m_pViewData->GetView()->DoneRefMode( true ); + m_rViewData.GetView()->DoneRefMode( true ); else - m_pViewData->GetView()->DoneBlockMode( true ); + m_rViewData.GetView()->DoneBlockMode( true ); m_bAnchor = false; } @@ -322,14 +321,14 @@ void ScViewFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bDon SCCOL nPosX; SCROW nPosY; - m_pViewData->GetPosFromPixel( aEffPos.X(), aEffPos.Y(), GetWhich(), + m_rViewData.GetPosFromPixel( aEffPos.X(), aEffPos.Y(), GetWhich(), nPosX, nPosY, true, true ); // with Repair - tools::Rectangle aEditArea = m_pViewData->GetEditArea(GetWhich(), nPosX, nPosY, + tools::Rectangle aEditArea = m_rViewData.GetEditArea(GetWhich(), nPosX, nPosY, m_pEngine->GetWindow(), nullptr, false); - bool bFillingSelection = m_pViewData->IsFillMode() || m_pViewData->GetFillMode() == ScFillMode::MATRIX; + bool bFillingSelection = m_rViewData.IsFillMode() || m_rViewData.GetFillMode() == ScFillMode::MATRIX; bool bBottomScroll; bool bRightScroll; // for Autofill don't yet assume we want to auto-scroll to the cell under the mouse @@ -353,9 +352,9 @@ void ScViewFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bDon if (bFillingSelection) { bool bLeft, bTop; - m_pViewData->GetMouseQuadrant( aEffPos, GetWhich(), nPosX, nPosY, bLeft, bTop ); - ScDocument& rDoc = m_pViewData->GetDocument(); - SCTAB nTab = m_pViewData->GetTabNo(); + m_rViewData.GetMouseQuadrant( aEffPos, GetWhich(), nPosX, nPosY, bLeft, bTop ); + ScDocument& rDoc = m_rViewData.GetDocument(); + SCTAB nTab = m_rViewData.GetTabNo(); if ( bLeft && !bRightScroll ) do --nPosX; while ( nPosX>=0 && rDoc.ColHidden( nPosX, nTab ) ); if ( bTop && !bBottomScroll ) @@ -372,37 +371,37 @@ void ScViewFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bDon // moved out of fix limit? ScSplitPos eWhich = GetWhich(); - if ( eWhich == m_pViewData->GetActivePart() ) + if ( eWhich == m_rViewData.GetActivePart() ) { - if ( m_pViewData->GetHSplitMode() == SC_SPLIT_FIX ) + if ( m_rViewData.GetHSplitMode() == SC_SPLIT_FIX ) if ( aEffPos.X() >= aWinSize.Width() ) { if ( eWhich == SC_SPLIT_TOPLEFT ) { - m_pViewData->GetView()->ActivatePart( SC_SPLIT_TOPRIGHT ); + m_rViewData.GetView()->ActivatePart( SC_SPLIT_TOPRIGHT ); bScroll = false; bDidSwitch = true; } else if ( eWhich == SC_SPLIT_BOTTOMLEFT ) { - m_pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); + m_rViewData.GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); bScroll = false; bDidSwitch = true; } } - if ( m_pViewData->GetVSplitMode() == SC_SPLIT_FIX ) + if ( m_rViewData.GetVSplitMode() == SC_SPLIT_FIX ) if ( aEffPos.Y() >= aWinSize.Height() ) { if ( eWhich == SC_SPLIT_TOPLEFT ) { - m_pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMLEFT ); + m_rViewData.GetView()->ActivatePart( SC_SPLIT_BOTTOMLEFT ); bScroll = false; bDidSwitch = true; } else if ( eWhich == SC_SPLIT_TOPRIGHT ) { - m_pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); + m_rViewData.GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); bScroll = false; bDidSwitch = true; } @@ -422,26 +421,26 @@ void ScViewFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bDon m_pEngine->SetUpdateInterval(SELENG_AUTOREPEAT_INTERVAL); } - m_pViewData->ResetOldCursor(); + m_rViewData.ResetOldCursor(); SetCursorAtCell( nPosX, nPosY, bScroll ); } bool ScViewFunctionSet::CheckRefBounds(SCCOL nPosX, SCROW nPosY) { - SCCOL startX = m_pViewData->GetRefStartX(); - SCROW startY = m_pViewData->GetRefStartY(); + SCCOL startX = m_rViewData.GetRefStartX(); + SCROW startY = m_rViewData.GetRefStartY(); - SCCOL endX = m_pViewData->GetRefEndX(); - SCROW endY = m_pViewData->GetRefEndY(); + SCCOL endX = m_rViewData.GetRefEndX(); + SCROW endY = m_rViewData.GetRefEndY(); return nPosX >= startX && nPosX <= endX && nPosY >= startY && nPosY <= endY; } bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll ) { - ScTabView* pView = m_pViewData->GetView(); - SCTAB nTab = m_pViewData->GetTabNo(); - ScDocument& rDoc = m_pViewData->GetDocument(); + ScTabView* pView = m_rViewData.GetView(); + SCTAB nTab = m_rViewData.GetTabNo(); + ScDocument& rDoc = m_rViewData.GetDocument(); if ( rDoc.IsTabProtected(nTab) ) { @@ -464,11 +463,11 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll return false; } - ScTabViewShell* pViewShell = m_pViewData->GetViewShell(); + ScTabViewShell* pViewShell = m_rViewData.GetViewShell(); bool bRefMode = pViewShell && pViewShell->IsRefInputMode(); - bool bHide = !bRefMode && !m_pViewData->IsAnyFillMode() && - ( nPosX != m_pViewData->GetCurX() || nPosY != m_pViewData->GetCurY() ); + bool bHide = !bRefMode && !m_rViewData.IsAnyFillMode() && + ( nPosX != m_rViewData.GetCurX() || nPosY != m_rViewData.GetCurY() ); if (bHide) pView->HideAllCursors(); @@ -487,38 +486,38 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll if (bRefMode) { // if no input is possible from this doc, don't move the reference cursor around - if ( !ScModule::get()->IsModalMode(m_pViewData->GetSfxDocShell()) && (!CheckRefBounds(nPosX, nPosY) || SfxLokHelper::getDeviceFormFactor() != LOKDeviceFormFactor::MOBILE)) + if ( !ScModule::get()->IsModalMode(m_rViewData.GetSfxDocShell()) && (!CheckRefBounds(nPosX, nPosY) || SfxLokHelper::getDeviceFormFactor() != LOKDeviceFormFactor::MOBILE)) { if (!m_bAnchor) { pView->DoneRefMode( true ); - pView->InitRefMode( nPosX, nPosY, m_pViewData->GetTabNo(), SC_REFTYPE_REF ); + pView->InitRefMode( nPosX, nPosY, m_rViewData.GetTabNo(), SC_REFTYPE_REF ); } if(SfxLokHelper::getDeviceFormFactor() != LOKDeviceFormFactor::MOBILE) - pView->UpdateRef( nPosX, nPosY, m_pViewData->GetTabNo() ); + pView->UpdateRef( nPosX, nPosY, m_rViewData.GetTabNo() ); pView->SelectionChanged(); } } - else if (m_pViewData->IsFillMode() || - (m_pViewData->GetFillMode() == ScFillMode::MATRIX && (nScFillModeMouseModifier & KEY_MOD1) )) + else if (m_rViewData.IsFillMode() || + (m_rViewData.GetFillMode() == ScFillMode::MATRIX && (nScFillModeMouseModifier & KEY_MOD1) )) { // If a matrix got touched, switch back to Autofill is possible with Ctrl SCCOL nStartX, nEndX; SCROW nStartY, nEndY; // Block SCTAB nDummy; - m_pViewData->GetSimpleArea( nStartX, nStartY, nDummy, nEndX, nEndY, nDummy ); + m_rViewData.GetSimpleArea( nStartX, nStartY, nDummy, nEndX, nEndY, nDummy ); - if (m_pViewData->GetRefType() != SC_REFTYPE_FILL) + if (m_rViewData.GetRefType() != SC_REFTYPE_FILL) { pView->InitRefMode( nStartX, nStartY, nTab, SC_REFTYPE_FILL ); CreateAnchor(); } ScRange aDelRange; - bool bOldDelMark = m_pViewData->GetDelMark( aDelRange ); + bool bOldDelMark = m_rViewData.GetDelMark( aDelRange ); if ( nPosX+1 >= nStartX && nPosX <= nEndX && nPosY+1 >= nStartY && nPosY <= nEndY && @@ -546,29 +545,29 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll // set range - m_pViewData->SetDelMark( ScRange( nDelStartX,nDelStartY,nTab, + m_rViewData.SetDelMark( ScRange( nDelStartX,nDelStartY,nTab, nEndX,nEndY,nTab ) ); - m_pViewData->GetView()->UpdateShrinkOverlay(); + m_rViewData.GetView()->UpdateShrinkOverlay(); - m_pViewData->GetView()-> + m_rViewData.GetView()-> PaintArea( nStartX,nDelStartY, nEndX,nEndY, ScUpdateMode::Marks ); nPosX = nEndX; // keep red border around range nPosY = nEndY; // reference the right way up, if it's upside down below - if ( nStartX != m_pViewData->GetRefStartX() || nStartY != m_pViewData->GetRefStartY() ) + if ( nStartX != m_rViewData.GetRefStartX() || nStartY != m_rViewData.GetRefStartY() ) { - m_pViewData->GetView()->DoneRefMode(); - m_pViewData->GetView()->InitRefMode( nStartX, nStartY, nTab, SC_REFTYPE_FILL ); + m_rViewData.GetView()->DoneRefMode(); + m_rViewData.GetView()->InitRefMode( nStartX, nStartY, nTab, SC_REFTYPE_FILL ); } } else { if ( bOldDelMark ) { - m_pViewData->ResetDelMark(); - m_pViewData->GetView()->UpdateShrinkOverlay(); + m_rViewData.ResetDelMark(); + m_rViewData.GetView()->UpdateShrinkOverlay(); } bool bNegX = ( nPosX < nStartX ); @@ -616,25 +615,25 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll SCCOL nRefStX = bNegX ? nEndX : nStartX; SCROW nRefStY = bNegY ? nEndY : nStartY; - if ( nRefStX != m_pViewData->GetRefStartX() || nRefStY != m_pViewData->GetRefStartY() ) + if ( nRefStX != m_rViewData.GetRefStartX() || nRefStY != m_rViewData.GetRefStartY() ) { - m_pViewData->GetView()->DoneRefMode(); - m_pViewData->GetView()->InitRefMode( nRefStX, nRefStY, nTab, SC_REFTYPE_FILL ); + m_rViewData.GetView()->DoneRefMode(); + m_rViewData.GetView()->InitRefMode( nRefStX, nRefStY, nTab, SC_REFTYPE_FILL ); } } pView->UpdateRef( nPosX, nPosY, nTab ); } - else if (m_pViewData->IsAnyFillMode()) + else if (m_rViewData.IsAnyFillMode()) { - ScFillMode nMode = m_pViewData->GetFillMode(); + ScFillMode nMode = m_rViewData.GetFillMode(); if ( nMode == ScFillMode::EMBED_LT || nMode == ScFillMode::EMBED_RB ) { OSL_ENSURE( rDoc.IsEmbedded(), "!rDoc.IsEmbedded()" ); ScRange aRange; rDoc.GetEmbedded( aRange); ScRefType eRefMode = (nMode == ScFillMode::EMBED_LT) ? SC_REFTYPE_EMBED_LT : SC_REFTYPE_EMBED_RB; - if (m_pViewData->GetRefType() != eRefMode) + if (m_rViewData.GetRefType() != eRefMode) { if ( nMode == ScFillMode::EMBED_LT ) pView->InitRefMode( aRange.aEnd.Col(), aRange.aEnd.Row(), nTab, eRefMode ); @@ -650,9 +649,9 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll SCCOL nStartX, nEndX; SCROW nStartY, nEndY; // Block SCTAB nDummy; - m_pViewData->GetSimpleArea( nStartX, nStartY, nDummy, nEndX, nEndY, nDummy ); + m_rViewData.GetSimpleArea( nStartX, nStartY, nDummy, nEndX, nEndY, nDummy ); - if (m_pViewData->GetRefType() != SC_REFTYPE_FILL) + if (m_rViewData.GetRefType() != SC_REFTYPE_FILL) { pView->InitRefMode( nStartX, nStartY, nTab, SC_REFTYPE_FILL ); CreateAnchor(); @@ -667,8 +666,8 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll } else // regular selection { - bool bHideCur = m_bAnchor && ( nPosX != m_pViewData->GetCurX() || - nPosY != m_pViewData->GetCurY() ); + bool bHideCur = m_bAnchor && ( nPosX != m_rViewData.GetCurX() || + nPosY != m_rViewData.GetCurY() ); if (bHideCur) pView->HideAllCursors(); // otherwise twice: Block and SetCursor @@ -693,7 +692,7 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll } else { - ScMarkData& rMark = m_pViewData->GetMarkData(); + ScMarkData& rMark = m_rViewData.GetMarkData(); if (rMark.IsMarked() || rMark.IsMultiMarked()) { pView->DoneBlockMode(true); @@ -707,10 +706,10 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll // it highlights that new cell as well as the old cell where the cursor is // positioned prior to the click. A selection mode via Shift-F8 should also // follow the same behavior. - else if ( m_pViewData->IsSelCtrlMouseClick() ) + else if ( m_rViewData.IsSelCtrlMouseClick() ) { - SCCOL nOldX = m_pViewData->GetCurX(); - SCROW nOldY = m_pViewData->GetCurY(); + SCCOL nOldX = m_rViewData.GetCurX(); + SCROW nOldY = m_rViewData.GetCurY(); pView->InitBlockMode( nOldX, nOldY, nTab, true ); pView->MarkCursor( nOldX, nOldY, nTab ); @@ -728,7 +727,7 @@ bool ScViewFunctionSet::SetCursorAtCell( SCCOL nPosX, SCROW nPosY, bool bScroll pView->SetCursor( nPosX, nPosY ); } - m_pViewData->SetRefStart( nPosX, nPosY, nTab ); + m_rViewData.SetRefStart( nPosX, nPosY, nTab ); if (bHideCur) pView->ShowAllCursors(); } @@ -745,16 +744,16 @@ bool ScViewFunctionSet::IsSelectionAtPoint( const Point& rPointPixel ) if (bRefMode) return false; - if (m_pViewData->IsAnyFillMode()) + if (m_rViewData.IsAnyFillMode()) return false; - ScMarkData& rMark = m_pViewData->GetMarkData(); + ScMarkData& rMark = m_rViewData.GetMarkData(); if (m_bAnchor || !rMark.IsMultiMarked()) { SCCOL nPosX; SCROW nPosY; - m_pViewData->GetPosFromPixel( rPointPixel.X(), rPointPixel.Y(), GetWhich(), nPosX, nPosY ); - return m_pViewData->GetMarkData().IsCellMarked( nPosX, nPosY ); + m_rViewData.GetPosFromPixel( rPointPixel.X(), rPointPixel.Y(), GetWhich(), nPosX, nPosY ); + return m_rViewData.GetMarkData().IsCellMarked( nPosX, nPosY ); } return false; @@ -767,18 +766,18 @@ void ScViewFunctionSet::DeselectAtPoint( const Point& /* rPointPixel */ ) void ScViewFunctionSet::DeselectAll() { - if (m_pViewData->IsAnyFillMode()) + if (m_rViewData.IsAnyFillMode()) return; bool bRefMode = ScModule::get()->IsFormulaMode(); if (bRefMode) { - m_pViewData->GetView()->DoneRefMode(); + m_rViewData.GetView()->DoneRefMode(); } else { - m_pViewData->GetView()->DoneBlockMode(); - m_pViewData->GetViewShell()->UpdateInputHandler(); + m_rViewData.GetView()->DoneBlockMode(); + m_rViewData.GetViewShell()->UpdateInputHandler(); } m_bAnchor = false; @@ -794,14 +793,13 @@ ScViewSelectionEngine::ScViewSelectionEngine( vcl::Window* pWindow, ScTabView* p } // column and row headers -ScHeaderFunctionSet::ScHeaderFunctionSet( ScViewData* pNewViewData ) : - pViewData( pNewViewData ), +ScHeaderFunctionSet::ScHeaderFunctionSet( ScViewData& rData ) : + rViewData( rData ), bColumn( false ), eWhich( SC_SPLIT_TOPLEFT ), bAnchor( false ), nCursorPos( 0 ) { - OSL_ENSURE(pViewData, "ViewData==0 at FunctionSet"); } void ScHeaderFunctionSet::SetColumn( bool bSet ) @@ -824,24 +822,24 @@ void ScHeaderFunctionSet::CreateAnchor() if (bAnchor) return; - ScTabView* pView = pViewData->GetView(); + ScTabView* pView = rViewData.GetView(); pView->DoneBlockMode( true ); if (bColumn) { - pView->InitBlockMode( static_cast<SCCOL>(nCursorPos), 0, pViewData->GetTabNo(), true, true ); - pView->MarkCursor( static_cast<SCCOL>(nCursorPos), pViewData->MaxRow(), pViewData->GetTabNo() ); + pView->InitBlockMode( static_cast<SCCOL>(nCursorPos), 0, rViewData.GetTabNo(), true, true ); + pView->MarkCursor( static_cast<SCCOL>(nCursorPos), rViewData.MaxRow(), rViewData.GetTabNo() ); } else { - pView->InitBlockMode( 0, nCursorPos, pViewData->GetTabNo(), true, false, true ); - pView->MarkCursor( pViewData->MaxCol(), nCursorPos, pViewData->GetTabNo() ); + pView->InitBlockMode( 0, nCursorPos, rViewData.GetTabNo(), true, false, true ); + pView->MarkCursor( rViewData.MaxCol(), nCursorPos, rViewData.GetTabNo() ); } bAnchor = true; } void ScHeaderFunctionSet::DestroyAnchor() { - pViewData->GetView()->DoneBlockMode( true ); + rViewData.GetView()->DoneBlockMode( true ); bAnchor = false; } @@ -857,7 +855,7 @@ void ScHeaderFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bD } // Scrolling - Size aWinSize = pViewData->GetActiveWin()->GetOutputSizePixel(); + Size aWinSize = rViewData.GetActiveWin()->GetOutputSizePixel(); bool bScroll; if (bColumn) bScroll = ( rPointPixel.X() < 0 || rPointPixel.X() >= aWinSize.Width() ); @@ -868,18 +866,18 @@ void ScHeaderFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bD bool bSwitched = false; if ( bColumn ) { - if ( pViewData->GetHSplitMode() == SC_SPLIT_FIX ) + if ( rViewData.GetHSplitMode() == SC_SPLIT_FIX ) { if ( rPointPixel.X() > aWinSize.Width() ) { if ( eWhich == SC_SPLIT_TOPLEFT ) { - pViewData->GetView()->ActivatePart( SC_SPLIT_TOPRIGHT ); + rViewData.GetView()->ActivatePart( SC_SPLIT_TOPRIGHT ); bSwitched = true; } else if ( eWhich == SC_SPLIT_BOTTOMLEFT ) { - pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); + rViewData.GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); bSwitched = true; } } @@ -887,18 +885,18 @@ void ScHeaderFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bD } else // column headers { - if ( pViewData->GetVSplitMode() == SC_SPLIT_FIX ) + if ( rViewData.GetVSplitMode() == SC_SPLIT_FIX ) { if ( rPointPixel.Y() > aWinSize.Height() ) { if ( eWhich == SC_SPLIT_TOPLEFT ) { - pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMLEFT ); + rViewData.GetView()->ActivatePart( SC_SPLIT_BOTTOMLEFT ); bSwitched = true; } else if ( eWhich == SC_SPLIT_TOPRIGHT ) { - pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); + rViewData.GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT ); bSwitched = true; } } @@ -913,22 +911,22 @@ void ScHeaderFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bD SCCOL nPosX; SCROW nPosY; - pViewData->GetPosFromPixel( rPointPixel.X(), rPointPixel.Y(), pViewData->GetActivePart(), + rViewData.GetPosFromPixel( rPointPixel.X(), rPointPixel.Y(), rViewData.GetActivePart(), nPosX, nPosY, false ); if (bColumn) { nCursorPos = static_cast<SCCOLROW>(nPosX); - nPosY = pViewData->GetPosY(WhichV(pViewData->GetActivePart())); + nPosY = rViewData.GetPosY(WhichV(rViewData.GetActivePart())); } else { nCursorPos = static_cast<SCCOLROW>(nPosY); - nPosX = pViewData->GetPosX(WhichH(pViewData->GetActivePart())); + nPosX = rViewData.GetPosX(WhichH(rViewData.GetActivePart())); } - ScTabView* pView = pViewData->GetView(); - bool bHide = pViewData->GetCurX() != nPosX || - pViewData->GetCurY() != nPosY; + ScTabView* pView = rViewData.GetView(); + bool bHide = rViewData.GetCurX() != nPosX || + rViewData.GetCurY() != nPosY; if (bHide) pView->HideAllCursors(); @@ -939,13 +937,13 @@ void ScHeaderFunctionSet::SetCursorAtPoint( const Point& rPointPixel, bool /* bD if ( !bAnchor || !pView->IsBlockMode() ) { pView->DoneBlockMode( true ); - pViewData->GetMarkData().MarkToMulti(); //! who changes this? - pView->InitBlockMode( nPosX, nPosY, pViewData->GetTabNo(), true, bColumn, !bColumn ); + rViewData.GetMarkData().MarkToMulti(); //! who changes this? + pView->InitBlockMode( nPosX, nPosY, rViewData.GetTabNo(), true, bColumn, !bColumn ); bAnchor = true; } - pView->MarkCursor( nPosX, nPosY, pViewData->GetTabNo(), bColumn, !bColumn ); + pView->MarkCursor( nPosX, nPosY, rViewData.GetTabNo(), bColumn, !bColumn ); // SelectionChanged inside of HideCursor because of UpdateAutoFillMark pView->SelectionChanged(); @@ -958,10 +956,10 @@ bool ScHeaderFunctionSet::IsSelectionAtPoint( const Point& rPointPixel ) { SCCOL nPosX; SCROW nPosY; - pViewData->GetPosFromPixel( rPointPixel.X(), rPointPixel.Y(), pViewData->GetActivePart(), + rViewData.GetPosFromPixel( rPointPixel.X(), rPointPixel.Y(), rViewData.GetActivePart(), nPosX, nPosY, false ); - ScMarkData& rMark = pViewData->GetMarkData(); + ScMarkData& rMark = rViewData.GetMarkData(); if (bColumn) return rMark.IsColumnMarked( nPosX ); else @@ -974,7 +972,7 @@ void ScHeaderFunctionSet::DeselectAtPoint( const Point& /* rPointPixel */ ) void ScHeaderFunctionSet::DeselectAll() { - pViewData->GetView()->DoneBlockMode(); + rViewData.GetView()->DoneBlockMode(); bAnchor = false; } diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx index ebe61fa63938..46d6a8f2efe3 100644 --- a/sc/source/ui/view/tabview.cxx +++ b/sc/source/ui/view/tabview.cxx @@ -177,8 +177,8 @@ bool lcl_HasRowOutline( const ScViewData& rViewData ) ScTabView::ScTabView( vcl::Window* pParent, ScDocShell& rDocSh, ScTabViewShell* pViewShell ) : pFrameWin( pParent ), aViewData( rDocSh, pViewShell ), - aFunctionSet( &aViewData ), - aHdrFunc( &aViewData ), + aFunctionSet( aViewData ), + aHdrFunc( aViewData ), aVScrollTop( VclPtr<ScrollAdaptor>::Create( pFrameWin, false ) ), aVScrollBottom( VclPtr<ScrollAdaptor>::Create( pFrameWin, false ) ), aHScrollLeft( VclPtr<ScrollAdaptor>::Create( pFrameWin, true ) ),