diff options
author | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2016-08-02 14:30:09 +0200 |
---|---|---|
committer | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2016-09-29 04:19:03 +0000 |
commit | a87a31602165cb2a37c32f5928e4f9daade7271d (patch) | |
tree | b169a6d961d7a0cbbf61c18a236d3a0c2f40f698 /svx/source/svdraw/svdmrkv.cxx | |
parent | 2f6f851acab5284f516ad6a91c05149ffed575d2 (diff) |
merge SdrPageView::IsObjSelectable and SdrPageView::IsObjMarkable
These member functions have the same purpose and share same
functionality in great parts.
The checks are rewritten for better readability and merged
into IsObjMarkable.
This adds IsInserted and a same page check to the function.
Tested selection of nested grouped objects.
Tested selection of objects in front of objects on master pages.
The fix for #i43302# doesn't seem nessasary (saw no way to create
empty groups) but leaving it on for now.
Change-Id: I35d84c66dfd832d626ba2700f22d4c437593cac7
Reviewed-on: https://gerrit.libreoffice.org/27786
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Diffstat (limited to 'svx/source/svdraw/svdmrkv.cxx')
-rw-r--r-- | svx/source/svdraw/svdmrkv.cxx | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx index 3cc38362255b..5c664915be50 100644 --- a/svx/source/svdraw/svdmrkv.cxx +++ b/svx/source/svdraw/svdmrkv.cxx @@ -1270,33 +1270,6 @@ SfxViewShell* SdrMarkView::GetSfxViewShell() const return SfxViewShell::Current(); } -bool SdrPageView::IsObjSelectable(SdrObject *pObj) const -{ - SdrLayerID nLay=pObj->GetLayer(); - bool bRaus=!pObj->IsInserted(); // Obj deleted? - if (!pObj->Is3DObj()) { - bRaus=bRaus || pObj->GetPage()!=GetPage(); // Obj suddenly in different Page or Group - } - bRaus=bRaus || GetLockedLayers().IsSet(nLay) || // Layer locked? - !GetVisibleLayers().IsSet(nLay); // Layer invisible? - - if( !bRaus ) - bRaus = !pObj->IsVisible(); // invisible objects can not be selected - - if (!bRaus) { - // Grouped objects can now be selected. - // After EnterGroup the higher-level objects, - // have to be deselected, though. - const SdrObjList* pOOL=pObj->GetObjList(); - const SdrObjList* pVOL=GetObjList(); - while (pOOL!=nullptr && pOOL!=pVOL) { - pOOL=pOOL->GetUpList(); - } - bRaus=pOOL!=pVOL; - } - return !bRaus; -} - void SdrMarkView::CheckMarked() { for (size_t nm=GetMarkedObjectCount(); nm>0;) { @@ -1304,7 +1277,7 @@ void SdrMarkView::CheckMarked() SdrMark* pM = GetSdrMarkByIndex(nm); SdrObject* pObj = pM->GetMarkedSdrObj(); SdrPageView* pPV = pM->GetPageView(); - bool bRaus = !pObj || !pPV->IsObjSelectable(pObj); + bool bRaus = !pObj || !pPV->IsObjMarkable(pObj); if (bRaus) { GetMarkedObjectListWriteAccess().DeleteMark(nm); |