summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdmrkv.cxx
diff options
context:
space:
mode:
authorJochen Nitschke <j.nitschke+logerrit@ok.de>2016-08-02 14:30:09 +0200
committerJochen Nitschke <j.nitschke+logerrit@ok.de>2016-09-29 04:19:03 +0000
commita87a31602165cb2a37c32f5928e4f9daade7271d (patch)
treeb169a6d961d7a0cbbf61c18a236d3a0c2f40f698 /svx/source/svdraw/svdmrkv.cxx
parent2f6f851acab5284f516ad6a91c05149ffed575d2 (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.cxx29
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);