sd/source/ui/dlg/tpaction.cxx | 4 sd/source/ui/func/fuconstr.cxx | 10 + sd/source/ui/func/fucopy.cxx | 14 +- sd/source/ui/func/fudraw.cxx | 17 +-- sd/source/ui/func/fuediglu.cxx | 3 sd/source/ui/func/fuinsert.cxx | 4 sd/source/ui/func/fuline.cxx | 2 sd/source/ui/func/fumorph.cxx | 2 sd/source/ui/func/fupoor.cxx | 7 - sd/source/ui/func/fusel.cxx | 19 ++- sd/source/ui/func/futempl.cxx | 3 sd/source/ui/func/futext.cxx | 16 +-- sd/source/ui/func/futhes.cxx | 5 sd/source/ui/func/futransf.cxx | 7 - sd/source/ui/func/fuvect.cxx | 2 sd/source/ui/func/smarttag.cxx | 3 sd/source/ui/view/Outliner.cxx | 7 - sd/source/ui/view/drawview.cxx | 5 sd/source/ui/view/drbezob.cxx | 5 sd/source/ui/view/drviews1.cxx | 10 - sd/source/ui/view/drviews2.cxx | 27 +---- sd/source/ui/view/drviews3.cxx | 12 -- sd/source/ui/view/drviews4.cxx | 16 +-- sd/source/ui/view/drviews6.cxx | 7 - sd/source/ui/view/drviews7.cxx | 13 +- sd/source/ui/view/drviews8.cxx | 4 sd/source/ui/view/drviews9.cxx | 7 - sd/source/ui/view/drviewsa.cxx | 6 - sd/source/ui/view/drviewse.cxx | 17 +-- sd/source/ui/view/drviewsf.cxx | 22 ++-- sd/source/ui/view/drviewsg.cxx | 3 sd/source/ui/view/sdview.cxx | 18 ++- sd/source/ui/view/sdview2.cxx | 34 +++--- sd/source/ui/view/sdview3.cxx | 7 - sd/source/ui/view/sdview5.cxx | 6 - sd/source/ui/view/viewoverlaymanager.cxx | 3 sd/source/ui/view/viewshe3.cxx | 3 sd/source/ui/view/viewshel.cxx | 5 svx/source/dialog/graphctl.cxx | 6 - svx/source/dialog/imapwnd.cxx | 2 svx/source/engine3d/view3d.cxx | 89 +++++++++------- svx/source/engine3d/view3d1.cxx | 9 - svx/source/svdraw/svddrgmt.cxx | 40 ++++--- svx/source/svdraw/svddrgv.cxx | 30 +++-- svx/source/svdraw/svdedtv.cxx | 37 +++---- svx/source/svdraw/svdedtv1.cxx | 132 ++++++++++++++----------- svx/source/svdraw/svdedtv2.cxx | 163 ++++++++++++++++--------------- svx/source/svdraw/svdedxv.cxx | 14 +- svx/source/svdraw/svdglev.cxx | 40 ++++--- svx/source/svdraw/svdmrkv.cxx | 148 ++++++++++++++++------------ svx/source/svdraw/svdmrkv1.cxx | 77 ++++++++------ svx/source/svdraw/svdpoev.cxx | 70 +++++++------ svx/source/svdraw/svdundo.cxx | 12 +- svx/source/svdraw/svdview.cxx | 32 +++--- svx/source/svdraw/svdxcgv.cxx | 33 +++--- 55 files changed, 733 insertions(+), 556 deletions(-)
New commits: commit 5da4acd4818741c3b68be211bd7a21e4c080ed4d Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Thu May 30 13:39:31 2024 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri May 31 09:25:03 2024 +0200 sd: Reduce number of calls to GetMarkedObjectList() From 211 to 129 Change-Id: I2ccb4261f5f842e7f1514bc0c8eab2591ead173e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168256 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sd/source/ui/dlg/tpaction.cxx b/sd/source/ui/dlg/tpaction.cxx index f79005b7ef1d..3d0f391edc17 100644 --- a/sd/source/ui/dlg/tpaction.cxx +++ b/sd/source/ui/dlg/tpaction.cxx @@ -157,9 +157,9 @@ void SdTPAction::Construct() SdrGrafObj* pGrafObj = nullptr; bool bOLEAction = false; - if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); diff --git a/sd/source/ui/func/fuconstr.cxx b/sd/source/ui/func/fuconstr.cxx index b5e4b1b15bb0..01f56174980d 100644 --- a/sd/source/ui/func/fuconstr.cxx +++ b/sd/source/ui/func/fuconstr.cxx @@ -85,13 +85,14 @@ bool FuConstruct::MouseButtonDown(const MouseEvent& rMEvt) SdrHdl* pHdl = mpView->PickHandle(aMDPos); + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if ( pHdl != nullptr || mpView->IsMarkedHit(aMDPos, nHitLog) ) { sal_uInt16 nDrgLog = sal_uInt16 ( mpWindow->PixelToLogic(Size(mpView->GetDragThresholdPixels(),0)).Width() ); mpView->BegDragObj(aMDPos, nullptr, pHdl, nDrgLog); bReturn = true; } - else if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 ) + else if ( rMarkList.GetMarkCount() != 0 ) { mpView->UnmarkAll(); bReturn = true; @@ -166,7 +167,8 @@ bool FuConstruct::MouseButtonUp(const MouseEvent& rMEvt) mpWindow->ReleaseMouse(); sal_uInt16 nDrgLog = sal_uInt16 ( mpWindow->PixelToLogic(Size(mpView->GetDragThresholdPixels(),0)).Width() ); - if ( mpView->GetMarkedObjectList().GetMarkCount() == 0 ) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() == 0 ) { SdrPageView* pPV; sal_uInt16 nHitLog = sal_uInt16 ( mpWindow->PixelToLogic(Size(HITPIX,0)).Width() ); @@ -187,9 +189,9 @@ bool FuConstruct::MouseButtonUp(const MouseEvent& rMEvt) // toggle between selection and rotation SdrObject* pSingleObj = nullptr; - if (mpView->GetMarkedObjectList().GetMarkCount()==1) + if (rMarkList.GetMarkCount()==1) { - pSingleObj = mpView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + pSingleObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); } const bool bTiledRendering = comphelper::LibreOfficeKit::isActive(); diff --git a/sd/source/ui/func/fucopy.cxx b/sd/source/ui/func/fucopy.cxx index 5df9f55ecfad..4976683292ec 100644 --- a/sd/source/ui/func/fucopy.cxx +++ b/sd/source/ui/func/fucopy.cxx @@ -62,11 +62,12 @@ rtl::Reference<FuPoor> FuCopy::Create( ViewShell* pViewSh, ::sd::Window* pWin, : void FuCopy::DoExecute( SfxRequest& rReq ) { - if( mpView->GetMarkedObjectList().GetMarkCount() == 0 ) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if( rMarkList.GetMarkCount() == 0 ) return; // Undo - OUString aString = mpView->GetMarkedObjectList().GetMarkDescription() + + OUString aString = rMarkList.GetMarkDescription() + " " + SdResId( STR_UNDO_COPYOBJECTS ); mpView->BegUndo( aString ); @@ -174,8 +175,7 @@ void FuCopy::DoExecute( SfxRequest& rReq ) bWaiting = true; } - const SdrMarkList aMarkList( mpView->GetMarkedObjectList() ); - const size_t nMarkCount = aMarkList.GetMarkCount(); + const size_t nMarkCount = rMarkList.GetMarkCount(); SdrObject* pObj = nullptr; // calculate number of possible copies @@ -212,8 +212,8 @@ void FuCopy::DoExecute( SfxRequest& rReq ) mpView->CopyMarked(); // get newly selected objects - SdrMarkList aCopyMarkList( mpView->GetMarkedObjectList() ); - const size_t nCopyMarkCount = aMarkList.GetMarkCount(); + SdrMarkList aCopyMarkList( rMarkList ); + const size_t nCopyMarkCount = rMarkList.GetMarkCount(); // set protection flags at marked copies to null for( size_t j = 0; j < nCopyMarkCount; ++j ) @@ -244,7 +244,7 @@ void FuCopy::DoExecute( SfxRequest& rReq ) { for( size_t j = 0; j < nMarkCount; ++j ) { - SdrObject* pSrcObj = aMarkList.GetMark( j )->GetMarkedSdrObj(); + SdrObject* pSrcObj = rMarkList.GetMark( j )->GetMarkedSdrObj(); SdrObject* pDstObj = aCopyMarkList.GetMark( j )->GetMarkedSdrObj(); if( pSrcObj && pDstObj && diff --git a/sd/source/ui/func/fudraw.cxx b/sd/source/ui/func/fudraw.cxx index a65bae0a6fa8..3e36d5d78f76 100644 --- a/sd/source/ui/func/fudraw.cxx +++ b/sd/source/ui/func/fudraw.cxx @@ -317,6 +317,7 @@ bool FuDraw::MouseButtonUp(const MouseEvent& rMEvt) bool FuDraw::KeyInput(const KeyEvent& rKEvt) { bool bReturn = false; + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); switch ( rKEvt.GetKeyCode().GetCode() ) { @@ -369,7 +370,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) if(!mpView->MarkNextObj( !aCode.IsShift() )) { //If there is only one object, don't do the UnmarkAllObj() & MarkNextObj(). - if ( mpView->HasMultipleMarkableObjects() && mpView->GetMarkedObjectList().GetMarkCount() != 0 ) + if ( mpView->HasMultipleMarkableObjects() && rMarkList.GetMarkCount() != 0 ) { // No next object: go over open end and get first from // the other side @@ -378,7 +379,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) } } - if(mpView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) mpView->MakeVisible(mpView->GetAllMarkedRect(), *mpWindow); bReturn = true; @@ -396,7 +397,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) mpView->UnmarkAllObj(); mpView->MarkNextObj(); - if(mpView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) mpView->MakeVisible(mpView->GetAllMarkedRect(), *mpWindow); bReturn = true; @@ -414,7 +415,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt) mpView->UnmarkAllObj(); mpView->MarkNextObj(true); - if(mpView->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) mpView->MakeVisible(mpView->GetAllMarkedRect(), *mpWindow); bReturn = true; @@ -628,10 +629,9 @@ void FuDraw::DoubleClick(const MouseEvent& rMEvt) { sal_uInt16 nHitLog = sal_uInt16 ( mpWindow->PixelToLogic(Size(HITPIX,0)).Width() ); - if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); @@ -773,6 +773,7 @@ bool FuDraw::SetHelpText(const SdrObject* pObj, const Point& rPosPixel, const Sd bool FuDraw::cancel() { bool bReturn = false; + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if ( mpView->IsAction() ) { @@ -790,7 +791,7 @@ bool FuDraw::cancel() rBindings.Invalidate( SID_PARASPACE_INCREASE ); rBindings.Invalidate( SID_PARASPACE_DECREASE ); } - else if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 ) + else if ( rMarkList.GetMarkCount() != 0 ) { const SdrHdlList& rHdlList = mpView->GetHdlList(); SdrHdl* pHdl = rHdlList.GetFocusHdl(); diff --git a/sd/source/ui/func/fuediglu.cxx b/sd/source/ui/func/fuediglu.cxx index 15aea9cc0e2e..442c0fbb7e61 100644 --- a/sd/source/ui/func/fuediglu.cxx +++ b/sd/source/ui/func/fuediglu.cxx @@ -167,13 +167,14 @@ bool FuEditGluePoints::MouseButtonDown(const MouseEvent& rMEvt) } } + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (bMarked && (!rMEvt.IsShift() || eHit == SdrHitKind::MarkedObject)) { // move object mpView->BegDragObj(aMDPos, nullptr, aVEvt.mpHdl, nDrgLog); } - else if (mpView->GetMarkedObjectList().GetMarkCount() != 0) + else if (rMarkList.GetMarkCount() != 0) { // select gluepoint if (!rMEvt.IsShift()) diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx index d0fde55e4b72..55dfa5cf105d 100644 --- a/sd/source/ui/func/fuinsert.cxx +++ b/sd/source/ui/func/fuinsert.cxx @@ -549,10 +549,10 @@ void FuInsertOLE::DoExecute( SfxRequest& rReq ) } } - if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { // as an empty OLE object available? - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { diff --git a/sd/source/ui/func/fuline.cxx b/sd/source/ui/func/fuline.cxx index 640a5bfc5b09..0e8eb78f39e4 100644 --- a/sd/source/ui/func/fuline.cxx +++ b/sd/source/ui/func/fuline.cxx @@ -64,7 +64,7 @@ void FuLine::DoExecute( SfxRequest& rReq ) SfxItemSet aNewAttr( mpDoc->GetPool() ); mpView->GetAttributes( aNewAttr ); - bool bHasMarked = mpView->GetMarkedObjectList().GetMarkCount() != 0; + bool bHasMarked = rMarkList.GetMarkCount() != 0; SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); VclPtr<SfxAbstractTabDialog> pDlg( pFact->CreateSvxLineTabDialog(mpViewShell->GetFrameWeld(), &aNewAttr, mpDoc, pObj, bHasMarked) ); diff --git a/sd/source/ui/func/fumorph.cxx b/sd/source/ui/func/fumorph.cxx index 83ea1d1c1b03..e62f21e1a7e3 100644 --- a/sd/source/ui/func/fumorph.cxx +++ b/sd/source/ui/func/fumorph.cxx @@ -162,7 +162,7 @@ void FuMorph::DoExecute( SfxRequest& ) ImpMorphPolygons(aPolyPoly1, aPolyPoly2, pDlg->GetFadeSteps(), aPolyPolyList); - OUString aString = mpView->GetMarkedObjectList().GetMarkDescription() + + OUString aString = rMarkList.GetMarkDescription() + " " + SdResId(STR_UNDO_MORPHING); mpView->BegUndo(aString); diff --git a/sd/source/ui/func/fupoor.cxx b/sd/source/ui/func/fupoor.cxx index dc0a39dff5a2..2a1c9023015b 100644 --- a/sd/source/ui/func/fupoor.cxx +++ b/sd/source/ui/func/fupoor.cxx @@ -593,7 +593,8 @@ bool FuPoor::KeyInput(const KeyEvent& rKEvt) nY = 0; } - if (mpView->GetMarkedObjectList().GetMarkCount() != 0 && !rKEvt.GetKeyCode().IsMod1() && + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() != 0 && !rKEvt.GetKeyCode().IsMod1() && !mpDocSh->IsReadOnly()) { const SdrHdlList& rHdlList = mpView->GetHdlList(); @@ -1085,10 +1086,10 @@ bool FuPoor::doConstructOrthogonal() const { // Check whether a media object is selected bool bResizeKeepRatio = false; + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); // tdf#89758 Avoid interactive crop preview from being proportionally scaled by default. - if (mpView->GetMarkedObjectList().GetMarkCount() != 0 && mpView->GetDragMode() != SdrDragMode::Crop) + if (rMarkList.GetMarkCount() != 0 && mpView->GetDragMode() != SdrDragMode::Crop) { - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { SdrObjKind aObjIdentifier = rMarkList.GetMark(0)->GetMarkedSdrObj()->GetObjIdentifier(); diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx index 2803c8f32633..56a0816128ce 100644 --- a/sd/source/ui/func/fusel.cxx +++ b/sd/source/ui/func/fusel.cxx @@ -406,7 +406,8 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt) { bool bToggle = false; - if (rMEvt.IsShift() && mpView->GetMarkedObjectList().GetMarkCount() > 1) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if (rMEvt.IsShift() && rMarkList.GetMarkCount() > 1) { // No Toggle on single selection bToggle = true; @@ -561,6 +562,7 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt) } } + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (bMarked && (!rMEvt.IsShift() || eHit == SdrHitKind::MarkedObject)) { @@ -568,7 +570,7 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt) if ( ! rMEvt.IsRight()) mpView->BegDragObj(aMDPos, nullptr, aVEvt.mpHdl, nDrgLog); } - else if (mpView->GetMarkedObjectList().GetMarkCount() != 0) + else if (rMarkList.GetMarkCount() != 0) { /************************************************************** * Select gluepoint @@ -703,9 +705,10 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt) // check for single object selected SdrObject* pSingleObj = nullptr; - if (mpView->GetMarkedObjectList().GetMarkCount()==1) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount()==1) { - pSingleObj = mpView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + pSingleObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); } // Check for click on svx::diagram::DiagramFrameHdl @@ -848,11 +851,12 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt) pHdl = nullptr; mpWindow->ReleaseMouse(); SdrObject* pSingleObj = nullptr; - const size_t nMarkCount = mpView->GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + const size_t nMarkCount = rMarkList.GetMarkCount(); if (nMarkCount==1) { - pSingleObj = mpView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + pSingleObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); } if ( (nSlotId != SID_OBJECT_SELECT && nMarkCount==0) || @@ -1034,7 +1038,8 @@ bool FuSelection::KeyInput(const KeyEvent& rKEvt) { bReturn = FuDraw::KeyInput(rKEvt); - if(mpView->GetMarkedObjectList().GetMarkCount() == 0) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if(rMarkList.GetMarkCount() == 0) { mpView->ResetCreationActive(); diff --git a/sd/source/ui/func/futempl.cxx b/sd/source/ui/func/futempl.cxx index 324af035aa27..a96979d4121a 100644 --- a/sd/source/ui/func/futempl.cxx +++ b/sd/source/ui/func/futempl.cxx @@ -596,7 +596,8 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) case SID_STYLE_UPDATE_BY_EXAMPLE: { - if ((mpView->GetMarkedObjectList().GetMarkCount() != 0 && mpView->GetMarkedObjectList().GetMarkCount() == 1) || + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if ((rMarkList.GetMarkCount() != 0 && rMarkList.GetMarkCount() == 1) || dynamic_cast< const OutlineView *>( mpView ) != nullptr) { pStyleSheet = mpView->GetStyleSheet(); diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx index 4383f9394b08..d90aefc7f542 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -186,6 +186,7 @@ void FuText::DoExecute( SfxRequest& ) MouseEvent aMEvt(mpWindow->GetPointerPosPixel()); + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (nSlotId == SID_TEXTEDIT) { // Try to select an object @@ -196,10 +197,8 @@ void FuText::DoExecute( SfxRequest& ) mxTextObj = DynCastSdrTextObj( aVEvt.mpObj ); } - else if (mpView->GetMarkedObjectList().GetMarkCount() != 0) + else if (rMarkList.GetMarkCount() != 0) { - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -208,10 +207,8 @@ void FuText::DoExecute( SfxRequest& ) } // check for table - if (mpView->GetMarkedObjectList().GetMarkCount() != 0) + if (rMarkList.GetMarkCount() != 0) { - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -719,7 +716,8 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt) ForcePointer(&rMEvt); mpWindow->ReleaseMouse(); - if ( mpView && mpView->GetMarkedObjectList().GetMarkCount() == 0 ) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if ( mpView && rMarkList.GetMarkCount() == 0 ) { sal_uInt16 nDrgLog1 = sal_uInt16 ( mpWindow->PixelToLogic(Size(mpView->GetDragThresholdPixels(),0)).Width() ); if ( std::abs(aMDPos.X() - aPnt.X()) < nDrgLog1 && @@ -1214,6 +1212,7 @@ void FuText::ReceiveRequest(SfxRequest& rReq) MouseEvent aMEvt(mpWindow->GetPointerPosPixel()); mxTextObj = nullptr; + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (nSlotId == SID_TEXTEDIT) { @@ -1234,9 +1233,8 @@ void FuText::ReceiveRequest(SfxRequest& rReq) } } } - else if (mpView->GetMarkedObjectList().GetMarkCount() != 0) + else if (rMarkList.GetMarkCount() != 0) { - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { diff --git a/sd/source/ui/func/futhes.cxx b/sd/source/ui/func/futhes.cxx index 74521700218a..4c5cfedca69c 100644 --- a/sd/source/ui/func/futhes.cxx +++ b/sd/source/ui/func/futhes.cxx @@ -68,11 +68,10 @@ void FuThesaurus::DoExecute(SfxRequest& rReq) if (dynamic_cast< DrawViewShell *>( mpViewShell )) { SdrTextObj* pTextObj = nullptr; + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); - if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 ) + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); - if ( rMarkList.GetMarkCount() == 1 ) { SdrMark* pMark = rMarkList.GetMark(0); diff --git a/sd/source/ui/func/futransf.cxx b/sd/source/ui/func/futransf.cxx index 3b1790028102..d9e92c000413 100644 --- a/sd/source/ui/func/futransf.cxx +++ b/sd/source/ui/func/futransf.cxx @@ -52,7 +52,8 @@ namespace { void setUndo(::sd::View* pView, const SfxItemSet* pArgs, bool addPageMargin) { // Undo - OUString aString = pView->GetMarkedObjectList().GetMarkDescription() + + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + OUString aString = rMarkList.GetMarkDescription() + " " + SdResId(STR_TRANSFORM); pView->BegUndo(aString); pView->SetGeoAttrToMarked(*pArgs, addPageMargin); @@ -64,7 +65,8 @@ void setUndo(::sd::View* pView, const SfxItemSet* pArgs, bool addPageMargin) void FuTransform::DoExecute( SfxRequest& rReq ) { - if (mpView->GetMarkedObjectList().GetMarkCount() == 0) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() == 0) return; const SfxItemSet* pArgs = rReq.GetArgs(); @@ -82,7 +84,6 @@ void FuTransform::DoExecute( SfxRequest& rReq ) VclPtr<SfxAbstractTabDialog> pDlg; bool bWelded = false; - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if( rMarkList.GetMarkCount() == 1 && pObj->GetObjInventor() == SdrInventor::Default && diff --git a/sd/source/ui/func/fuvect.cxx b/sd/source/ui/func/fuvect.cxx index 63d0408979a3..def172d573bf 100644 --- a/sd/source/ui/func/fuvect.cxx +++ b/sd/source/ui/func/fuvect.cxx @@ -73,7 +73,7 @@ void FuVectorize::DoExecute( SfxRequest& ) if( pPageView && rMtf.GetActionSize() ) { rtl::Reference<SdrGrafObj> pVectObj = SdrObject::Clone(static_cast<SdrGrafObj&>(*pObj), pObj->getSdrModelFromSdrObject()); - OUString aStr = mpView->GetMarkedObjectList().GetMarkDescription() + + OUString aStr = rMarkList.GetMarkDescription() + " " + SdResId( STR_UNDO_VECTORIZE ); mpView->BegUndo( aStr ); pVectObj->SetGraphic( rMtf ); diff --git a/sd/source/ui/func/smarttag.cxx b/sd/source/ui/func/smarttag.cxx index 99d0e14d9248..f9aeec99eb1b 100644 --- a/sd/source/ui/func/smarttag.cxx +++ b/sd/source/ui/func/smarttag.cxx @@ -163,7 +163,8 @@ void SmartTagSet::select( const SmartTagReference& xTag ) mxSelectedTag = xTag; mxSelectedTag->select(); mrView.SetPossibilitiesDirty(); - if( mrView.GetMarkedObjectList().GetMarkCount() > 0 ) + const SdrMarkList& rMarkList = mrView.GetMarkedObjectList(); + if( rMarkList.GetMarkCount() > 0 ) mrView.UnmarkAllObj(); else mrView.updateHandles(); diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx index 1ea3eba17955..4d00939fc53e 100644 --- a/sd/source/ui/view/Outliner.cxx +++ b/sd/source/ui/view/Outliner.cxx @@ -1412,7 +1412,8 @@ void SdOutliner::ShowEndOfSearchDialog() } OUString aString; - if (mpView->GetMarkedObjectList().GetMarkCount() != 0) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() != 0) aString = SdResId(STR_END_SPELLING_OBJ); else aString = SdResId(STR_END_SPELLING); @@ -1770,12 +1771,12 @@ void SdOutliner::SetViewShell (const std::shared_ptr<sd::ViewShell>& rpViewShell void SdOutliner::HandleChangedSelection() { maMarkListCopy.clear(); - mbRestrictSearchToSelection = mpView->GetMarkedObjectList().GetMarkCount() != 0; + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + mbRestrictSearchToSelection = rMarkList.GetMarkCount() != 0; if (!mbRestrictSearchToSelection) return; // Make a copy of the current mark list. - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); const size_t nCount = rMarkList.GetMarkCount(); if (nCount > 0) { diff --git a/sd/source/ui/view/drawview.cxx b/sd/source/ui/view/drawview.cxx index 6880f83e2cd0..cfdadfae3ce7 100644 --- a/sd/source/ui/view/drawview.cxx +++ b/sd/source/ui/view/drawview.cxx @@ -541,10 +541,11 @@ void DrawView::DeleteMarked() sd::UndoManager* pUndoManager = mrDoc.GetUndoManager(); DBG_ASSERT( pUndoManager, "sd::DrawView::DeleteMarked(), ui action without undo manager!?" ); + const SdrMarkList& rMarkList = GetMarkedObjectList(); if( pUndoManager ) { OUString aUndo(SvxResId(STR_EditDelete)); - aUndo = aUndo.replaceFirst("%1", GetMarkedObjectList().GetMarkDescription()); + aUndo = aUndo.replaceFirst("%1", rMarkList.GetMarkDescription()); ViewShellId nViewShellId = mpDrawViewShell ? mpDrawViewShell->GetViewShellBase().GetViewShellId() : ViewShellId(-1); pUndoManager->EnterListAction(aUndo, aUndo, 0, nViewShellId); } @@ -552,7 +553,7 @@ void DrawView::DeleteMarked() SdPage* pPage = nullptr; bool bResetLayout = false; - const size_t nMarkCount = GetMarkedObjectList().GetMarkCount(); + const size_t nMarkCount = rMarkList.GetMarkCount(); if( nMarkCount ) { SdrMarkList aList( GetMarkedObjectList() ); diff --git a/sd/source/ui/view/drbezob.cxx b/sd/source/ui/view/drbezob.cxx index 863045043614..5ffa21e149fe 100644 --- a/sd/source/ui/view/drbezob.cxx +++ b/sd/source/ui/view/drbezob.cxx @@ -121,7 +121,8 @@ void BezierObjectBar::GetAttrState(SfxItemSet& rSet) else { IPolyPolygonEditorController* pIPPEC = nullptr; - if( mpView->GetMarkedObjectList().GetMarkCount() ) + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if( rMarkList.GetMarkCount() ) pIPPEC = mpView; else pIPPEC = dynamic_cast< IPolyPolygonEditorController* >( mpView->getSmartTags().getSelected().get() ); @@ -273,7 +274,7 @@ void BezierObjectBar::Execute(SfxRequest& rReq) } } - if( (pIPPEC == mpView) && mpView->GetMarkedObjectList().GetMarkCount() == 0 ) + if( (pIPPEC == mpView) && rMarkList.GetMarkCount() == 0 ) mpViewSh->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SfxCallMode::ASYNCHRON); rReq.Ignore(); diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx index 6bc11bef160b..df004aa0610e 100644 --- a/sd/source/ui/view/drviews1.cxx +++ b/sd/source/ui/view/drviews1.cxx @@ -167,10 +167,9 @@ void DrawViewShell::SelectionHasChanged() SdrOle2Obj* pOleObj = nullptr; - if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList()); + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); @@ -753,10 +752,9 @@ void DrawViewShell::ResetActualPage() */ ErrCode DrawViewShell::DoVerb(sal_Int32 nVerb) { - if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList()); + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index b8a8df1af3cc..12f5490c7b99 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -600,13 +600,13 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) DeactivateCurrentFunction(); sal_uInt16 nSId = rReq.GetSlot(); + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); switch ( nSId ) { case SID_OUTLINE_TEXT_AUTOFIT: { SfxUndoManager* pUndoManager = GetDocSh()->GetUndoManager(); - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); if( rMarkList.GetMarkCount() == 1 ) { pUndoManager->EnterListAction(u""_ustr, u""_ustr, 0, GetViewShellBase().GetViewShellId()); @@ -1137,9 +1137,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) // exception to get good results for Svgs. This is how the code gets more // and more crowded, at last I made a remark for myself to change this // as one of the next tasks. - if(1 == mpDrawView->GetMarkedObjectList().GetMarkCount()) + if(1 == rMarkList.GetMarkCount()) { - const SdrGrafObj* pSdrGrafObj = dynamic_cast< const SdrGrafObj* >(mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()); + const SdrGrafObj* pSdrGrafObj = dynamic_cast< const SdrGrafObj* >(rMarkList.GetMark(0)->GetMarkedSdrObj()); if(pSdrGrafObj && pSdrGrafObj->isEmbeddedVectorGraphicData()) { @@ -1164,7 +1164,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) aGraphic); // get some necessary info and ensure it - const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList()); const size_t nMarkCount(rMarkList.GetMarkCount()); SdrPageView* pPageView = mpDrawView->GetSdrPageView(); OSL_ENSURE(nMarkCount, "DrawViewShell::FuTemporary: SID_CONVERT_TO_BITMAP with empty selection (!)"); @@ -1230,7 +1229,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) } else { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); const size_t nCount = rMarkList.GetMarkCount(); // For every presentation object a SfxItemSet of hard attributes @@ -1360,7 +1358,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) case SID_SAVE_GRAPHIC: { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); if( rMarkList.GetMarkCount() == 1 ) { const SdrGrafObj* pObj = dynamic_cast<const SdrGrafObj*>(rMarkList.GetMark(0)->GetMarkedSdrObj()); @@ -1399,7 +1396,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) case SID_EXTERNAL_EDIT: { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); if( rMarkList.GetMarkCount() == 1 ) { SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj(); @@ -1420,7 +1416,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) case SID_COMPRESS_GRAPHIC: { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); if( rMarkList.GetMarkCount() == 1 ) { SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj(); @@ -1433,7 +1428,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) { rtl::Reference<SdrGrafObj> pNewObject = dialog.GetCompressedSdrGrafObj(); SdrPageView* pPageView = mpDrawView->GetSdrPageView(); - OUString aUndoString = mpDrawView->GetMarkedObjectList().GetMarkDescription() + " Compress"; + OUString aUndoString = rMarkList.GetMarkDescription() + " Compress"; mpDrawView->BegUndo( aUndoString ); mpDrawView->ReplaceObjectAtView( pObj, *pPageView, pNewObject.get() ); mpDrawView->EndUndo(); @@ -1477,7 +1472,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) SetCurrentFunction( FuTransform::Create( this, GetActiveWindow(), mpDrawView.get(), GetDoc(), rReq ) ); // tdf#138963 conditions tested for here must be the same as those // of the early returns from FuTransform::DoExecute - if (rReq.GetArgs() || mpDrawView->GetMarkedObjectList().GetMarkCount() == 0) + if (rReq.GetArgs() || rMarkList.GetMarkCount() == 0) { Invalidate(SID_RULER_OBJECT); Cancel(); @@ -2662,10 +2657,10 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) { // only allow for single object selection since the name of an object needs // to be unique - if(1 == mpDrawView->GetMarkedObjectList().GetMarkCount()) + if(1 == rMarkList.GetMarkCount()) { // #i68101# - rtl::Reference<SdrObject> pSelected = mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + rtl::Reference<SdrObject> pSelected = rMarkList.GetMark(0)->GetMarkedSdrObj(); OSL_ENSURE(pSelected, "DrawViewShell::FuTemp03: nMarkCount, but no object (!)"); OUString aName(pSelected->GetName()); @@ -2701,9 +2696,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) // #i68101# case SID_OBJECT_TITLE_DESCRIPTION: { - if(1 == mpDrawView->GetMarkedObjectList().GetMarkCount()) + if(1 == rMarkList.GetMarkCount()) { - rtl::Reference<SdrObject> pSelected = mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + rtl::Reference<SdrObject> pSelected = rMarkList.GetMark(0)->GetMarkedSdrObj(); OSL_ENSURE(pSelected, "DrawViewShell::FuTemp03: nMarkCount, but no object (!)"); OUString aTitle(pSelected->GetTitle()); OUString aDescription(pSelected->GetDescription()); @@ -2737,7 +2732,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) case SID_SETLAYER: { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); const size_t nMarkCount = rMarkList.GetMarkCount(); if (nMarkCount >= 1 && mpLayerTabBar) { @@ -2994,7 +2988,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) else if ( mpDrawView->IsImportMtfPossible() ) { weld::WaitObject aWait(GetFrameWeld()); - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); const size_t nCnt=rMarkList.GetMarkCount(); // determine the sum of meta objects of all selected meta files @@ -3274,8 +3267,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) if ( GetViewFrame()->HasChildWindow( nId ) && ( ( ViewShell::Implementation::GetImageMapDialog() ) != nullptr ) ) { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); - if ( rMarkList.GetMarkCount() == 1 ) UpdateIMapDlg( rMarkList.GetMark( 0 )->GetMarkedSdrObj() ); } diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx index ce7bf798083e..8a4d33fee0ec 100644 --- a/sd/source/ui/view/drviews3.cxx +++ b/sd/source/ui/view/drviews3.cxx @@ -132,6 +132,7 @@ void DrawViewShell::ExecCtrl(SfxRequest& rReq) } } + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); // sal_uInt16 nSlot = rReq.GetSlot(); switch (nSlot) { @@ -348,10 +349,8 @@ void DrawViewShell::ExecCtrl(SfxRequest& rReq) rReq.GetArgs()->Get(SID_OBJECTRESIZE); ::tools::Rectangle aRect( GetActiveWindow()->PixelToLogic( rRect.GetValue() ) ); - if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); @@ -487,8 +486,6 @@ void DrawViewShell::ExecCtrl(SfxRequest& rReq) case SID_REGENERATE_DIAGRAM: case SID_EDIT_DIAGRAM: { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); - if (1 == rMarkList.GetMarkCount()) { SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -928,12 +925,13 @@ void DrawViewShell::GetRulerState(SfxItemSet& rSet) const bool bRTL = GetDoc() && GetDoc()->GetDefaultWritingMode() == css::text::WritingMode_RL_TB; rSet.Put(SfxBoolItem(SID_RULER_TEXT_RIGHT_TO_LEFT, bRTL)); + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); - if( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + if( rMarkList.GetMarkCount() != 0 ) { if( mpDrawView->IsTextEdit() ) { - SdrObject* pObj = mpDrawView->GetMarkedObjectList().GetMark( 0 )->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj(); if( pObj->GetObjInventor() == SdrInventor::Default) { SfxItemSet aEditAttr( GetDoc()->GetPool() ); diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx index 4297fc521b38..83ffcc9be39b 100644 --- a/sd/source/ui/view/drviews4.cxx +++ b/sd/source/ui/view/drviews4.cxx @@ -642,10 +642,11 @@ void DrawViewShell::Command(const CommandEvent& rCEvt, ::sd::Window* pWin) else { // is something selected? - if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 && - mpDrawView->GetMarkedObjectList().GetMarkCount() == 1 ) + const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList()); + if (rMarkList.GetMarkCount() != 0 && + rMarkList.GetMarkCount() == 1 ) { - pObj = mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if( HasCurrentFunction(SID_BEZIER_EDIT) && (dynamic_cast< SdrPathObj * >( pObj ) != nullptr ) ) { aPopupId = "bezier"; @@ -781,8 +782,8 @@ void DrawViewShell::Command(const CommandEvent& rCEvt, ::sd::Window* pWin) } // multiple selection - else if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 && - mpDrawView->GetMarkedObjectList().GetMarkCount() > 1 ) + else if (rMarkList.GetMarkCount() != 0 && + rMarkList.GetMarkCount() > 1 ) { aPopupId = "multiselect"; } @@ -808,11 +809,12 @@ void DrawViewShell::Command(const CommandEvent& rCEvt, ::sd::Window* pWin) Point aMenuPos(GetActiveWindow()->GetSizePixel().Width()/2 ,GetActiveWindow()->GetSizePixel().Height()/2); + const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList()); //middle of the bounding rect if something is marked - if( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 && mpDrawView->GetMarkedObjectList().GetMarkCount() >= 1 ) + if( rMarkList.GetMarkCount() != 0 && rMarkList.GetMarkCount() >= 1 ) { ::tools::Rectangle aMarkRect; - mpDrawView->GetMarkedObjectList().TakeBoundRect(nullptr,aMarkRect); + rMarkList.TakeBoundRect(nullptr,aMarkRect); aMenuPos = GetActiveWindow()->LogicToPixel( aMarkRect.Center() ); //move the point into the visible window area diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx index cc27855f469d..5b208c12d9df 100644 --- a/sd/source/ui/view/drviews6.cxx +++ b/sd/source/ui/view/drviews6.cxx @@ -262,8 +262,9 @@ void DrawViewShell::ExecBmpMask( SfxRequest const & rReq ) case SID_BMPMASK_EXEC : { SdrGrafObj* pObj = nullptr; - if( mpDrawView && mpDrawView->GetMarkedObjectList().GetMarkCount() ) - pObj = dynamic_cast< SdrGrafObj* >( mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() ); + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + if( mpDrawView && rMarkList.GetMarkCount() ) + pObj = dynamic_cast< SdrGrafObj* >( rMarkList.GetMark(0)->GetMarkedSdrObj() ); if ( pObj && !mpDrawView->IsTextEdit() ) { @@ -297,7 +298,7 @@ void DrawViewShell::ExecBmpMask( SfxRequest const & rReq ) xNewObj->SetEmptyPresObj(false); xNewObj->SetGraphic(pBmpMask->Mask(xNewObj->GetGraphic())); - OUString aStr = mpDrawView->GetMarkedObjectList().GetMarkDescription() + + OUString aStr = rMarkList.GetMarkDescription() + " " + SdResId(STR_EYEDROPPER); mpDrawView->BegUndo( aStr ); diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx index 8afeb9810513..2abe7214a794 100644 --- a/sd/source/ui/view/drviews7.cxx +++ b/sd/source/ui/view/drviews7.cxx @@ -218,8 +218,10 @@ void DrawViewShell::GetDrawAttrState(SfxItemSet& rSet) if( !mpDrawView ) return nullptr; + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + //when there is one object selected - if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0 || (mpDrawView->GetMarkedObjectList().GetMarkCount() != 1)) + if (rMarkList.GetMarkCount() == 0 || (rMarkList.GetMarkCount() != 1)) return nullptr; //and we are editing the outline object @@ -286,9 +288,10 @@ bool DrawViewShell::ShouldDisableEditHyperlink() const { if (!mpDrawView) return true; - if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0) + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() == 0) return true; - if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 1) + if (rMarkList.GetMarkCount() != 1) return true; bool bDisableEditHyperlink = true; @@ -300,7 +303,7 @@ bool DrawViewShell::ShouldDisableEditHyperlink() const } else { - SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() ); + SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( rMarkList.GetMark(0)->GetMarkedSdrObj() ); if ( pUnoCtrl && SdrInventor::FmForm == pUnoCtrl->GetObjInventor() ) { @@ -1364,7 +1367,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) bool bSingleGraphicSelected = false; - if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0) + if (rMarkList.GetMarkCount() == 0) { rSet.DisableItem (SID_CONVERT_TO_METAFILE); rSet.DisableItem (SID_CONVERT_TO_BITMAP); diff --git a/sd/source/ui/view/drviews8.cxx b/sd/source/ui/view/drviews8.cxx index 31c16efb0378..0ca9af3e536a 100644 --- a/sd/source/ui/view/drviews8.cxx +++ b/sd/source/ui/view/drviews8.cxx @@ -89,9 +89,9 @@ void DrawViewShell::ScannerEvent() ::tools::Rectangle aRect( aPnt, aBmpSize ); bool bInsertNewObject = true; - if( GetView()->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = GetView()->GetMarkedObjectList(); + if( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); if( rMarkList.GetMarkCount() == 1 ) { diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx index 2d5df30be799..9422ac4ca5cb 100644 --- a/sd/source/ui/view/drviews9.cxx +++ b/sd/source/ui/view/drviews9.cxx @@ -127,11 +127,10 @@ void DrawViewShell::ExecGallery(SfxRequest const & rReq) bool bInsertNewObject = true; - if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { // is there an empty graphic object? - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); @@ -151,7 +150,7 @@ void DrawViewShell::ExecGallery(SfxRequest const & rReq) pNewGrafObj->SetOutlinerParaObject(std::nullopt); pNewGrafObj->SetGraphic(aGraphic); - OUString aStr = mpDrawView->GetMarkedObjectList().GetMarkDescription() + + OUString aStr = rMarkList.GetMarkDescription() + " " + SdResId(STR_UNDO_REPLACE); mpDrawView->BegUndo(aStr); SdrPageView* pPV = mpDrawView->GetSdrPageView(); diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx index bf0b4023014a..2ed2e8745a6c 100644 --- a/sd/source/ui/view/drviewsa.cxx +++ b/sd/source/ui/view/drviewsa.cxx @@ -650,7 +650,8 @@ void DrawViewShell::GetStatusBarState(SfxItemSet& rSet) } else { - if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { ::tools::Rectangle aRect = mpDrawView->GetAllMarkedRect(); pPageView->LogicToPagePos(aRect); @@ -806,9 +807,10 @@ OUString const & DrawViewShell::GetSidebarContextName() const eViewType = svx::sidebar::SelectionAnalyzer::ViewType::Standard; break; } + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); return EnumContext::GetContextName( svx::sidebar::SelectionAnalyzer::GetContextForSelection_SD( - mpDrawView->GetMarkedObjectList(), + rMarkList, eViewType)); } diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index 965b9bec40df..f594fb1f7fcf 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -321,11 +321,12 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq) rReq.SetSlot( nSlotId ); } + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); if (nSlotId == SID_OBJECT_CROOK_ROTATE || nSlotId == SID_OBJECT_CROOK_SLANT || nSlotId == SID_OBJECT_CROOK_STRETCH) { - if ( mpDrawView->GetMarkedObjectList().GetMarkCount() > 0 && + if ( rMarkList.GetMarkCount() > 0 && !mpDrawView->IsCrookAllowed( mpDrawView->IsCrookNoContortion() ) ) { if ( mpDrawView->IsPresObjSelected() ) @@ -352,7 +353,6 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq) else if (nSlotId == SID_OBJECT_SHEAR) { size_t i = 0; - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); const size_t nMarkCnt = rMarkList.GetMarkCount(); bool b3DObjMarked = false; @@ -600,14 +600,15 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq) // CTRL-SID_OBJECT_SELECT -> select first draw object if none is selected yet if(SID_OBJECT_SELECT == nSId && HasCurrentFunction() && (rReq.GetModifier() & KEY_MOD1)) { - if(GetView()->GetMarkedObjectList().GetMarkCount() == 0) + const SdrMarkList& rMarkList = GetView()->GetMarkedObjectList(); + if(rMarkList.GetMarkCount() == 0) { // select first object GetView()->UnmarkAllObj(); GetView()->MarkNextObj(true); // ...and make it visible - if(GetView()->GetMarkedObjectList().GetMarkCount() != 0) + if(rMarkList.GetMarkCount() != 0) GetView()->MakeVisible(GetView()->GetAllMarkedRect(), *GetActiveWindow()); } } @@ -1253,7 +1254,8 @@ void DrawViewShell::FuSupport(SfxRequest& rReq) case SID_SIZE_OPTIMAL: // BASIC { mbZoomOnPage = false; - if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + if ( rMarkList.GetMarkCount() != 0 ) { maMarkRect = mpDrawView->GetAllMarkedRect(); ::tools::Long nW = static_cast<::tools::Long>(maMarkRect.GetWidth() * 1.03); @@ -1556,9 +1558,10 @@ void DrawViewShell::InsertURLButton(const OUString& rURL, const OUString& rText, const OUString sTargetURL( ::URIHelper::SmartRel2Abs( INetURLObject( GetDocSh()->GetMedium()->GetBaseURL() ), rURL, URIHelper::GetMaybeFileHdl(), true, false, INetURLObject::EncodeMechanism::WasEncoded, INetURLObject::DecodeMechanism::Unambiguous ) ); - if (mpDrawView->GetMarkedObjectList().GetMarkCount() > 0) + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() > 0) { - SdrObject* pMarkedObj = mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pMarkedObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if( pMarkedObj ) try { // change first marked object diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx index e14995642f69..1c1577b7ab91 100644 --- a/sd/source/ui/view/drviewsf.cxx +++ b/sd/source/ui/view/drviewsf.cxx @@ -107,11 +107,12 @@ void DrawViewShell::GetCtrlState(SfxItemSet &rSet) } else { - if (mpDrawView->GetMarkedObjectList().GetMarkCount() > 0) + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() > 0) { bool bFound = false; - SdrObject* pMarkedObj = mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pMarkedObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if( pMarkedObj && (SdrInventor::FmForm == pMarkedObj->GetObjInventor()) ) { SdrUnoObj* pUnoCtrl = dynamic_cast< SdrUnoObj* >( pMarkedObj ); @@ -265,6 +266,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) bool bAttr = false; SfxAllItemSet aAllSet( *rSet.GetPool() ); + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); while ( nWhich ) { sal_uInt16 nSlotId = SfxItemPool::IsWhich(nWhich) @@ -479,7 +481,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) SfxStyleSheet* pStyleSheet = mpDrawView->GetStyleSheet(); if( pStyleSheet ) { - if( nSlotId != SID_STYLE_APPLY && mpDrawView->GetMarkedObjectList().GetMarkCount() == 0 ) + if( nSlotId != SID_STYLE_APPLY && rMarkList.GetMarkCount() == 0 ) { SfxTemplateItem aTmpItem( nWhich, OUString() ); aAllSet.Put( aTmpItem ); @@ -517,7 +519,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) case SID_SET_DEFAULT: { - if( !mpDrawView->GetMarkedObjectList().GetMarkCount() || + if( !rMarkList.GetMarkCount() || ( !mpDrawView->IsTextEdit() && !mpDrawView->GetStyleSheet() ) ) rSet.DisableItem( nWhich ); @@ -581,7 +583,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) } else if (static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Para) { - if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0) + if (rMarkList.GetMarkCount() == 0) { rSet.DisableItem(nWhich); } @@ -591,7 +593,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) // view state; an actual set family can not be considered else { - if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0) + if (rMarkList.GetMarkCount() == 0) { rSet.DisableItem(nWhich); } @@ -601,7 +603,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) case SID_STYLE_UPDATE_BY_EXAMPLE: { - if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0) + if (rMarkList.GetMarkCount() == 0) { rSet.DisableItem(nWhich); } @@ -684,7 +686,6 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) case FN_NUM_NUMBERING_ON: { bool bEnable = false; - const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); const size_t nMarkCount = rMarkList.GetMarkCount(); for (size_t nIndex = 0; nIndex < nMarkCount; ++nIndex) { @@ -731,7 +732,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) // if the view owns selected objects, corresponding items have to be // changed from SfxItemState::DEFAULT (_ON) to SfxItemState::DISABLED - if( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 ) + if( rMarkList.GetMarkCount() != 0 ) { SfxWhichIter aNewIter( *pSet ); nWhich = aNewIter.FirstWhich(); @@ -811,6 +812,7 @@ bool DrawViewShell::HasSelection(bool bText) const { bool bReturn = false; + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); if (bText) { OutlinerView* pOlView = mpDrawView->GetTextEditOutlinerView(); @@ -820,7 +822,7 @@ bool DrawViewShell::HasSelection(bool bText) const bReturn = true; } } - else if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 0) + else if (rMarkList.GetMarkCount() != 0) { bReturn = true; } diff --git a/sd/source/ui/view/drviewsg.cxx b/sd/source/ui/view/drviewsg.cxx index 94fc13e6c606..aa62d437db82 100644 --- a/sd/source/ui/view/drviewsg.cxx +++ b/sd/source/ui/view/drviewsg.cxx @@ -48,7 +48,8 @@ void DrawViewShell::ExecIMap( SfxRequest const & rReq ) if ( rReq.GetSlot() != SID_IMAP_EXEC ) return; - SdrMark* pMark = mpDrawView->GetMarkedObjectList().GetMark(0); + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + SdrMark* pMark = rMarkList.GetMark(0); if ( !pMark ) return; diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx index f5b45b6fe9ac..cfa0fa909f5a 100644 --- a/sd/source/ui/view/sdview.cxx +++ b/sd/source/ui/view/sdview.cxx @@ -503,7 +503,8 @@ void View::MarkListHasChanged() { FmFormView::MarkListHasChanged(); - if( GetMarkedObjectList().GetMarkCount() > 0 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if( rMarkList.GetMarkCount() > 0 ) maSmartTags.deselect(); } @@ -865,12 +866,13 @@ bool View::RestoreDefaultText( SdrTextObj* pTextObj ) void View::SetMarkedOriginalSize() { std::unique_ptr<SdrUndoGroup> pUndoGroup(new SdrUndoGroup(mrDoc)); - const size_t nCount = GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nCount = rMarkList.GetMarkCount(); bool bOK = false; for( size_t i = 0; i < nCount; ++i ) { - SdrObject* pObj = GetMarkedObjectList().GetMark(i)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); if( pObj->GetObjInventor() == SdrInventor::Default ) { @@ -1196,10 +1198,11 @@ bool View::ShouldToggleOn( bool bToggleOn = false; std::unique_ptr<SdrOutliner> pOutliner(SdrMakeOutliner(OutlinerMode::TextObject, rSdrModel)); - const size_t nMarkCount = GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nMarkCount = rMarkList.GetMarkCount(); for (size_t nIndex = 0; nIndex < nMarkCount && !bToggleOn; ++nIndex) { - SdrTextObj* pTextObj = DynCastSdrTextObj(GetMarkedObjectList().GetMark(nIndex)->GetMarkedSdrObj()); + SdrTextObj* pTextObj = DynCastSdrTextObj(rMarkList.GetMark(nIndex)->GetMarkedSdrObj()); if (!pTextObj || pTextObj->IsTextEditActive()) continue; if( dynamic_cast< const SdrTableObj *>( pTextObj ) != nullptr) @@ -1267,10 +1270,11 @@ void View::ChangeMarkedObjectsBulletsNumbering( std::unique_ptr<SdrOutliner> pOutliner(SdrMakeOutliner(OutlinerMode::TextObject, rSdrModel)); OutlinerView aOutlinerView(pOutliner.get(), pWindow); - const size_t nMarkCount = GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nMarkCount = rMarkList.GetMarkCount(); for (size_t nIndex = 0; nIndex < nMarkCount; ++nIndex) { - SdrTextObj* pTextObj = DynCastSdrTextObj(GetMarkedObjectList().GetMark(nIndex)->GetMarkedSdrObj()); + SdrTextObj* pTextObj = DynCastSdrTextObj(rMarkList.GetMark(nIndex)->GetMarkedSdrObj()); if (!pTextObj || pTextObj->IsTextEditActive()) continue; if( dynamic_cast< SdrTableObj *>( pTextObj ) != nullptr) diff --git a/sd/source/ui/view/sdview2.cxx b/sd/source/ui/view/sdview2.cxx index 2112cd62b744..b2f58cfcfffd 100644 --- a/sd/source/ui/view/sdview2.cxx +++ b/sd/source/ui/view/sdview2.cxx @@ -104,9 +104,10 @@ css::uno::Reference< css::datatransfer::XTransferable > View::CreateClipboardDat pNewPage->SetLayoutName( pOldPage->GetLayoutName() ); } - if( GetMarkedObjectList().GetMarkCount() == 1 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if( rMarkList.GetMarkCount() == 1 ) { - SdrObject* pObj = GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if( auto pOle2Obj = dynamic_cast<SdrOle2Obj *>( pObj ) ) if( pOle2Obj->GetObjRef() ) @@ -150,9 +151,10 @@ css::uno::Reference< css::datatransfer::XTransferable > View::CreateDragDataObje OUString aDisplayName; SdrOle2Obj* pSdrOleObj = nullptr; - if( GetMarkedObjectList().GetMarkCount() == 1 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if( rMarkList.GetMarkCount() == 1 ) { - SdrObject* pObj = GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if( auto pOle2Obj = dynamic_cast<SdrOle2Obj *>( pObj ) ) if( pOle2Obj->GetObjRef() ) @@ -217,7 +219,8 @@ void View::UpdateSelectionClipboard() // false case return; if (!mpViewSh->GetActiveWindow()) return; - if (GetMarkedObjectList().GetMarkCount()) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (rMarkList.GetMarkCount()) CreateSelectionDataObject( this ); else ClearSelectionClipboard(); @@ -240,14 +243,15 @@ void View::DoCut() { const OutlinerView* pOLV = GetTextEditOutlinerView(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); if( pOLV ) const_cast<OutlinerView*>(pOLV)->Cut(); - else if( GetMarkedObjectList().GetMarkCount() != 0 ) + else if( rMarkList.GetMarkCount() != 0 ) { OUString aStr(SdResId(STR_UNDO_CUT)); DoCopy(); - BegUndo(aStr + " " + GetMarkedObjectList().GetMarkDescription()); + BegUndo(aStr + " " + rMarkList.GetMarkDescription()); DeleteMarked(); EndUndo(); } @@ -257,9 +261,10 @@ void View::DoCopy() { const OutlinerView* pOLV = GetTextEditOutlinerView(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); if( pOLV ) const_cast<OutlinerView*>(pOLV)->Copy(); - else if( GetMarkedObjectList().GetMarkCount() != 0 ) + else if( rMarkList.GetMarkCount() != 0 ) { BrkAction(); CreateClipboardDataObject(); @@ -341,7 +346,8 @@ void View::DoPaste (::sd::Window* pWindow) void View::StartDrag( const Point& rStartPos, vcl::Window* pWindow ) { - if (GetMarkedObjectList().GetMarkCount() == 0 || !IsAction() || !mpViewSh || !pWindow) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (rMarkList.GetMarkCount() == 0 || !IsAction() || !mpViewSh || !pWindow) return; BrkAction(); @@ -451,9 +457,10 @@ sal_Int8 View::AcceptDrop( const AcceptDropEvent& rEvt, DropTargetHelper& rTarge { ::tools::Rectangle aRect( pOLV->GetOutputArea() ); - if (GetMarkedObjectList().GetMarkCount() == 1) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (rMarkList.GetMarkCount() == 1) { - SdrMark* pMark = GetMarkedObjectList().GetMark(0); + SdrMark* pMark = rMarkList.GetMark(0); SdrObject* pObj = pMark->GetMarkedSdrObj(); aRect.Union( pObj->GetLogicRect() ); } @@ -632,9 +639,10 @@ sal_Int8 View::ExecuteDrop( const ExecuteDropEvent& rEvt, { ::tools::Rectangle aRect( pOLV->GetOutputArea() ); - if( GetMarkedObjectList().GetMarkCount() == 1 ) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if( rMarkList.GetMarkCount() == 1 ) { - SdrMark* pMark = GetMarkedObjectList().GetMark(0); + SdrMark* pMark = rMarkList.GetMark(0); SdrObject* pObj = pMark->GetMarkedSdrObj(); aRect.Union( pObj->GetLogicRect() ); } diff --git a/sd/source/ui/view/sdview3.cxx b/sd/source/ui/view/sdview3.cxx index 79401ef28aea..6a205211161d 100644 --- a/sd/source/ui/view/sdview3.cxx +++ b/sd/source/ui/view/sdview3.cxx @@ -401,11 +401,12 @@ bool View::InsertData( const TransferableDataHelper& rDataHelper, if( !pPV->IsLayerLocked( aLayer ) ) { pOwnData->SetInternalMove( true ); - GetMarkedObjectList().ForceSort(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + rMarkList.ForceSort(); - for( size_t nM = 0; nM < GetMarkedObjectList().GetMarkCount(); ++nM ) + for( size_t nM = 0; nM < rMarkList.GetMarkCount(); ++nM ) { - SdrMark* pM = GetMarkedObjectList().GetMark( nM ); + SdrMark* pM = rMarkList.GetMark( nM ); SdrObject* pO = pM->GetMarkedSdrObj(); if( pO ) diff --git a/sd/source/ui/view/sdview5.cxx b/sd/source/ui/view/sdview5.cxx index c593526189c2..dcd9d93c7769 100644 --- a/sd/source/ui/view/sdview5.cxx +++ b/sd/source/ui/view/sdview5.cxx @@ -60,11 +60,11 @@ SdrObject* View::GetSelectedSingleObject(SdPage const * pPage) SdrObject* pRet = nullptr; if( pPage ) { + const SdrMarkList& rMarkList = GetMarkedObjectList(); + // first try selected shape - if ( GetMarkedObjectList().GetMarkCount() != 0 ) + if ( rMarkList.GetMarkCount() != 0 ) { - const SdrMarkList& rMarkList = GetMarkedObjectList(); - if (rMarkList.GetMarkCount() == 1) { SdrMark* pMark = rMarkList.GetMark(0); diff --git a/sd/source/ui/view/viewoverlaymanager.cxx b/sd/source/ui/view/viewoverlaymanager.cxx index dfc6c61759fc..c786a70bd5e0 100644 --- a/sd/source/ui/view/viewoverlaymanager.cxx +++ b/sd/source/ui/view/viewoverlaymanager.cxx @@ -318,8 +318,9 @@ bool ChangePlaceholderTag::MouseButtonDown( const MouseEvent& /*rMEvt*/, SmartHd if( auto pPlaceholder = mxPlaceholderObj.get() ) { + const SdrMarkList& rMarkList = mrView.GetMarkedObjectList(); // mark placeholder if it is not currently marked (or if also others are marked) - if( !mrView.IsObjMarked( pPlaceholder.get() ) || (mrView.GetMarkedObjectList().GetMarkCount() != 1) ) + if( !mrView.IsObjMarked( pPlaceholder.get() ) || (rMarkList.GetMarkCount() != 1) ) { SdrPageView* pPV = mrView.GetSdrPageView(); mrView.UnmarkAllObj(pPV ); diff --git a/sd/source/ui/view/viewshe3.cxx b/sd/source/ui/view/viewshe3.cxx index 2bf5fafdfe44..31383ea7d560 100644 --- a/sd/source/ui/view/viewshe3.cxx +++ b/sd/source/ui/view/viewshe3.cxx @@ -66,7 +66,8 @@ void ViewShell::GetMenuState( SfxItemSet &rSet ) SdrView* pDrView = GetDrawView(); - if( pDrView->GetMarkedObjectList().GetMarkCount() != 0 ) + const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); + if( rMarkList.GetMarkCount() != 0 ) { SfxStyleSheet* pStyleSheet = pDrView->GetStyleSheet(); if( pStyleSheet ) diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx index d5d23631f701..2f2cecf7aabd 100644 --- a/sd/source/ui/view/viewshel.cxx +++ b/sd/source/ui/view/viewshel.cxx @@ -450,7 +450,8 @@ bool ViewShell::KeyInput(const KeyEvent& rKEvt, ::sd::Window* pWin) OSL_ASSERT(GetViewShell() != nullptr); bReturn = GetViewShell()->KeyInput(rKEvt); - const size_t OriCount = GetView()->GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = GetView()->GetMarkedObjectList(); + const size_t OriCount = rMarkList.GetMarkCount(); if(!bReturn) { if(useInputForSlideShow()) //IASS @@ -486,7 +487,7 @@ bool ViewShell::KeyInput(const KeyEvent& rKEvt, ::sd::Window* pWin) } } } - const size_t EndCount = GetView()->GetMarkedObjectList().GetMarkCount(); + const size_t EndCount = rMarkList.GetMarkCount(); // Here, oriCount or endCount must have one value=0, another value > 0, then to switch focus between Document and shape objects if(bReturn && (OriCount + EndCount > 0) && (OriCount * EndCount == 0)) SwitchActiveViewFireFocus(); commit ac3f2bd367743cc28fe4728279c65125c6f30e7a Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Wed May 29 18:30:33 2024 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri May 31 09:24:48 2024 +0200 svx: Reduce number of calls to GetMarkedObjectList() from 447 to 208 Change-Id: I7b289b61a4ec416b9809f1433bb7a824ef488cb9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168227 Tested-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx index 31892b253b97..3d8d71f4d2e1 100644 --- a/svx/source/dialog/graphctl.cxx +++ b/svx/source/dialog/graphctl.cxx @@ -305,12 +305,13 @@ bool GraphCtrl::KeyInput( const KeyEvent& rKEvt ) { if ( mbSdrMode ) { + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if ( pView->IsAction() ) { pView->BrkAction(); bProc = true; } - else if ( pView->GetMarkedObjectList().GetMarkCount() != 0 ) + else if ( rMarkList.GetMarkCount() != 0 ) { pView->UnmarkAllObj(); bProc = true; @@ -410,7 +411,8 @@ bool GraphCtrl::KeyInput( const KeyEvent& rKEvt ) nY = 0; } - if (pView->GetMarkedObjectList().GetMarkCount() != 0 && !aCode.IsMod1() ) + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() != 0 && !aCode.IsMod1() ) { if(aCode.IsMod2()) { diff --git a/svx/source/dialog/imapwnd.cxx b/svx/source/dialog/imapwnd.cxx index ffe1a047d859..0de8de06a050 100644 --- a/svx/source/dialog/imapwnd.cxx +++ b/svx/source/dialog/imapwnd.cxx @@ -504,7 +504,7 @@ bool IMapWindow::Command(const CommandEvent& rCEvt) mxPopupMenu->set_sensitive(u"url"_ustr, false); mxPopupMenu->set_sensitive(u"active"_ustr, false); mxPopupMenu->set_sensitive(u"macro"_ustr, false); - mxPopupMenu->set_sensitive(u"selectall"_ustr, pModel->GetPage(0)->GetObjCount() != pView->GetMarkedObjectList().GetMarkCount()); + mxPopupMenu->set_sensitive(u"selectall"_ustr, pModel->GetPage(0)->GetObjCount() != rMarkList.GetMarkCount()); if ( !nMarked ) { diff --git a/svx/source/engine3d/view3d.cxx b/svx/source/engine3d/view3d.cxx index 3507bc1972bd..132eca98536b 100644 --- a/svx/source/engine3d/view3d.cxx +++ b/svx/source/engine3d/view3d.cxx @@ -88,9 +88,10 @@ public: Impl3DMirrorConstructOverlay::Impl3DMirrorConstructOverlay(const E3dView& rView) : mrView(rView), - mnCount(rView.GetMarkedObjectList().GetMarkCount()), mpPolygons(nullptr) { + const SdrMarkList& rMarkList = mrView.GetMarkedObjectList(); + mnCount = rMarkList.GetMarkCount(); if(!mnCount) return; @@ -102,7 +103,7 @@ Impl3DMirrorConstructOverlay::Impl3DMirrorConstructOverlay(const E3dView& rView) { for(size_t a = 0; a < mnCount; ++a) { - SdrObject* pObject = mrView.GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj(); + SdrObject* pObject = rMarkList.GetMark(a)->GetMarkedSdrObj(); if(pObject) { @@ -119,7 +120,7 @@ Impl3DMirrorConstructOverlay::Impl3DMirrorConstructOverlay(const E3dView& rView) for(size_t a = 0; a < mnCount; ++a) { - SdrObject* pObject = mrView.GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj(); + SdrObject* pObject = rMarkList.GetMark(a)->GetMarkedSdrObj(); mpPolygons[mnCount - (a + 1)] = pObject->TakeXorPoly(); } } @@ -217,10 +218,11 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const bool bSpecialHandling = false; E3dScene *pScene = nullptr; - const size_t nCnt = GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nCnt = rMarkList.GetMarkCount(); for(size_t nObjs = 0; nObjs < nCnt; ++nObjs) { - SdrObject *pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(auto pCompoundObject = dynamic_cast<E3dCompoundObject*>(pObj)) { // related scene @@ -249,7 +251,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const // objects for(size_t nObjs = 0; nObjs < nCnt; ++nObjs) { - SdrObject *pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(auto pCompoundObject = dynamic_cast<E3dCompoundObject*>(pObj)) { // related scene @@ -264,7 +266,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const for(size_t nObjs = 0; nObjs < nCnt; ++nObjs) { - SdrObject *pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(auto p3DObj = DynCastE3dObject(pObj)) { // Select object @@ -276,7 +278,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const if(nullptr != pScene) { // code from parent - GetMarkedObjectList().ForceSort(); + rMarkList.ForceSort(); pScene->SetDrawOnlySelected(true); pScene->SingleObjectPainter(rOut); @@ -286,7 +288,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const // Reset selection flag for(size_t nObjs = 0; nObjs < nCnt; ++nObjs) { - SdrObject *pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(auto pCompoundObject = dynamic_cast<E3dCompoundObject*>(pObj)) { // related scene @@ -313,12 +315,13 @@ std::unique_ptr<SdrModel> E3dView::CreateMarkedObjModel() const { // Does 3D objects exist which scenes are not selected? bool bSpecialHandling(false); - const size_t nCount(GetMarkedObjectList().GetMarkCount()); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nCount(rMarkList.GetMarkCount()); E3dScene *pScene = nullptr; for(size_t nObjs = 0; nObjs < nCount; ++nObjs) { - const SdrObject* pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + const SdrObject* pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(!bSpecialHandling) if(auto pCompoundObj = dynamic_cast< const E3dCompoundObject*>(pObj)) @@ -358,7 +361,7 @@ std::unique_ptr<SdrModel> E3dView::CreateMarkedObjModel() const // and collect SnapRect of selected objects for(size_t nObjs = 0; nObjs < nCount; ++nObjs) { - SdrObject *pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(auto p3DObj = dynamic_cast<E3dCompoundObject*>(pObj)) { @@ -370,7 +373,7 @@ std::unique_ptr<SdrModel> E3dView::CreateMarkedObjModel() const // create new mark list which contains all indirectly selected3d // scenes as selected objects - SdrMarkList aOldML(GetMarkedObjectList()); + SdrMarkList aOldML(rMarkList); SdrMarkList aNewML; SdrMarkList& rCurrentMarkList = const_cast<E3dView*>(this)->GetMarkedObjectListWriteAccess(); rCurrentMarkList = aNewML; @@ -585,9 +588,10 @@ bool E3dView::IsConvertTo3DObjPossible() const bool bGroupSelected(false); bool bRetval(true); - for(size_t a=0; !bAny3D && a<GetMarkedObjectList().GetMarkCount(); ++a) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + for(size_t a=0; !bAny3D && a<rMarkList.GetMarkCount(); ++a) { - SdrObject *pObj = GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(a)->GetMarkedSdrObj(); if(pObj) { ImpIsConvertTo3DPossible(pObj, bAny3D, bGroupSelected); @@ -812,7 +816,8 @@ void E3dView::ImpCreate3DObject(E3dScene* pScene, SdrObject* pObj, bool bExtrude void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const basegfx::B2DPoint& rPnt1, const basegfx::B2DPoint& rPnt2) { - if(GetMarkedObjectList().GetMarkCount() == 0) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if(rMarkList.GetMarkCount() == 0) return; // Create undo @@ -821,7 +826,7 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const basegfx::B2DPoint& rPnt1 else BegUndo(SvxResId(RID_SVX_3D_UNDO_LATHE)); - SdrModel& rSdrModel(GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()->getSdrModelFromSdrObject()); + SdrModel& rSdrModel(rMarkList.GetMark(0)->GetMarkedSdrObj()->getSdrModelFromSdrObject()); // Create a new scene for the created 3D object rtl::Reference<E3dScene> pScene = new E3dScene(rSdrModel); @@ -877,9 +882,9 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const basegfx::B2DPoint& rPnt1 aInvLatheMat.invert(); // SnapRect extension enables mirroring in the axis of rotation - for(size_t a=0; a<GetMarkedObjectList().GetMarkCount(); ++a) + for(size_t a=0; a<rMarkList.GetMarkCount(); ++a) { - SdrMark* pMark = GetMarkedObjectList().GetMark(a); + SdrMark* pMark = rMarkList.GetMark(a); SdrObject* pObj = pMark->GetMarkedSdrObj(); tools::Rectangle aTurnRect = pObj->GetSnapRect(); basegfx::B2DPoint aRot; @@ -917,9 +922,9 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const basegfx::B2DPoint& rPnt1 // Walk through the selection and convert it into 3D, complete with // Conversion to SdrPathObject, also fonts - for(size_t a=0; a<GetMarkedObjectList().GetMarkCount(); ++a) + for(size_t a=0; a<rMarkList.GetMarkCount(); ++a) { - SdrMark* pMark = GetMarkedObjectList().GetMark(a); + SdrMark* pMark = rMarkList.GetMark(a); SdrObject* pObj = pMark->GetMarkedSdrObj(); ImpCreate3DObject(pScene.get(), pObj, bExtrude, fDepth, aLatheMat); @@ -945,7 +950,7 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const basegfx::B2DPoint& rPnt1 // Insert scene instead of the first selected object and throw away // all the old objects - SdrMark* pMark = GetMarkedObjectList().GetMark(0); + SdrMark* pMark = rMarkList.GetMark(0); if (pMark) { SdrObject* pRepObj = pMark->GetMarkedSdrObj(); @@ -1139,7 +1144,8 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl, short nMinMov, SdrDragMethod* pForcedMeth) { - if(Is3DRotationCreationActive() && GetMarkedObjectList().GetMarkCount()) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if(Is3DRotationCreationActive() && rMarkList.GetMarkCount()) { // Determine all selected polygons and return the mirrored helper overlay mpMirrorOverlay->SetMirrorAxis(maRef1, maRef2); @@ -1160,15 +1166,15 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* pOut, bOwnActionNecessary = false; } - if(bOwnActionNecessary && GetMarkedObjectList().GetMarkCount() > 0) + if(bOwnActionNecessary && rMarkList.GetMarkCount() > 0) { E3dDragConstraint eConstraint = E3dDragConstraint::XYZ; bool bThereAreRootScenes = false; bool bThereAre3DObjects = false; - const size_t nCnt = GetMarkedObjectList().GetMarkCount(); + const size_t nCnt = rMarkList.GetMarkCount(); for(size_t nObjs = 0; nObjs < nCnt; ++nObjs) { - SdrObject *pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(pObj) { if( const E3dScene* pScene = DynCastE3dScene(pObj) ) @@ -1218,7 +1224,7 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* pOut, // do not mask the allowed rotations eConstraint &= E3dDragConstraint::XYZ; - pForcedMeth = new E3dDragRotate(*this, GetMarkedObjectList(), eConstraint, IsSolidDragging()); + pForcedMeth = new E3dDragRotate(*this, rMarkList, eConstraint, IsSolidDragging()); } break; @@ -1226,7 +1232,7 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* pOut, { if(!bThereAreRootScenes) { - pForcedMeth = new E3dDragMove(*this, GetMarkedObjectList(), meDragHdl, eConstraint, IsSolidDragging()); + pForcedMeth = new E3dDragMove(*this, rMarkList, meDragHdl, eConstraint, IsSolidDragging()); } } break; @@ -1288,7 +1294,8 @@ void E3dView::InitScene(E3dScene* pScene, double fW, double fH, double fCamZ) void E3dView::Start3DCreation() { - if (!GetMarkedObjectList().GetMarkCount()) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (!rMarkList.GetMarkCount()) return; //positioned @@ -1328,9 +1335,9 @@ void E3dView::Start3DCreation() // and then attach the marks at the top and bottom of the object basegfx::B2DRange aR; - for(size_t nMark = 0; nMark < GetMarkedObjectList().GetMarkCount(); ++nMark) + for(size_t nMark = 0; nMark < rMarkList.GetMarkCount(); ++nMark) { - SdrObject* pMark = GetMarkedObjectList().GetMark(nMark)->GetMarkedSdrObj(); + SdrObject* pMark = rMarkList.GetMark(nMark)->GetMarkedSdrObj(); basegfx::B2DPolyPolygon aXPP(pMark->TakeXorPoly()); aR.expand(basegfx::utils::getRange(aXPP)); } @@ -1368,7 +1375,7 @@ void E3dView::Start3DCreation() SetMarkHandles(nullptr); //HMHif (bVis) ShowMarkHdl(); - if (GetMarkedObjectList().GetMarkCount() != 0) MarkListHasChanged(); + if (rMarkList.GetMarkCount() != 0) MarkListHasChanged(); // Show mirror polygon IMMEDIATELY const SdrHdlList &aHdlList = GetHdlList(); @@ -1424,7 +1431,8 @@ void E3dView::End3DCreation(bool bUseDefaultValuesForMirrorAxes) { ResetCreationActive(); - if(GetMarkedObjectList().GetMarkCount() == 0) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if(rMarkList.GetMarkCount() == 0) return; if(bUseDefaultValuesForMirrorAxes) @@ -1472,13 +1480,14 @@ void E3dView::InitView () bool E3dView::IsBreak3DObjPossible() const { - const size_t nCount = GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nCount = rMarkList.GetMarkCount(); if (nCount > 0) { for (size_t i = 0; i < nCount; ++i) { - SdrObject* pObj = GetMarkedObjectList().GetMark(i)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); if (auto p3dObject = DynCastE3dObject(pObj)) { @@ -1504,13 +1513,14 @@ void E3dView::Break3DObj() if(!IsBreak3DObjPossible()) return; + const SdrMarkList& rMarkList = GetMarkedObjectList(); // ALL selected objects are changed - const size_t nCount = GetMarkedObjectList().GetMarkCount(); + const size_t nCount = rMarkList.GetMarkCount(); BegUndo(SvxResId(RID_SVX_3D_UNDO_BREAK_LATHE)); for(size_t a=0; a<nCount; ++a) { - E3dObject* pObj = static_cast<E3dObject*>(GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj()); + E3dObject* pObj = static_cast<E3dObject*>(rMarkList.GetMark(a)->GetMarkedSdrObj()); BreakSingle3DObj(pObj); } DeleteMarked(); @@ -1553,12 +1563,13 @@ void E3dView::CheckPossibilities() if(!(m_bGroupPossible || m_bUnGroupPossible || m_bGrpEnterPossible)) return; - const size_t nMarkCnt = GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nMarkCnt = rMarkList.GetMarkCount(); bool bCompound = false; bool b3DObject = false; for(size_t nObjs = 0; (nObjs < nMarkCnt) && !bCompound; ++nObjs) { - SdrObject *pObj = GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj(); + SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj(); if(dynamic_cast< const E3dCompoundObject* >(pObj)) bCompound = true; if(DynCastE3dObject(pObj)) diff --git a/svx/source/engine3d/view3d1.cxx b/svx/source/engine3d/view3d1.cxx index db5466dd287b..6b206f684b74 100644 --- a/svx/source/engine3d/view3d1.cxx +++ b/svx/source/engine3d/view3d1.cxx @@ -36,9 +36,10 @@ void E3dView::ConvertMarkedToPolyObj() { rtl::Reference<SdrObject> pNewObj; - if (GetMarkedObjectList().GetMarkCount() == 1) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (rMarkList.GetMarkCount() == 1) { - SdrObject* pObj = GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); if (pObj) { @@ -107,7 +108,7 @@ SfxItemSet E3dView::Get3DAttributes() const for(size_t a = 0; a < nMarkCnt; ++a) { - SdrObject* pObj = GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(a)->GetMarkedSdrObj(); Imp_E3dView_InorderRun3DObjects(*pObj, nSelectedItems); } @@ -150,7 +151,7 @@ void E3dView::Set3DAttributes( const SfxItemSet& rAttr) for(size_t a = 0; a < nMarkCnt; ++a) { - SdrObject* pObj = GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(a)->GetMarkedSdrObj(); Imp_E3dView_InorderRun3DObjects(*pObj, nSelectedItems); } diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx index 995ef538a2f6..369559233843 100644 --- a/svx/source/svdraw/svddrgmt.cxx +++ b/svx/source/svdraw/svddrgmt.cxx @@ -361,7 +361,8 @@ void SdrDragMethod::insertNewlyCreatedOverlayObjectForSdrDragMethod( void SdrDragMethod::createSdrDragEntries_SolidDrag() { - const size_t nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount()); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + const size_t nMarkCount(rMarkList.GetMarkCount()); SdrPageView* pPV = getSdrDragView().GetSdrPageView(); if(!pPV) @@ -369,7 +370,7 @@ void SdrDragMethod::createSdrDragEntries_SolidDrag() for(size_t a = 0; a < nMarkCount; ++a) { - SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(a); + SdrMark* pM = rMarkList.GetMark(a); if(pM->GetPageView() == pPV) { @@ -420,14 +421,15 @@ void SdrDragMethod::createSdrDragEntries_SolidDrag() void SdrDragMethod::createSdrDragEntries_PolygonDrag() { - const size_t nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount()); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + const size_t nMarkCount(rMarkList.GetMarkCount()); bool bNoPolygons(getSdrDragView().IsNoDragXorPolys() || nMarkCount > SdrDragView::GetDragXorPolyLimit()); basegfx::B2DPolyPolygon aResult; sal_uInt32 nPointCount(0); for(size_t a = 0; !bNoPolygons && a < nMarkCount; ++a) { - SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(a); + SdrMark* pM = rMarkList.GetMark(a); if(pM->GetPageView() == getSdrDragView().GetSdrPageView()) { @@ -467,12 +469,13 @@ void SdrDragMethod::createSdrDragEntries_PolygonDrag() void SdrDragMethod::createSdrDragEntries_PointDrag() { - const size_t nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount()); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + const size_t nMarkCount(rMarkList.GetMarkCount()); std::vector< basegfx::B2DPoint > aPositions; for(size_t nm = 0; nm < nMarkCount; ++nm) { - SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(nm); + SdrMark* pM = rMarkList.GetMark(nm); if(pM->GetPageView() == getSdrDragView().GetSdrPageView()) { @@ -512,12 +515,13 @@ void SdrDragMethod::createSdrDragEntries_PointDrag() void SdrDragMethod::createSdrDragEntries_GlueDrag() { - const size_t nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount()); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + const size_t nMarkCount(rMarkList.GetMarkCount()); std::vector< basegfx::B2DPoint > aPositions; for(size_t nm = 0; nm < nMarkCount; ++nm) { - SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(nm); + SdrMark* pM = rMarkList.GetMark(nm); if(pM->GetPageView() == getSdrDragView().GetSdrPageView()) { @@ -1628,12 +1632,12 @@ void SdrDragMove::MoveSdrDrag(const Point& rNoSnapPnt_) if (getSdrDragView().IsDraggingGluePoints()) { // restrict gluepoints to the BoundRect of the Obj aPt1-=DragStat().GetStart(); - const SdrMarkList& rML=GetMarkedObjectList(); - const size_t nMarkCount=rML.GetMarkCount(); + const SdrMarkList& rMarkList = GetMarkedObjectList(); + const size_t nMarkCount = rMarkList.GetMarkCount(); for (size_t nMarkNum=0; nMarkNum<nMarkCount; ++nMarkNum) { - const SdrMark* pM=rML.GetMark(nMarkNum); + const SdrMark* pM = rMarkList.GetMark(nMarkNum); const SdrUShortCont& rPts = pM->GetMarkedGluePoints(); if (!rPts.empty()) @@ -2712,7 +2716,8 @@ void SdrDragGradient::MoveSdrDrag(const Point& rPnt) } // new state - pIAOHandle->FromIAOToItem(getSdrDragView().GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(), false, false); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + pIAOHandle->FromIAOToItem(rMarkList.GetMark(0)->GetMarkedSdrObj(), false, false); } bool SdrDragGradient::EndSdrDrag(bool /*bCopy*/) @@ -2721,7 +2726,8 @@ bool SdrDragGradient::EndSdrDrag(bool /*bCopy*/) Ref2() = pIAOHandle->Get2ndPos(); // new state - pIAOHandle->FromIAOToItem(getSdrDragView().GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(), true, true); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + pIAOHandle->FromIAOToItem(rMarkList.GetMark(0)->GetMarkedSdrObj(), true, true); return true; } @@ -2739,7 +2745,8 @@ void SdrDragGradient::CancelSdrDrag() pIAOHandle->GetColorHdl2()->SetPos(DragStat().GetRef2()); // new state - pIAOHandle->FromIAOToItem(getSdrDragView().GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(), true, false); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + pIAOHandle->FromIAOToItem(rMarkList.GetMark(0)->GetMarkedSdrObj(), true, false); } PointerStyle SdrDragGradient::GetSdrDragPointer() const @@ -3335,11 +3342,12 @@ bool SdrDragCrook::EndSdrDrag(bool bCopy) if (bCopy) getSdrDragView().CopyMarkedObj(); - const size_t nMarkCount=getSdrDragView().GetMarkedObjectList().GetMarkCount(); + const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList(); + const size_t nMarkCount=rMarkList.GetMarkCount(); for (size_t nm=0; nm<nMarkCount; ++nm) { - SdrMark* pM=getSdrDragView().GetMarkedObjectList().GetMark(nm); + SdrMark* pM=rMarkList.GetMark(nm); SdrObject* pO=pM->GetMarkedSdrObj(); Point aCtr0(pO->GetSnapRect().Center()); Point aCtr1(aCtr0); diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx index b7ae687d9d0c..d123e900e9c7 100644 --- a/svx/source/svdraw/svddrgv.cxx +++ b/svx/source/svdraw/svddrgv.cxx @@ -144,11 +144,12 @@ bool SdrDragView::TakeDragObjAnchorPos(Point& rPos, bool bTR ) const tools::Rectangle aR; TakeActionRect(aR); rPos = bTR ? aR.TopRight() : aR.TopLeft(); - if (GetMarkedObjectList().GetMarkCount()==1 && IsDragObj() && // only on single selection + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (rMarkList.GetMarkCount()==1 && IsDragObj() && // only on single selection !IsDraggingPoints() && !IsDraggingGluePoints() && // not when moving points dynamic_cast<const SdrDragMovHdl*>( mpCurrentSdrDragMethod.get() ) == nullptr) // not when moving handles { - SdrObject* pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj(); if (auto pCaptionObj = dynamic_cast<SdrCaptionObj*>(pObj)) { Point aPt(pCaptionObj->GetTailPos()); @@ -206,11 +207,12 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl Point aPnt(rPnt); basegfx::B2DVector aGridOffset(0.0, 0.0); + const SdrMarkList& rMarkList = GetMarkedObjectList(); // Coordinate maybe affected by GridOffset, so we may need to // adapt to Model-coordinates here if((comphelper::LibreOfficeKit::isActive() && mpMarkedObj - && getPossibleGridOffsetForSdrObject(aGridOffset, GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(), GetSdrPageView())) + && getPossibleGridOffsetForSdrObject(aGridOffset, rMarkList.GetMark(0)->GetMarkedSdrObj(), GetSdrPageView())) || (getPossibleGridOffsetForPosition( aGridOffset, basegfx::B2DPoint(aPnt.X(), aPnt.Y()), @@ -267,9 +269,9 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl { // are 3D objects selected? bool b3DObjSelected = false; - for(size_t a=0; !b3DObjSelected && a<GetMarkedObjectList().GetMarkCount(); ++a) + for(size_t a=0; !b3DObjSelected && a<rMarkList.GetMarkCount(); ++a) { - SdrObject* pObj = GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj(); + SdrObject* pObj = rMarkList.GetMark(a)->GetMarkedSdrObj(); if(DynCastE3dObject(pObj)) b3DObjSelected = true; } @@ -415,9 +417,9 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl } bool bSingleTextObjMark = false; // SJ: #i100490# - if ( GetMarkedObjectList().GetMarkCount() == 1 ) + if ( rMarkList.GetMarkCount() == 1 ) { - mpMarkedObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + mpMarkedObj=rMarkList.GetMark(0)->GetMarkedSdrObj(); if ( mpMarkedObj && DynCastSdrTextObj( mpMarkedObj) != nullptr && static_cast<SdrTextObj*>(mpMarkedObj)->IsTextFrame() ) @@ -433,7 +435,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl { if(SdrHdlKind::Move == meDragHdl) { - const bool bCustomShapeSelected(1 == GetMarkedObjectList().GetMarkCount() && dynamic_cast<const SdrObjCustomShape*>(GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()) != nullptr); + const bool bCustomShapeSelected(1 == rMarkList.GetMarkCount() && dynamic_cast<const SdrObjCustomShape*>(rMarkList.GetMark(0)->GetMarkedSdrObj()) != nullptr); if(bCustomShapeSelected) { @@ -442,7 +444,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl } else if(SdrHdlKind::Poly == meDragHdl) { - const bool bConnectorSelected(1 == GetMarkedObjectList().GetMarkCount() && dynamic_cast<const SdrEdgeObj*>(GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()) != nullptr); + const bool bConnectorSelected(1 == rMarkList.GetMarkCount() && dynamic_cast<const SdrEdgeObj*>(rMarkList.GetMark(0)->GetMarkedSdrObj()) != nullptr); if(bConnectorSelected) { @@ -513,8 +515,9 @@ void SdrDragView::MovDragObj(const Point& rPnt) // Coordinate maybe affected by GridOffset, so we may need to // adapt to Model-coordinates here + const SdrMarkList& rMarkList = GetMarkedObjectList(); if((comphelper::LibreOfficeKit::isActive() && mpMarkedObj - && getPossibleGridOffsetForSdrObject(aGridOffset, GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(), GetSdrPageView())) + && getPossibleGridOffsetForSdrObject(aGridOffset, rMarkList.GetMark(0)->GetMarkedSdrObj(), GetSdrPageView())) || (getPossibleGridOffsetForPosition( aGridOffset, basegfx::B2DPoint(aPnt.X(), aPnt.Y()), @@ -711,12 +714,13 @@ bool SdrDragView::EndInsObjPoint(SdrCreateCmd eCmd) bool SdrDragView::IsInsGluePointPossible() const { bool bRet=false; - if (IsInsGluePointMode() && GetMarkedObjectList().GetMarkCount() != 0) + const SdrMarkList& rMarkList = GetMarkedObjectList(); + if (IsInsGluePointMode() && rMarkList.GetMarkCount() != 0) { - if (GetMarkedObjectList().GetMarkCount()==1) + if (rMarkList.GetMarkCount()==1) { // return sal_False, if only 1 object which is a connector. - const SdrObject* pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + const SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj(); if (dynamic_cast<const SdrEdgeObj *>(pObj) == nullptr) { bRet=true; diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx index f982a037b0f4..15fff60a8490 100644 --- a/svx/source/svdraw/svdedtv.cxx +++ b/svx/source/svdraw/svdedtv.cxx @@ -490,9 +490,10 @@ void SdrEditView::CheckPossibilities() if (!m_bPossibilitiesDirty) return; + const SdrMarkList& rMarkList = GetMarkedObjectList(); ImpResetPossibilityFlags(); - GetMarkedObjectList().ForceSort(); - const size_t nMarkCount = GetMarkedObjectList().GetMarkCount(); + rMarkList.ForceSort(); + const size_t nMarkCount = rMarkList.GetMarkCount(); if (nMarkCount != 0) { m_bReverseOrderPossible = (nMarkCount >= 2); @@ -504,7 +505,7 @@ void SdrEditView::CheckPossibilities() { // check bCombinePossible more thoroughly // still missing ... - const SdrObject* pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + const SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj(); //const SdrPathObj* pPath=dynamic_cast<SdrPathObj*>( pObj ); bool bGroup=pObj->GetSubList()!=nullptr; bool bHasText=pObj->GetOutlinerParaObject()!=nullptr; @@ -534,7 +535,7 @@ void SdrEditView::CheckPossibilities() if(m_bGradientAllowed) { // gradient depends on fill style - const SdrMark* pM = GetMarkedObjectList().GetMark(0); + const SdrMark* pM = rMarkList.GetMark(0); const SdrObject* pObj = pM->GetMarkedSdrObj(); // may be group object, so get merged ItemSet @@ -557,7 +558,7 @@ void SdrEditView::CheckPossibilities() const SdrPageView* pPV0=nullptr; for (size_t nm=0; nm<nMarkCount; ++nm) { - const SdrMark* pM=GetMarkedObjectList().GetMark(nm); + const SdrMark* pM=rMarkList.GetMark(nm); const SdrObject* pObj=pM->GetMarkedSdrObj(); const SdrPageView* pPV=pM->GetPageView(); if (pPV!=pPV0) { @@ -663,7 +664,7 @@ void SdrEditView::CheckPossibilities() // Don't allow moving glued connectors. // Currently only implemented for single selection. if (nMarkCount==1) { - SdrObject* pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); + SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj(); SdrEdgeObj* pEdge=dynamic_cast<SdrEdgeObj*>( pObj ); if (pEdge!=nullptr) { -e ... etc. - the rest is truncated