From 2ae77b29019433e8982e629bfacaf9d37a555636 Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Fri, 15 Jan 2016 13:04:58 +0200 Subject: MAINT-1429 Show permissions correctly for single non-root object and hide it if we didn't get valid base permissions. --- indra/newview/llpanelpermissions.cpp | 45 +++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 6 deletions(-) (limited to 'indra/newview/llpanelpermissions.cpp') diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index ce9231d6f2..84e563e842 100755 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -571,24 +571,49 @@ void LLPanelPermissions::refresh() U32 next_owner_mask_on = 0; U32 next_owner_mask_off = 0; - BOOL valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE, + BOOL valid_base_perms = FALSE; + BOOL valid_group_perms= FALSE; + BOOL valid_everyone_perms= FALSE; + BOOL valid_next_perms= FALSE; + + if(root_selected) + { + valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE, &base_mask_on, &base_mask_off); - //BOOL valid_owner_perms =// - LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER, + //BOOL valid_owner_perms =// + LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER, &owner_mask_on, &owner_mask_off); - BOOL valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP, + valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP, &group_mask_on, &group_mask_off); - BOOL valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE, + valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE, &everyone_mask_on, &everyone_mask_off); - BOOL valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER, + valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER, &next_owner_mask_on, &next_owner_mask_off); + } + else + { + if(object_count == 1) + { + LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode(); + if (node && node->mValid) + { + valid_base_perms = TRUE; + + base_mask_on = node->mPermissions->getMaskBase(); + owner_mask_on = node->mPermissions->getMaskOwner(); + group_mask_on = node->mPermissions->getMaskGroup(); + everyone_mask_on = node->mPermissions->getMaskEveryone(); + next_owner_mask_on = node->mPermissions->getMaskNextOwner(); + } + } + } if (gSavedSettings.getBOOL("DebugPermissions") ) @@ -610,6 +635,14 @@ void LLPanelPermissions::refresh() getChild("N:")->setValue("N: " + mask_to_string(next_owner_mask_on)); getChildView("N:")->setVisible( TRUE); } + else + { + getChildView("B:")->setVisible(FALSE); + getChildView("O:")->setVisible(FALSE); + getChildView("G:")->setVisible(FALSE); + getChildView("E:")->setVisible(FALSE); + getChildView("N:")->setVisible(FALSE); + } U32 flag_mask = 0x0; if (objectp->permMove()) flag_mask |= PERM_MOVE; -- cgit v1.2.3 From ab627c3dd6d8a657bf56077fc9e320b6541e781b Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Wed, 24 Feb 2016 16:39:48 +0200 Subject: MAINT-1429 Incorrect display of permissions in Edit Tab while change focus --- indra/newview/llpanelpermissions.cpp | 73 ++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 41 deletions(-) (limited to 'indra/newview/llpanelpermissions.cpp') diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index 84e563e842..263c73dc0e 100755 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -571,69 +571,60 @@ void LLPanelPermissions::refresh() U32 next_owner_mask_on = 0; U32 next_owner_mask_off = 0; - BOOL valid_base_perms = FALSE; - BOOL valid_group_perms= FALSE; - BOOL valid_everyone_perms= FALSE; - BOOL valid_next_perms= FALSE; - - if(root_selected) - { - valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE, + BOOL valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE, &base_mask_on, &base_mask_off); - //BOOL valid_owner_perms =// - LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER, + //BOOL valid_owner_perms =// + LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER, &owner_mask_on, &owner_mask_off); - valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP, + BOOL valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP, &group_mask_on, &group_mask_off); - valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE, + BOOL valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE, &everyone_mask_on, &everyone_mask_off); - valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER, + BOOL valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER, &next_owner_mask_on, &next_owner_mask_off); - } - else - { - if(object_count == 1) - { - LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode(); - if (node && node->mValid) - { - valid_base_perms = TRUE; - - base_mask_on = node->mPermissions->getMaskBase(); - owner_mask_on = node->mPermissions->getMaskOwner(); - group_mask_on = node->mPermissions->getMaskGroup(); - everyone_mask_on = node->mPermissions->getMaskEveryone(); - next_owner_mask_on = node->mPermissions->getMaskNextOwner(); - } - } - } - + if (gSavedSettings.getBOOL("DebugPermissions") ) { if (valid_base_perms) { getChild("B:")->setValue("B: " + mask_to_string(base_mask_on)); - getChildView("B:")->setVisible( TRUE); - + getChildView("B:")->setVisible(TRUE); getChild("O:")->setValue("O: " + mask_to_string(owner_mask_on)); - getChildView("O:")->setVisible( TRUE); - + getChildView("O:")->setVisible(TRUE); getChild("G:")->setValue("G: " + mask_to_string(group_mask_on)); - getChildView("G:")->setVisible( TRUE); - + getChildView("G:")->setVisible(TRUE); getChild("E:")->setValue("E: " + mask_to_string(everyone_mask_on)); - getChildView("E:")->setVisible( TRUE); - + getChildView("E:")->setVisible(TRUE); getChild("N:")->setValue("N: " + mask_to_string(next_owner_mask_on)); - getChildView("N:")->setVisible( TRUE); + getChildView("N:")->setVisible(TRUE); + } + else if(!root_selected) + { + if(object_count == 1) + { + LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode(); + if (node && node->mValid) + { + getChild("B:")->setValue("B: " + mask_to_string( node->mPermissions->getMaskBase())); + getChildView("B:")->setVisible(TRUE); + getChild("O:")->setValue("O: " + mask_to_string(node->mPermissions->getMaskOwner())); + getChildView("O:")->setVisible(TRUE); + getChild("G:")->setValue("G: " + mask_to_string(node->mPermissions->getMaskGroup())); + getChildView("G:")->setVisible(TRUE); + getChild("E:")->setValue("E: " + mask_to_string(node->mPermissions->getMaskEveryone())); + getChildView("E:")->setVisible(TRUE); + getChild("N:")->setValue("N: " + mask_to_string(node->mPermissions->getMaskNextOwner())); + getChildView("N:")->setVisible(TRUE); + } + } } else { -- cgit v1.2.3