summaryrefslogtreecommitdiff
path: root/indra/newview/llselectmgr.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2018-08-11 09:02:16 -0400
committerNat Goodspeed <nat@lindenlab.com>2018-08-11 09:02:16 -0400
commitf6735af9315ed91a0d28804252c1351c9d4b379f (patch)
tree1b1fc36446fd12164f28a0d9b62bd2e89fd1601c /indra/newview/llselectmgr.cpp
parent00839eb6350627c6272dea242b85ea24544cea33 (diff)
parent470e4b5afc7f0fd516eca9d61b95ff770adf3978 (diff)
Automated merge with ssh://bitbucket.org/nat_linden/viewer-no-popup
Diffstat (limited to 'indra/newview/llselectmgr.cpp')
-rw-r--r--indra/newview/llselectmgr.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index ddae109030..fce21fa30a 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -3676,6 +3676,39 @@ void LLSelectMgr::selectForceDelete()
SEND_ONLY_ROOTS);
}
+BOOL LLSelectMgr::selectGetEditMoveLinksetPermissions(bool &move, bool &modify)
+{
+ move = true;
+ modify = true;
+ bool selecting_linked_set = !gSavedSettings.getBOOL("EditLinkedParts");
+
+ for (LLObjectSelection::iterator iter = getSelection()->begin();
+ iter != getSelection()->end(); iter++)
+ {
+ LLSelectNode* nodep = *iter;
+ LLViewerObject* object = nodep->getObject();
+ if (!object || !nodep->mValid)
+ {
+ move = false;
+ modify = false;
+ return FALSE;
+ }
+
+ LLViewerObject *root_object = object->getRootEdit();
+ bool this_object_movable = false;
+ if (object->permMove() && !object->isPermanentEnforced() &&
+ ((root_object == NULL) || !root_object->isPermanentEnforced()) &&
+ (object->permModify() || selecting_linked_set))
+ {
+ this_object_movable = true;
+ }
+ move = move && this_object_movable;
+ modify = modify && object->permModify();
+ }
+
+ return TRUE;
+}
+
void LLSelectMgr::selectGetAggregateSaleInfo(U32 &num_for_sale,
BOOL &is_for_sale_mixed,
BOOL &is_sale_price_mixed,