sc/source/ui/Accessibility/AccessibleDocument.cxx | 4 +- sc/source/ui/drawfunc/drawsh.cxx | 17 +++++++----- sc/source/ui/drawfunc/drawsh2.cxx | 5 ++- sc/source/ui/drawfunc/drawsh5.cxx | 10 ++++--- sc/source/ui/drawfunc/fuconstr.cxx | 12 ++++---- sc/source/ui/drawfunc/fudraw.cxx | 31 +++++++++------------- sc/source/ui/drawfunc/fuins1.cxx | 5 ++- sc/source/ui/drawfunc/fupoor.cxx | 4 +- sc/source/ui/drawfunc/fusel.cxx | 14 ++++----- sc/source/ui/drawfunc/futext.cxx | 15 ++++------ sc/source/ui/drawfunc/graphsh.cxx | 8 ++--- sc/source/ui/view/cliputil.cxx | 12 +++++--- sc/source/ui/view/drawvie3.cxx | 24 ++++++++--------- sc/source/ui/view/drawvie4.cxx | 4 +- sc/source/ui/view/drawview.cxx | 13 ++++----- sc/source/ui/view/gridwin.cxx | 5 ++- sc/source/ui/view/gridwin3.cxx | 8 +++-- sc/source/ui/view/tabvwsh2.cxx | 9 +++--- sc/source/ui/view/tabvwshb.cxx | 20 +++++++------- sc/source/ui/view/viewfun7.cxx | 8 ++--- 20 files changed, 122 insertions(+), 106 deletions(-)
New commits: commit 049dd8300b1b5f97612e18ec2ef893645a38b9fa Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri May 31 10:12:33 2024 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri May 31 13:57:49 2024 +0200 sc: Reduce number of calls to GetMarkedObjectList() From 152 to 102 Change-Id: I43907965e5b1ef0819495d6a1e7b18597a1b5947 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168283 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx index 12b8d8c88014..94909b4fa21f 100644 --- a/sc/source/ui/Accessibility/AccessibleDocument.cxx +++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx @@ -1007,9 +1007,9 @@ bool ScChildrenShapes::FindSelectedShapesChanges(const uno::Reference<drawing::X ScDrawView* pScDrawView = mpViewShell->GetViewData().GetScDrawView(); if( pScDrawView ) { - if( pScDrawView->GetMarkedObjectList().GetMarkCount() == 1 ) + pMarkList = &(pScDrawView->GetMarkedObjectList()); + if( pMarkList->GetMarkCount() == 1 ) { - pMarkList = &(pScDrawView->GetMarkedObjectList()); pMarkedObj = pMarkList->GetMark(0)->GetMarkedSdrObj(); uno::Reference< drawing::XShape > xMarkedXShape (pMarkedObj->getUnoShape(), uno::UNO_QUERY); if( aFocusedItr != aDataEndItr && diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx index 68f277a1756c..2e11d3817ee5 100644 --- a/sc/source/ui/drawfunc/drawsh.cxx +++ b/sc/source/ui/drawfunc/drawsh.cxx @@ -255,7 +255,7 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq ) } - if( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + if( rMarkList.GetMarkCount() != 0 ) { std::unique_ptr<SfxItemSet> pNewArgs = rReq.GetArgs()->Clone(); lcl_convertStringArguments(*pNewArgs); @@ -327,7 +327,7 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq ) case SID_ATTR_TRANSFORM: { - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + if ( rMarkList.GetMarkCount() != 0 ) { const SfxItemSet* pArgs = rReq.GetArgs(); @@ -476,9 +476,9 @@ void ScDrawShell::ExecuteMacroAssign(SdrObject* pObj, weld::Window* pWin) void ScDrawShell::ExecuteLineDlg( const SfxRequest& rReq ) { ScDrawView* pView = rViewData.GetScDrawView(); - bool bHasMarked = pView->GetMarkedObjectList().GetMarkCount() != 0; + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + bool bHasMarked = rMarkList.GetMarkCount() != 0; const SdrObject* pObj = nullptr; - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); std::shared_ptr<SfxRequest> xRequest = std::make_shared<SfxRequest>(rReq); @@ -514,7 +514,8 @@ void ScDrawShell::ExecuteLineDlg( const SfxRequest& rReq ) void ScDrawShell::ExecuteAreaDlg( const SfxRequest& rReq ) { ScDrawView* pView = rViewData.GetScDrawView(); - bool bHasMarked = pView->GetMarkedObjectList().GetMarkCount() != 0; + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + bool bHasMarked = rMarkList.GetMarkCount() != 0; std::shared_ptr<SfxRequest> xRequest = std::make_shared<SfxRequest>(rReq); @@ -546,7 +547,8 @@ void ScDrawShell::ExecuteAreaDlg( const SfxRequest& rReq ) void ScDrawShell::ExecuteTextAttrDlg( SfxRequest& rReq ) { ScDrawView* pView = rViewData.GetScDrawView(); - bool bHasMarked = pView->GetMarkedObjectList().GetMarkCount() != 0; + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + bool bHasMarked = rMarkList.GetMarkCount() != 0; SfxItemSet aNewAttr ( pView->GetDefaultAttr() ); if( bHasMarked ) @@ -573,7 +575,8 @@ void ScDrawShell::ExecuteTextAttrDlg( SfxRequest& rReq ) void ScDrawShell::ExecuteMeasureDlg( SfxRequest& rReq ) { ScDrawView* pView = rViewData.GetScDrawView(); - bool bHasMarked = pView->GetMarkedObjectList().GetMarkCount() != 0; + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + bool bHasMarked = rMarkList.GetMarkCount() != 0; SfxItemSet aNewAttr ( pView->GetDefaultAttr() ); if( bHasMarked ) diff --git a/sc/source/ui/drawfunc/drawsh2.cxx b/sc/source/ui/drawfunc/drawsh2.cxx index e8d7b233d743..fddc50fe5c13 100644 --- a/sc/source/ui/drawfunc/drawsh2.cxx +++ b/sc/source/ui/drawfunc/drawsh2.cxx @@ -392,7 +392,8 @@ void ScDrawShell::GetDrawAttrState( SfxItemSet& rSet ) vcl::Window* pWindow = rViewData.GetActiveWin(); ScDrawView* pDrView = rViewData.GetScDrawView(); Point aPos = pWindow->PixelToLogic(aMousePos); - bool bHasMarked = pDrView->GetMarkedObjectList().GetMarkCount() != 0; + const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); + bool bHasMarked = rMarkList.GetMarkCount() != 0; if( bHasMarked ) { @@ -448,7 +449,7 @@ void ScDrawShell::GetDrawAttrState( SfxItemSet& rSet ) if ( bActionItem ) return; - if ( pDrView->GetMarkedObjectList().GetMarkCount() != 0 ) // selected objects + if ( rMarkList.GetMarkCount() != 0 ) // selected objects { tools::Rectangle aRect = pDrView->GetAllMarkedRect(); pPV->LogicToPagePos(aRect); diff --git a/sc/source/ui/drawfunc/drawsh5.cxx b/sc/source/ui/drawfunc/drawsh5.cxx index acf843dc3692..b3f344730aba 100644 --- a/sc/source/ui/drawfunc/drawsh5.cxx +++ b/sc/source/ui/drawfunc/drawsh5.cxx @@ -506,10 +506,11 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq ) case SID_RENAME_OBJECT: { - if(1 == pView->GetMarkedObjectList().GetMarkCount()) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if(1 == rMarkList.GetMarkCount()) { // #i68101# - SdrObject* pSelected = pView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pSelected = rMarkList.GetMark(0)->GetMarkedSdrObj(); assert(pSelected && "ScDrawShell::ExecDrawFunc: nMarkCount, but no object (!)"); if(SC_LAYER_INTERN != pSelected->GetLayer()) @@ -580,9 +581,10 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq ) // #i68101# case SID_TITLE_DESCRIPTION_OBJECT: { - if(1 == pView->GetMarkedObjectList().GetMarkCount()) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if(1 == rMarkList.GetMarkCount()) { - SdrObject* pSelected = pView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pSelected = rMarkList.GetMark(0)->GetMarkedSdrObj(); assert(pSelected && "ScDrawShell::ExecDrawFunc: nMarkCount, but no object (!)"); if(SC_LAYER_INTERN != pSelected->GetLayer()) diff --git a/sc/source/ui/drawfunc/fuconstr.cxx b/sc/source/ui/drawfunc/fuconstr.cxx index 2f3122dfba5c..717bb3db7a5c 100644 --- a/sc/source/ui/drawfunc/fuconstr.cxx +++ b/sc/source/ui/drawfunc/fuconstr.cxx @@ -66,12 +66,13 @@ bool FuConstruct::MouseButtonDown(const MouseEvent& rMEvt) SdrHdl* pHdl = pView->PickHandle(aMDPos); + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if ( pHdl != nullptr || pView->IsMarkedHit(aMDPos) ) { pView->BegDragObj(aMDPos, nullptr, pHdl, 1); bReturn = true; } - else if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + else if ( rMarkList.GetMarkCount() != 0 ) { pView->UnmarkAll(); bReturn = true; @@ -136,9 +137,9 @@ bool FuConstruct::MouseButtonUp(const MouseEvent& rMEvt) sal_uInt16 nClicks = rMEvt.GetClicks(); if ( nClicks == 2 && rMEvt.IsLeft() ) { - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); @@ -199,12 +200,13 @@ bool FuConstruct::SimpleMouseButtonUp(const MouseEvent& rMEvt) { pWindow->ReleaseMouse(); - if ( pView->GetMarkedObjectList().GetMarkCount() == 0 && rMEvt.GetClicks() < 2 ) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() == 0 && rMEvt.GetClicks() < 2 ) { pView->MarkObj(aPnt, -2, false, rMEvt.IsMod1()); SfxDispatcher& rDisp = rViewShell.GetViewData().GetDispatcher(); - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + if ( rMarkList.GetMarkCount() != 0 ) rDisp.Execute(SID_OBJECT_SELECT, SfxCallMode::SLOT | SfxCallMode::RECORD); else rDisp.Execute(aSfxRequest.GetSlot(), SfxCallMode::SLOT | SfxCallMode::RECORD); diff --git a/sc/source/ui/drawfunc/fudraw.cxx b/sc/source/ui/drawfunc/fudraw.cxx index 4e79d513b9f8..1e0c0e5f8ad5 100644 --- a/sc/source/ui/drawfunc/fudraw.cxx +++ b/sc/source/ui/drawfunc/fudraw.cxx @@ -193,6 +193,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) bool bReturn = false; ScViewData& rViewData = rViewShell.GetViewData(); + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); switch ( rKEvt.GetKeyCode().GetCode() ) { case KEY_ESCAPE: @@ -209,7 +210,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) rViewData.GetDispatcher().Execute(SID_OBJECT_SELECT, SfxCallMode::SLOT | SfxCallMode::RECORD); bReturn = true; } - else if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + else if ( rMarkList.GetMarkCount() != 0 ) { // III SdrHdlList& rHdlList = const_cast< SdrHdlList& >( pView->GetHdlList() ); @@ -219,7 +220,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) pView->UnmarkAll(); // while bezier editing, object is selected - if (pView->GetMarkedObjectList().GetMarkCount() == 0) + if (rMarkList.GetMarkCount() == 0) rViewShell.SetDrawShell( false ); bReturn = true; @@ -237,7 +238,6 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) { // activate OLE object on RETURN for selected object // put selected text object in edit mode - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if( !pView->IsTextEdit() && 1 == rMarkList.GetMarkCount() ) { bool bOle = rViewShell.GetViewFrame().GetFrame().IsInPlace(); @@ -263,7 +263,6 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) { // put selected text object in edit mode // (this is not SID_SETINPUTMODE, but F2 hardcoded, like in Writer) - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if( !pView->IsTextEdit() && 1 == rMarkList.GetMarkCount() ) { SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj(); @@ -287,7 +286,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) { // in calc do NOT start draw object selection using TAB/SHIFT-TAB when // there is not yet an object selected - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) { vcl::KeyCode aCode = rKEvt.GetKeyCode(); @@ -307,7 +306,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) } // II - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) pView->MakeVisible(pView->GetAllMarkedRect(), *pWindow); bReturn = true; @@ -343,7 +342,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) { // in calc do NOT select the last draw object when // there is not yet an object selected - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) { vcl::KeyCode aCode = rKEvt.GetKeyCode(); @@ -354,7 +353,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) pView->MarkNextObj(); // II - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) pView->MakeVisible(pView->GetAllMarkedRect(), *pWindow); bReturn = true; @@ -367,7 +366,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) { // in calc do NOT select the first draw object when // there is not yet an object selected - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) { vcl::KeyCode aCode = rKEvt.GetKeyCode(); @@ -378,7 +377,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) pView->MarkNextObj(true); // II - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) pView->MakeVisible(pView->GetAllMarkedRect(), *pWindow); bReturn = true; @@ -394,10 +393,9 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) { // in calc do cursor travelling of draw objects only when // there is an object selected yet - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) { - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if(rMarkList.GetMarkCount() == 1) { // disable cursor travelling on note objects as the tail connector position @@ -562,7 +560,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) case KEY_SPACE: { // in calc do only something when draw objects are selected - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) { const SdrHdlList& rHdlList = pView->GetHdlList(); SdrHdl* pHdl = rHdlList.GetFocusHdl(); @@ -633,7 +631,6 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) { // allow direct typing into a selected text object - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if( !pView->IsTextEdit() && 1 == rMarkList.GetMarkCount() && EditEngine::IsSimpleCharInput(rKEvt) ) { SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj(); @@ -748,10 +745,10 @@ bool FuDraw::IsSizingOrMovingNote( const MouseEvent& rMEvt ) const bool bIsSizingOrMoving = false; if ( rMEvt.IsLeft() ) { - const SdrMarkList& rNoteMarkList = pView->GetMarkedObjectList(); - if(rNoteMarkList.GetMarkCount() == 1) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if(rMarkList.GetMarkCount() == 1) { - SdrObject* pObj = rNoteMarkList.GetMark( 0 )->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj(); if ( ScDrawLayer::IsNoteCaption( pObj ) ) { Point aMPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() ); diff --git a/sc/source/ui/drawfunc/fuins1.cxx b/sc/source/ui/drawfunc/fuins1.cxx index d58eb090b384..aa51747f864f 100644 --- a/sc/source/ui/drawfunc/fuins1.cxx +++ b/sc/source/ui/drawfunc/fuins1.cxx @@ -125,13 +125,14 @@ static void lcl_InsertGraphic( const Graphic& rGraphic, } } ScDrawView* pDrawView = rViewSh.GetScDrawView(); + const SdrMarkList& rMarkList = pDrawView->GetMarkedObjectList(); // #i123922# check if an existing object is selected; if yes, evtl. replace // the graphic for a SdrGraphObj (including link state updates) or adapt the fill // style for other objects - if(pDrawView && 1 == pDrawView->GetMarkedObjectList().GetMarkCount()) + if(pDrawView && 1 == rMarkList.GetMarkCount()) { - SdrObject* pPickObj = pDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if(pPickObj) { diff --git a/sc/source/ui/drawfunc/fupoor.cxx b/sc/source/ui/drawfunc/fupoor.cxx index 2f20077809b9..93b0e47ce010 100644 --- a/sc/source/ui/drawfunc/fupoor.cxx +++ b/sc/source/ui/drawfunc/fupoor.cxx @@ -251,9 +251,9 @@ bool FuPoor::doConstructOrthogonal() const } // Detect image/media and resize proportionally, but don't constrain movement by default - if (pView->GetMarkedObjectList().GetMarkCount() != 0) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() != 0) { - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { SdrObjKind aObjIdentifier = rMarkList.GetMark(0)->GetMarkedSdrObj()->GetObjIdentifier(); diff --git a/sc/source/ui/drawfunc/fusel.cxx b/sc/source/ui/drawfunc/fusel.cxx index a98ad29abe47..a88acf7b3fc0 100644 --- a/sc/source/ui/drawfunc/fusel.cxx +++ b/sc/source/ui/drawfunc/fusel.cxx @@ -376,11 +376,11 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt) } if ( pView ) { - const SdrMarkList& rSdrMarkList = pView->GetMarkedObjectList(); - const size_t nMarkCount = rSdrMarkList.GetMarkCount(); + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + const size_t nMarkCount = rMarkList.GetMarkCount(); for ( size_t i = 0; i < nMarkCount; ++i ) { - SdrMark* pMark = rSdrMarkList.GetMark( i ); + SdrMark* pMark = rMarkList.GetMark( i ); pObj = ( pMark ? pMark->GetMarkedSdrObj() : nullptr ); if ( pObj ) { @@ -416,13 +416,13 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt) // unlock internal layer to include note captions pView->UnlockInternalLayer(); pView->EndAction(); - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { bReturn = true; /* if multi-selection contains a note caption object, remove all other objects from selection. */ - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); const size_t nCount = rMarkList.GetMarkCount(); if( nCount > 1 ) { @@ -464,9 +464,9 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt) sal_uInt16 nClicks = rMEvt.GetClicks(); if (pView && nClicks == 2 && rMEvt.IsLeft()) { - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); diff --git a/sc/source/ui/drawfunc/futext.cxx b/sc/source/ui/drawfunc/futext.cxx index 9256c0a5dc49..9125e5f60b4a 100644 --- a/sc/source/ui/drawfunc/futext.cxx +++ b/sc/source/ui/drawfunc/futext.cxx @@ -377,6 +377,7 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt) if ( pView->MouseButtonUp(rMEvt, pWindow->GetOutDev()) ) return true; // Event evaluated by SdrView + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if ( pView->IsDragObj() ) { pView->EndDragObj( rMEvt.IsShift() ); @@ -390,7 +391,6 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt) if (aSfxRequest.GetSlot() == SID_DRAW_TEXT_MARQUEE) { // create marquee-object? - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if (rMarkList.GetMark(0)) { SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -414,7 +414,6 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt) bool bVertical = (SID_DRAW_TEXT_VERTICAL == nSlotID); if(bVertical) { - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if(rMarkList.GetMark(0)) { SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -437,12 +436,12 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt) SetInEditMode(); // leave mode when sole click (-> fuconstr) - if ( pView->GetMarkedObjectList().GetMarkCount() == 0 ) + if ( rMarkList.GetMarkCount() == 0 ) { pView->MarkObj(aPnt, -2, false, rMEvt.IsMod1()); SfxDispatcher& rDisp = rViewShell.GetViewData().GetDispatcher(); - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + if ( rMarkList.GetMarkCount() != 0 ) rDisp.Execute(SID_OBJECT_SELECT, SfxCallMode::SLOT | SfxCallMode::RECORD); else rDisp.Execute(aSfxRequest.GetSlot(), SfxCallMode::SLOT | SfxCallMode::RECORD); @@ -457,12 +456,12 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt) { pWindow->ReleaseMouse(); - if ( pView->GetMarkedObjectList().GetMarkCount() == 0 && rMEvt.GetClicks() < 2 ) + if ( rMarkList.GetMarkCount() == 0 && rMEvt.GetClicks() < 2 ) { pView->MarkObj(aPnt, -2, false, rMEvt.IsMod1()); SfxDispatcher& rDisp = rViewShell.GetViewData().GetDispatcher(); - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + if ( rMarkList.GetMarkCount() != 0 ) rDisp.Execute(SID_OBJECT_SELECT, SfxCallMode::SLOT | SfxCallMode::RECORD); else rDisp.Execute(aSfxRequest.GetSlot(), SfxCallMode::SLOT | SfxCallMode::RECORD); @@ -541,9 +540,9 @@ void FuText::SetInEditMode(SdrObject* pObj, const Point* pMousePixel, if ( pObj && (pObj->GetLayer() == SC_LAYER_INTERN) ) pView->UnlockInternalLayer(); - if ( !pObj && pView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if ( !pObj && rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); diff --git a/sc/source/ui/drawfunc/graphsh.cxx b/sc/source/ui/drawfunc/graphsh.cxx index f3061927aaea..05fac4b1a04f 100644 --- a/sc/source/ui/drawfunc/graphsh.cxx +++ b/sc/source/ui/drawfunc/graphsh.cxx @@ -112,12 +112,12 @@ void ScGraphicShell::ExecuteFilter( const SfxRequest& rReq ) if( pGraphicObj->GetGraphicType() == GraphicType::Bitmap ) { SvxGraphicFilter::ExecuteGrfFilterSlot( rReq, pGraphicObj->GetGraphicObject(), - [pView, pGraphicObj, pObj] (GraphicObject aFilterObj) -> void + [pView, pGraphicObj, pObj, rMarkList] (GraphicObject aFilterObj) -> void { if( SdrPageView* pPageView = pView->GetSdrPageView() ) { rtl::Reference<SdrGrafObj> pFilteredObj = SdrObject::Clone(*pGraphicObj, pGraphicObj->getSdrModelFromSdrObject()); - OUString aStr = pView->GetMarkedObjectList().GetMarkDescription() + " " + ScResId(SCSTR_UNDO_GRAFFILTER); + OUString aStr = rMarkList.GetMarkDescription() + " " + ScResId(SCSTR_UNDO_GRAFFILTER); pView->BegUndo( aStr ); pFilteredObj->SetGraphicObject( aFilterObj ); pView->ReplaceObjectAtView( pObj, *pPageView, pFilteredObj.get() ); @@ -208,7 +208,7 @@ void ScGraphicShell::ExecuteCompressGraphic( SAL_UNUSED_PARAMETER SfxRequest& ) { rtl::Reference<SdrGrafObj> pNewObject = dialog.GetCompressedSdrGrafObj(); SdrPageView* pPageView = pView->GetSdrPageView(); - OUString aUndoString = pView->GetMarkedObjectList().GetMarkDescription() + " Compress"; + OUString aUndoString = rMarkList.GetMarkDescription() + " Compress"; pView->BegUndo( aUndoString ); pView->ReplaceObjectAtView( pObj, *pPageView, pNewObject.get() ); pView->EndUndo(); @@ -342,7 +342,7 @@ void ScGraphicShell::ExecuteChangePicture( SAL_UNUSED_PARAMETER SfxRequest& /*rR rtl::Reference<SdrGrafObj> pNewObject(SdrObject::Clone(*pGraphicObj, pGraphicObj->getSdrModelFromSdrObject())); pNewObject->SetGraphic( aGraphic ); SdrPageView* pPageView = pView->GetSdrPageView(); - OUString aUndoString = pView->GetMarkedObjectList().GetMarkDescription() + " Change"; + OUString aUndoString = rMarkList.GetMarkDescription() + " Change"; pView->BegUndo( aUndoString ); pView->ReplaceObjectAtView( pObj, *pPageView, pNewObject.get() ); pView->EndUndo(); diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx index ec507c91c3a4..3c83c0066e70 100644 --- a/sc/source/ui/view/cliputil.cxx +++ b/sc/source/ui/view/cliputil.cxx @@ -85,12 +85,16 @@ void ScClipUtil::PasteFromClipboard( ScViewData& rViewData, ScTabViewShell* pTab pTabViewShell->PasteFromSystem(); // Anchor To Cell rather than To Page ScDrawView* pDrawView = pTabViewShell->GetScDrawView(); - if(pDrawView && 1 == pDrawView->GetMarkedObjectList().GetMarkCount()) + if(pDrawView) { - SdrObject* pPickObj = pDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); - if(pPickObj) + const SdrMarkList& rMarkList = pDrawView->GetMarkedObjectList(); + if (1 == rMarkList.GetMarkCount()) { - ScDrawLayer::SetCellAnchoredFromPosition( *pPickObj, rThisDoc, nThisTab, false ); + SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); + if(pPickObj) + { + ScDrawLayer::SetCellAnchoredFromPosition( *pPickObj, rThisDoc, nThisTab, false ); + } } } } diff --git a/sc/source/ui/view/drawvie3.cxx b/sc/source/ui/view/drawvie3.cxx index bb90c2a1c819..dfb77ccc9fd0 100644 --- a/sc/source/ui/view/drawvie3.cxx +++ b/sc/source/ui/view/drawvie3.cxx @@ -64,16 +64,16 @@ ScDrawView::ScDrawView( void ScDrawView::SetPageAnchored() { - if( GetMarkedObjectList().GetMarkCount() == 0 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if( rMarkList.GetMarkCount() == 0 ) return; - const SdrMarkList* pMark = &GetMarkedObjectList(); - const size_t nCount = pMark->GetMarkCount(); + const size_t nCount = rMarkList.GetMarkCount(); BegUndo(ScResId(SCSTR_UNDO_PAGE_ANCHOR)); for( size_t i=0; i<nCount; ++i ) { - SdrObject* pObj = pMark->GetMark(i)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); AddUndo (std::make_unique<ScUndoAnchorData>( pObj, &rDoc, nTab )); ScDrawLayer::SetPageAnchored( *pObj ); } @@ -89,16 +89,16 @@ void ScDrawView::SetPageAnchored() void ScDrawView::SetCellAnchored(bool bResizeWithCell) { - if( GetMarkedObjectList().GetMarkCount() == 0 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if( rMarkList.GetMarkCount() == 0 ) return; - const SdrMarkList* pMark = &GetMarkedObjectList(); - const size_t nCount = pMark->GetMarkCount(); + const size_t nCount = rMarkList.GetMarkCount(); BegUndo(ScResId(SCSTR_UNDO_CELL_ANCHOR)); for( size_t i=0; i<nCount; ++i ) { - SdrObject* pObj = pMark->GetMark(i)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); AddUndo (std::make_unique<ScUndoAnchorData>( pObj, &rDoc, nTab )); ScDrawLayer::SetCellAnchoredFromPosition(*pObj, rDoc, nTab, bResizeWithCell); } @@ -118,13 +118,13 @@ ScAnchorType ScDrawView::GetAnchorType() const bool bPage = false; bool bCell = false; bool bCellResize = false; - if( GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList* pMark = &GetMarkedObjectList(); - const size_t nCount = pMark->GetMarkCount(); + const size_t nCount = rMarkList.GetMarkCount(); for( size_t i=0; i<nCount; ++i ) { - const SdrObject* pObj = pMark->GetMark(i)->GetMarkedSdrObj(); + const SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); const ScAnchorType aAnchorType = ScDrawLayer::GetAnchorType( *pObj ); if( aAnchorType == SCA_CELL ) bCell =true; diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx index 8e2b55b9ca7d..0d36c294a51b 100644 --- a/sc/source/ui/view/drawvie4.cxx +++ b/sc/source/ui/view/drawvie4.cxx @@ -57,7 +57,8 @@ Point aDragStartDiff; void ScDrawView::BeginDrag( vcl::Window* pWindow, const Point& rStartPos ) { - if ( GetMarkedObjectList().GetMarkCount() == 0 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() == 0 ) return; BrkAction(); @@ -67,7 +68,6 @@ void ScDrawView::BeginDrag( vcl::Window* pWindow, const Point& rStartPos ) aDragStartDiff = rStartPos - aMarkedRect.TopLeft(); bool bAnyOle, bOneOle; - const SdrMarkList& rMarkList = GetMarkedObjectList(); CheckOle( rMarkList, bAnyOle, bOneOle ); ScDocShellRef aDragShellRef; diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx index 26949721cd34..1c96d86facf0 100644 --- a/sc/source/ui/view/drawview.cxx +++ b/sc/source/ui/view/drawview.cxx @@ -137,11 +137,11 @@ ScDrawView::~ScDrawView() void ScDrawView::AddCustomHdl() { - const SdrMarkList &rMrkList = GetMarkedObjectList(); - const size_t nCount = rMrkList.GetMarkCount(); + const SdrMarkList &rMarkList = GetMarkedObjectList(); + const size_t nCount = rMarkList.GetMarkCount(); for(size_t nPos=0; nPos<nCount; ++nPos ) { - SdrObject* pObj = rMrkList.GetMark(nPos)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(nPos)->GetMarkedSdrObj(); if (ScDrawObjData *pAnchor = ScDrawLayer::GetObjDataTab(pObj, nTab)) { if (ScTabView* pView = pViewData->GetView()) @@ -211,7 +211,8 @@ void ScDrawView::InvalidateDrawTextAttrs() void ScDrawView::SetMarkedToLayer( SdrLayerID nLayerNo ) { - if (GetMarkedObjectList().GetMarkCount() == 0) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (rMarkList.GetMarkCount() == 0) return; // #i11702# use SdrUndoObjectLayerChange for undo @@ -357,9 +358,10 @@ void ScDrawView::MarkListHasChanged() FmFormView::MarkListHasChanged(); ScTabViewShell* pViewSh = pViewData->GetViewShell(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); // #i110829# remove the cell selection only if drawing objects are selected - if ( !bInConstruct && GetMarkedObjectList().GetMarkCount() ) + if ( !bInConstruct && rMarkList.GetMarkCount() ) { pViewSh->Unmark(); // remove cell selection @@ -385,7 +387,6 @@ void ScDrawView::MarkListHasChanged() SdrOle2Obj* pOle2Obj = nullptr; SdrGrafObj* pGrafObj = nullptr; - const SdrMarkList& rMarkList = GetMarkedObjectList(); const size_t nMarkCount = rMarkList.GetMarkCount(); if ( nMarkCount == 0 && !pViewData->GetViewShell()->IsDrawSelMode() && !bInConstruct ) diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index f1141dc3d8ab..9777f1bff331 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -4953,10 +4953,11 @@ void ScGridWindow::PasteSelection( const Point& rPosPixel ) SdrView* pDrawView = mrViewData.GetViewShell()->GetScDrawView(); if (pDrawView) { - const size_t nCount = pDrawView->GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = pDrawView->GetMarkedObjectList(); + const size_t nCount = rMarkList.GetMarkCount(); for (size_t i = 0; i < nCount; ++i) { - SdrObject* pObj = pDrawView->GetMarkedObjectList().GetMark(i)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); if (pObj && pObj->GetLogicRect().Contains(aLogicPos)) { // Inside an active drawing object. Bail out. diff --git a/sc/source/ui/view/gridwin3.cxx b/sc/source/ui/view/gridwin3.cxx index b0a8c0e3628b..c0aa97ded4c6 100644 --- a/sc/source/ui/view/gridwin3.cxx +++ b/sc/source/ui/view/gridwin3.cxx @@ -180,12 +180,13 @@ bool ScGridWindow::DrawKeyInput(const KeyEvent& rKEvt, vcl::Window* pWin) if (pDrView && pDraw && !mrViewData.IsRefMode()) { pDraw->SetWindow( this ); - bool bOldMarked = pDrView->GetMarkedObjectList().GetMarkCount() != 0; + const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); + bool bOldMarked = rMarkList.GetMarkCount() != 0; if (pDraw->KeyInput( rKEvt )) { bool bLeaveDraw = false; bool bUsed = true; - bool bNewMarked = pDrView->GetMarkedObjectList().GetMarkCount() != 0; + bool bNewMarked = rMarkList.GetMarkCount() != 0; if ( !mrViewData.GetView()->IsDrawSelMode() ) if ( !bNewMarked ) { @@ -363,7 +364,8 @@ void ScGridWindow::UpdateStatusPosSize() } if ( !bActionItem ) { - if ( pDrView->GetMarkedObjectList().GetMarkCount() != 0 ) // selected objects + const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) // selected objects { tools::Rectangle aRect = pDrView->GetAllMarkedRect(); pPV->LogicToPagePos(aRect); diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx index 593507098f07..8ff41cc374bd 100644 --- a/sc/source/ui/view/tabvwsh2.cxx +++ b/sc/source/ui/view/tabvwsh2.cxx @@ -163,17 +163,18 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq) pView->LockBackgroundLayer( !bEx ); + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if ( bSelectFirst ) { // select first draw object if none is selected yet - if(pView->GetMarkedObjectList().GetMarkCount() == 0) + if(rMarkList.GetMarkCount() == 0) { // select first object pView->UnmarkAllObj(); pView->MarkNextObj(true); // ...and make it visible - if(pView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) pView->MakeVisible(pView->GetAllMarkedRect(), *pWin); } } @@ -186,7 +187,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq) SetDrawTextShell(true); else { - if (bEx || pView->GetMarkedObjectList().GetMarkCount() != 0) + if (bEx || rMarkList.GetMarkCount() != 0) SetDrawShellOrSub(); else SetDrawShell(false); @@ -214,7 +215,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq) { case SID_OBJECT_SELECT: // not always switch back - if(pView->GetMarkedObjectList().GetMarkCount() == 0) SetDrawShell(bEx); + if(rMarkList.GetMarkCount() == 0) SetDrawShell(bEx); pTabView->SetDrawFuncPtr(new FuSelection(*this, pWin, pView, &rModel, aNewReq)); break; diff --git a/sc/source/ui/view/tabvwshb.cxx b/sc/source/ui/view/tabvwshb.cxx index 08400cdce9eb..9bd0ab29d47e 100644 --- a/sc/source/ui/view/tabvwshb.cxx +++ b/sc/source/ui/view/tabvwshb.cxx @@ -497,10 +497,9 @@ void ScTabViewShell::ExecDrawIns(SfxRequest& rReq) const SfxRectangleItem& rRect = rReq.GetArgs()->Get(SID_OBJECTRESIZE); tools::Rectangle aRect( pWin->PixelToLogic( rRect.GetValue() ) ); - if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); @@ -704,10 +703,11 @@ bool ScTabViewShell::IsSignatureLineSelected() if (!pSdrView) return false; - if (pSdrView->GetMarkedObjectList().GetMarkCount() != 1) + const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() != 1) return false; - SdrObject* pPickObj = pSdrView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if (!pPickObj) return false; @@ -724,10 +724,11 @@ bool ScTabViewShell::IsQRCodeSelected() if (!pSdrView) return false; - if (pSdrView->GetMarkedObjectList().GetMarkCount() != 1) + const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() != 1) return false; - SdrObject* pPickObj = pSdrView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if (!pPickObj) return false; @@ -750,10 +751,11 @@ bool ScTabViewShell::IsSignatureLineSigned() if (!pSdrView) return false; - if (pSdrView->GetMarkedObjectList().GetMarkCount() != 1) + const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() != 1) return false; - SdrObject* pPickObj = pSdrView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if (!pPickObj) return false; diff --git a/sc/source/ui/view/viewfun7.cxx b/sc/source/ui/view/viewfun7.cxx index ac447af17f0a..0656cc416238 100644 --- a/sc/source/ui/view/viewfun7.cxx +++ b/sc/source/ui/view/viewfun7.cxx @@ -146,11 +146,11 @@ void ScViewFunc::PasteDraw( const Point& rLogicPos, SdrModel* pModel, ScChartHelper::GetChartNames( aExcludedChartNames, pDestPage ); } - SdrMarkList aMark = pDragEditView->GetMarkedObjectList(); - aMark.ForceSort(); - const size_t nMarkCnt=aMark.GetMarkCount(); + const SdrMarkList& rMarkList = pDragEditView->GetMarkedObjectList(); + rMarkList.ForceSort(); + const size_t nMarkCnt=rMarkList.GetMarkCount(); for (size_t nm=0; nm<nMarkCnt; ++nm) { - const SdrMark* pM=aMark.GetMark(nm); + const SdrMark* pM=rMarkList.GetMark(nm); const SdrObject* pObj=pM->GetMarkedSdrObj(); // Directly Clone to target SdrModel