aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llviewermenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/newview/llviewermenu.cpp106
1 files changed, 56 insertions, 50 deletions
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 4732046..ecf6fcb 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -2146,8 +2146,9 @@ class LLSelfEnableRemoveAllAttachments : public view_listener_t
2146 LLVOAvatar::attachment_map_t::iterator curiter = iter++; 2146 LLVOAvatar::attachment_map_t::iterator curiter = iter++;
2147 LLViewerJointAttachment* attachment = curiter->second; 2147 LLViewerJointAttachment* attachment = curiter->second;
2148// if (attachment->getObject()) 2148// if (attachment->getObject())
2149// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) | Modified: RLVa-0.2.0c 2149// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
2150 if ( (attachment->getObject()) && ( (!rlv_handler_t::isEnabled()) || (gRlvHandler.isDetachable(curiter->first)) ) ) 2150 if ( (attachment->getObject()) &&
2151 ((!rlv_handler_t::isEnabled()) || (!gRlvHandler.isLockedAttachment(curiter->first, RLV_LOCK_REMOVE))) )
2151// [/RLVa:KB] 2152// [/RLVa:KB]
2152 { 2153 {
2153 new_value = true; 2154 new_value = true;
@@ -2387,7 +2388,7 @@ class LLObjectImportUpload : public view_listener_t
2387bool handle_go_to_confirm() 2388bool handle_go_to_confirm()
2388{ 2389{
2389// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 2390// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c)
2390 if ( (rlv_handler_t::isEnabled()) && gAgent.forwardGrabbed() && (gRlvHandler.hasLockedAttachment()) ) 2391 if ( (rlv_handler_t::isEnabled()) && (gAgent.forwardGrabbed()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
2391 { 2392 {
2392 return true; 2393 return true;
2393 } 2394 }
@@ -2410,12 +2411,12 @@ bool handle_go_to_confirm()
2410 2411
2411bool handle_go_to() 2412bool handle_go_to()
2412{ 2413{
2413// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 2414// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
2414 if ( (rlv_handler_t::isEnabled()) && gAgent.forwardGrabbed() && (gRlvHandler.hasLockedAttachment()) ) 2415 if ( (rlv_handler_t::isEnabled()) && (gAgent.forwardGrabbed()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
2415 { 2416 {
2416 return true; 2417 return true;
2417 } 2418 }
2418// [/RLVa:KB] 2419 // [/RLVa:KB]
2419 2420
2420 handle_go_to_callback( 0, (void*)LLToolPie::getInstance() ); 2421 handle_go_to_callback( 0, (void*)LLToolPie::getInstance() );
2421 2422
@@ -4737,8 +4738,8 @@ class LLToolsReleaseKeys : public view_listener_t
4737{ 4738{
4738 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 4739 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
4739 { 4740 {
4740// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 4741// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
4741 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment()) ) 4742 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
4742 { 4743 {
4743 return true; 4744 return true;
4744 } 4745 }
@@ -4754,9 +4755,9 @@ class LLToolsEnableReleaseKeys : public view_listener_t
4754{ 4755{
4755 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 4756 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
4756 { 4757 {
4757// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 4758// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
4758 gMenuHolder->findControl(userdata["control"].asString())->setValue( 4759 gMenuHolder->findControl(userdata["control"].asString())->setValue(
4759 gAgent.anyControlGrabbed() && ( (!rlv_handler_t::isEnabled()) || (!gRlvHandler.hasLockedAttachment() ) ) ); 4760 gAgent.anyControlGrabbed() && ( (!rlv_handler_t::isEnabled()) || (!gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE) ) ) );
4760// [/RLVa:KB] 4761// [/RLVa:KB]
4761 //gMenuHolder->findControl(userdata["control"].asString())->setValue( gAgent.anyControlGrabbed() ); 4762 //gMenuHolder->findControl(userdata["control"].asString())->setValue( gAgent.anyControlGrabbed() );
4762 return true; 4763 return true;
@@ -6070,11 +6071,13 @@ private:
6070 if (index > 0) 6071 if (index > 0)
6071 attachment_point = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, index, (LLViewerJointAttachment*)NULL); 6072 attachment_point = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, index, (LLViewerJointAttachment*)NULL);
6072 6073
6073// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6074// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
6074 if ( (rlv_handler_t::isEnabled()) && 6075 if ( (rlv_handler_t::isEnabled()) &&
6075 ( ((index == 0) && (gRlvHandler.hasLockedAttachment())) || // Can't wear on default attach point 6076 ( ((index == 0) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY))) || // Can't wear on default attach point
6076 ((index > 0) && (!gRlvHandler.isDetachable(attachment_point))) || // Can't replace locked attachment 6077 ((index > 0) && // or replace a locked attachment
6077 (gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) ) ) // Attach on rezzed object == "Take" 6078 ((gRlvHandler.isLockedAttachment(attachment_point->getObject(), RLV_LOCK_REMOVE)) ||
6079 (gRlvHandler.isLockedAttachment(attachment_point, RLV_LOCK_ADD)) ) ) || // or wear on a non-attachable attach point
6080 (gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) ) ) // Attach on rezzed object == "Take"
6078 { 6081 {
6079 setObjectSelection(NULL); // Clear the selection or it'll get stuck 6082 setObjectSelection(NULL); // Clear the selection or it'll get stuck
6080 return true; 6083 return true;
@@ -6188,15 +6191,15 @@ class LLAttachmentDrop : public view_listener_t
6188 return true; 6191 return true;
6189 } 6192 }
6190 6193
6191// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6194// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
6192 if (rlv_handler_t::isEnabled()) 6195 if (rlv_handler_t::isEnabled())
6193 { 6196 {
6194 if (gRlvHandler.hasLockedAttachment()) 6197 if (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE))
6195 { 6198 {
6196 // NOTE: copy/paste of the code in enable_detach() 6199 // NOTE: copy/paste of the code in enable_detach()
6197 LLObjectSelectionHandle hSelect = LLSelectMgr::getInstance()->getSelection(); 6200 LLObjectSelectionHandle hSelection = LLSelectMgr::getInstance()->getSelection();
6198 RlvSelectHasLockedAttach functor; 6201 RlvSelectHasLockedAttach functor(RLV_LOCK_REMOVE);
6199 if ( (hSelect->isAttachment()) && (hSelect->getFirstRootNode(&functor, FALSE)) ) 6202 if ( (hSelection->isAttachment()) && (hSelection->getFirstRootNode(&functor, FALSE)) )
6200 return true; 6203 return true;
6201 } 6204 }
6202 else if (gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) 6205 else if (gRlvHandler.hasBehaviour(RLV_BHVR_REZ))
@@ -6224,8 +6227,8 @@ void handle_detach_from_avatar(void* user_data)
6224 6227
6225 if (attached_object) 6228 if (attached_object)
6226 { 6229 {
6227// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) | Modified: RLVa-0.2.0d 6230// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
6228 if ( (rlv_handler_t::isEnabled()) && (!gRlvHandler.isDetachable(attached_object)) ) 6231 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.isLockedAttachment(attached_object, RLV_LOCK_REMOVE)) )
6229 { 6232 {
6230 return; 6233 return;
6231 } 6234 }
@@ -6313,12 +6316,12 @@ class LLAttachmentDetach : public view_listener_t
6313 return true; 6316 return true;
6314 } 6317 }
6315 6318
6316// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6319// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5) | Modified: RLVa-1.0.5
6317 // NOTE: copy/paste of the code in enable_detach() 6320 // NOTE: copy/paste of the code in enable_detach()
6318 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment()) ) 6321 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
6319 { 6322 {
6320 LLObjectSelectionHandle hSelect = LLSelectMgr::getInstance()->getSelection(); 6323 LLObjectSelectionHandle hSelect = LLSelectMgr::getInstance()->getSelection();
6321 RlvSelectHasLockedAttach functor; 6324 RlvSelectHasLockedAttach functor(RLV_LOCK_REMOVE);
6322 if ( (hSelect->isAttachment()) && (hSelect->getFirstRootNode(&functor, FALSE)) ) 6325 if ( (hSelect->isAttachment()) && (hSelect->getFirstRootNode(&functor, FALSE)) )
6323 return FALSE; 6326 return FALSE;
6324 } 6327 }
@@ -6431,16 +6434,16 @@ BOOL enable_detach(void*)
6431 // ...if it's you, good to detach 6434 // ...if it's you, good to detach
6432 if (avatar->getID() == gAgent.getID()) 6435 if (avatar->getID() == gAgent.getID())
6433 { 6436 {
6434// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6437// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5) | Modified: RLVa-1.0.5
6435 // NOTE: this code is reused as-is in LLAttachmentDetach::handleEvent() and LLAttachmentDrop::handleEvent() 6438 // NOTE: this code is reused as-is in LLAttachmentDetach::handleEvent() and LLAttachmentDrop::handleEvent()
6436 // so any changes here should be reflected there as well (I think it's in a number of other places as well by now) 6439 // so any changes here should be reflected there as well
6437 6440
6438 // RELEASE-RLVa: LLSelectMgr::sendDetach() and LLSelectMgr::sendDropAttachment() call sendListToRegions with 6441 // RELEASE-RLVa: LLSelectMgr::sendDetach() and LLSelectMgr::sendDropAttachment() call sendListToRegions with
6439 // SEND_ONLY_ROOTS so we only need to examine the roots which saves us time 6442 // SEND_ONLY_ROOTS so we only need to examine the roots which saves us time
6440 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment()) ) 6443 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
6441 { 6444 {
6442 LLObjectSelectionHandle hSelect = LLSelectMgr::getInstance()->getSelection(); 6445 LLObjectSelectionHandle hSelect = LLSelectMgr::getInstance()->getSelection();
6443 RlvSelectHasLockedAttach functor; 6446 RlvSelectHasLockedAttach functor(RLV_LOCK_REMOVE);
6444 if ( (hSelect->isAttachment()) && (hSelect->getFirstRootNode(&functor, FALSE)) ) 6447 if ( (hSelect->isAttachment()) && (hSelect->getFirstRootNode(&functor, FALSE)) )
6445 return FALSE; 6448 return FALSE;
6446 } 6449 }
@@ -6467,7 +6470,7 @@ class LLAttachmentEnableDetach : public view_listener_t
6467// Used to tell if the selected object can be attached to your avatar. 6470// Used to tell if the selected object can be attached to your avatar.
6468BOOL object_selected_and_point_valid(void *user_data) 6471BOOL object_selected_and_point_valid(void *user_data)
6469{ 6472{
6470// [RLVa:KB] - Checked: 2009-07-05 (RLVa-1.0.0b) 6473// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5) | Modified: RLVa-1.0.5
6471 if (rlv_handler_t::isEnabled()) 6474 if (rlv_handler_t::isEnabled())
6472 { 6475 {
6473 // RELEASE-RLVa: look at the caller graph for this function on every new release 6476 // RELEASE-RLVa: look at the caller graph for this function on every new release
@@ -6477,9 +6480,11 @@ BOOL object_selected_and_point_valid(void *user_data)
6477 // - enabler set up in LLVOAvatar::buildCharacter() => Rezzed prim / right-click / "Attach >" [user_data == pAttachPt] 6480 // - enabler set up in LLVOAvatar::buildCharacter() => Rezzed prim / right-click / "Attach >" [user_data == pAttachPt]
6478 // - enabler set up in LLVOAvatar::buildCharacter() => Rezzed prim / Edit menu / "Attach Object" [user_data == pAttachPt] 6481 // - enabler set up in LLVOAvatar::buildCharacter() => Rezzed prim / Edit menu / "Attach Object" [user_data == pAttachPt]
6479 LLViewerJointAttachment* pAttachPt = (LLViewerJointAttachment*)user_data; 6482 LLViewerJointAttachment* pAttachPt = (LLViewerJointAttachment*)user_data;
6480 if ( ((!pAttachPt) && (gRlvHandler.hasLockedAttachment())) || // Don't allow attach to default attach point 6483 if ( ( (!pAttachPt) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) ) || // Don't allow attach to default attach point
6481 ((pAttachPt) && (!gRlvHandler.isDetachable(pAttachPt))) || // Don't allow replacing of locked attachment 6484 ( (pAttachPt) && // Don't allow replacing of a locked attachment
6482 (gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) ) // Attaching a rezzed object == "Take" 6485 ( (gRlvHandler.isLockedAttachment(pAttachPt->getObject(), RLV_LOCK_REMOVE)) ||
6486 (gRlvHandler.isLockedAttachment(pAttachPt, RLV_LOCK_ADD)) ) ) || // or wear on a non-attachable attach point
6487 (gRlvHandler.hasBehaviour(RLV_BHVR_REZ)) ) // Attaching a rezzed object == "Take"
6483 { 6488 {
6484 return FALSE; 6489 return FALSE;
6485 } 6490 }
@@ -6556,7 +6561,7 @@ BOOL object_attached(void *user_data)
6556// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6561// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c)
6557 return ( 6562 return (
6558 (attachment->getObject() != NULL) && 6563 (attachment->getObject() != NULL) &&
6559 ( (!rlv_handler_t::isEnabled()) || (gRlvHandler.isDetachable(attachment->getObject())) ) 6564 ( (!rlv_handler_t::isEnabled()) || (!gRlvHandler.isLockedAttachment(attachment->getObject(), RLV_LOCK_REMOVE)) )
6560 ); 6565 );
6561// [/RLVa:KB] 6566// [/RLVa:KB]
6562// return attachment->getObject() != NULL; 6567// return attachment->getObject() != NULL;
@@ -6708,12 +6713,13 @@ class LLToolsSelectedScriptAction : public view_listener_t
6708{ 6713{
6709 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 6714 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
6710 { 6715 {
6711// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6716// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
6712 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment()) ) 6717 // We'll allow resetting the scripts of objects on a non-attachable attach point since they wouldn't be able to circumvent anything
6718 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
6713 { 6719 {
6714 LLObjectSelectionHandle selectHandle = LLSelectMgr::getInstance()->getSelection(); 6720 LLObjectSelectionHandle hSelection = LLSelectMgr::getInstance()->getSelection();
6715 RlvSelectHasLockedAttach functor; 6721 RlvSelectHasLockedAttach functor(RLV_LOCK_REMOVE);
6716 if ( (selectHandle->isAttachment()) && (selectHandle->getFirstNode(&functor)) ) 6722 if ( (hSelection->isAttachment()) && (hSelection->getFirstNode(&functor)) )
6717 return true; 6723 return true;
6718 } 6724 }
6719// [/RLVa:KB] 6725// [/RLVa:KB]
@@ -6802,9 +6808,9 @@ void handle_dump_image_list(void*)
6802 6808
6803void handle_test_male(void*) 6809void handle_test_male(void*)
6804{ 6810{
6805// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6811// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
6806 if ( (rlv_handler_t::isEnabled()) && 6812 if ( (rlv_handler_t::isEnabled()) &&
6807 ( (gRlvHandler.hasLockedAttachment()) || 6813 ( (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) ||
6808 (gRlvHandler.hasBehaviour(RLV_BHVR_ADDOUTFIT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_REMOUTFIT)) ) ) 6814 (gRlvHandler.hasBehaviour(RLV_BHVR_ADDOUTFIT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_REMOUTFIT)) ) )
6809 { 6815 {
6810 return; 6816 return;
@@ -6817,9 +6823,9 @@ void handle_test_male(void*)
6817 6823
6818void handle_test_female(void*) 6824void handle_test_female(void*)
6819{ 6825{
6820// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 6826// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
6821 if ( (rlv_handler_t::isEnabled()) && 6827 if ( (rlv_handler_t::isEnabled()) &&
6822 ( (gRlvHandler.hasLockedAttachment()) || 6828 ( (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) ||
6823 (gRlvHandler.hasBehaviour(RLV_BHVR_ADDOUTFIT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_REMOUTFIT)) ) ) 6829 (gRlvHandler.hasBehaviour(RLV_BHVR_ADDOUTFIT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_REMOUTFIT)) ) )
6824 { 6830 {
6825 return; 6831 return;
@@ -6968,16 +6974,16 @@ BOOL enable_more_than_one_selected(void* )
6968 6974
6969static bool is_editable_selected() 6975static bool is_editable_selected()
6970{ 6976{
6971// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) | Modified: RLVa-1.0.0c 6977// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
6972 // RELEASE-RLVa: check that this still isn't called by anything but script actions in the Tools menu 6978 // RELEASE-RLVa: check that this still isn't called by anything but script actions in the Tools menu
6973 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment()) ) 6979 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
6974 { 6980 {
6975 LLObjectSelectionHandle selectHandle = LLSelectMgr::getInstance()->getSelection(); 6981 LLObjectSelectionHandle hSelection = LLSelectMgr::getInstance()->getSelection();
6976 6982
6977 // NOTE: this is called for 5 different menu items so we'll trade accuracy for efficiency and only 6983 // NOTE: this is called for 5 different menu items so we'll trade accuracy for efficiency and only
6978 // examine root nodes (LLToolsSelectedScriptAction::handleEvent() will catch what we miss) 6984 // examine root nodes (LLToolsSelectedScriptAction::handleEvent() will catch what we miss)
6979 RlvSelectHasLockedAttach functor; 6985 RlvSelectHasLockedAttach functor(RLV_LOCK_REMOVE);
6980 if ( (selectHandle->isAttachment()) && (selectHandle->getFirstRootNode(&functor)) ) 6986 if ( (hSelection->isAttachment()) && (hSelection->getFirstRootNode(&functor)) )
6981 { 6987 {
6982 return false; 6988 return false;
6983 } 6989 }