diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index aa457f772..382fd7955 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1308,6 +1308,28 @@ This should be as low as possible, but too low may break functionality Value 0 + AntiSpamNotFriends + + Comment + When true, dialogs from friends will not be blocked unless the _NACL_Antispam is true. + Persist + 1 + Type + Boolean + Value + 0 + + AntiSpamNotMine + + Comment + When true, dialogs from your own objects will not be blocked unless the _NACL_Antispam is true. + Persist + 1 + Type + Boolean + Value + 0 + AntiSpamNotify Comment diff --git a/indra/newview/ascentprefschat.cpp b/indra/newview/ascentprefschat.cpp index 8e2df4678..16202e813 100644 --- a/indra/newview/ascentprefschat.cpp +++ b/indra/newview/ascentprefschat.cpp @@ -210,6 +210,10 @@ void LLPrefsAscentChat::onCommitDialogBlock(LLUICtrl* ctrl, const LLSD& value) childSetEnabled("Item Offers", !enabled); childSetEnabled("Scripts", !enabled); childSetEnabled("Teleport Offers", !enabled); + childSetEnabled("Teleport Requests", !enabled); + childSetEnabled("Except those from:", !enabled); + childSetEnabled("My objects", !enabled); + childSetEnabled("My friends", !enabled); } } @@ -329,6 +333,8 @@ void LLPrefsAscentChat::refreshValues() mBlockGroupFeeInviteSpam = gSavedSettings.getBOOL("AntiSpamGroupFeeInvites"); mBlockGroupNoticeSpam = gSavedSettings.getBOOL("AntiSpamGroupNotices"); mBlockItemOfferSpam = gSavedSettings.getBOOL("AntiSpamItemOffers"); + mBlockNotFriendSpam = gSavedSettings.getBOOL("AntiSpamNotFriend"); + mBlockNotMineSpam = gSavedSettings.getBOOL("AntiSpamNotMine"); mBlockScriptSpam = gSavedSettings.getBOOL("AntiSpamScripts"); mBlockTeleportSpam = gSavedSettings.getBOOL("AntiSpamTeleports"); mBlockTeleportRequestSpam = gSavedSettings.getBOOL("AntiSpamTeleportRequests"); @@ -547,6 +553,8 @@ void LLPrefsAscentChat::cancel() gSavedSettings.setBOOL("AntiSpamGroupInvites", mBlockGroupInviteSpam); gSavedSettings.setBOOL("AntiSpamGroupFeeInvites", mBlockGroupFeeInviteSpam); gSavedSettings.setBOOL("AntiSpamItemOffers", mBlockItemOfferSpam); + gSavedSettings.setBOOL("AntiSpamNotFriend", mBlockNotFriendSpam); + gSavedSettings.setBOOL("AntiSpamNotMine", mBlockNotMineSpam); gSavedSettings.setBOOL("AntiSpamScripts", mBlockScriptSpam); gSavedSettings.setBOOL("AntiSpamTeleports", mBlockTeleportSpam); gSavedSettings.setBOOL("AntiSpamTeleportRequests", mBlockTeleportRequestSpam); diff --git a/indra/newview/ascentprefschat.h b/indra/newview/ascentprefschat.h index 476f82551..38fc2d8c8 100644 --- a/indra/newview/ascentprefschat.h +++ b/indra/newview/ascentprefschat.h @@ -105,6 +105,8 @@ protected: BOOL mBlockGroupInviteSpam; BOOL mBlockGroupFeeInviteSpam; BOOL mBlockItemOfferSpam; + bool mBlockNotMineSpam; + bool mBlockNotFriendSpam; BOOL mBlockScriptSpam; BOOL mBlockTeleportSpam; bool mBlockTeleportRequestSpam; diff --git a/indra/newview/llpanelvoicedevicesettings.cpp b/indra/newview/llpanelvoicedevicesettings.cpp index f890e55f8..883d44ecc 100644 --- a/indra/newview/llpanelvoicedevicesettings.cpp +++ b/indra/newview/llpanelvoicedevicesettings.cpp @@ -70,7 +70,11 @@ BOOL LLPanelVoiceDeviceSettings::postBuild() volume_slider->setValue(mMicVolume); mCtrlInputDevices = getChild("voice_input_device"); + mCtrlInputDevices->add(getLocalizedDeviceName(mInputDevice), mInputDevice); + mCtrlInputDevices->setValue(mInputDevice); mCtrlOutputDevices = getChild("voice_output_device"); + mCtrlOutputDevices->add(getLocalizedDeviceName(mOutputDevice), mOutputDevice); + mCtrlOutputDevices->setValue(mOutputDevice); mCtrlInputDevices->setCommitCallback( boost::bind(&LLPanelVoiceDeviceSettings::onCommitInputDevice, this)); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 3e8c9145c..f9d008359 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -228,6 +228,7 @@ class AIHTTPView; void add_wave_listeners(); void add_dae_listeners(); +void add_radar_listeners(); //extern BOOL gHideSelectedObjects; //extern BOOL gAllowSelectAvatar; //extern BOOL gDebugAvatarRotation; @@ -9213,13 +9214,32 @@ LLScrollListCtrl* get_focused_list() return list; } +S32 get_focused_list_num_selected() +{ + if (LLScrollListCtrl* list = get_focused_list()) + return list->getNumSelected(); + return 0; +} + +const LLUUID get_focused_list_id_selected() +{ + if (LLScrollListCtrl* list = get_focused_list()) + return list->getStringUUIDSelectedItem(); + return LLUUID::null; +} + +const uuid_vec_t get_focused_list_ids_selected() +{ + if (LLScrollListCtrl* list = get_focused_list()) + return list->getSelectedIDs(); + return uuid_vec_t(); +} + class ListEnableAnySelected : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - gMenuHolder->findControl(userdata["control"].asString())->setValue(list->getNumSelected()); + gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected()); return true; } }; @@ -9228,9 +9248,7 @@ class ListEnableMultipleSelected : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - gMenuHolder->findControl(userdata["control"].asString())->setValue(list->getNumSelected() > 1); + gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected() > 1); return true; } }; @@ -9239,9 +9257,7 @@ class ListEnableSingleSelected : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - gMenuHolder->findControl(userdata["control"].asString())->setValue(list->getNumSelected() == 1); + gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected() == 1); return true; } }; @@ -9261,9 +9277,7 @@ class ListEnableIsFriend : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::isFriend(list->getStringUUIDSelectedItem())); + gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::isFriend(get_focused_list_id_selected())); return true; } }; @@ -9272,9 +9286,7 @@ class ListEnableIsNotFriend : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - gMenuHolder->findControl(userdata["control"].asString())->setValue(!LLAvatarActions::isFriend(list->getStringUUIDSelectedItem())); + gMenuHolder->findControl(userdata["control"].asString())->setValue(!LLAvatarActions::isFriend(get_focused_list_id_selected())); return true; } }; @@ -9283,9 +9295,7 @@ class ListEnableMute : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - uuid_vec_t ids = list->getSelectedIDs(); + const uuid_vec_t& ids = get_focused_list_ids_selected(); bool can_block = true; for (uuid_vec_t::const_iterator it = ids.begin(); can_block && it != ids.end(); ++it) can_block = LLAvatarActions::canBlock(*it); @@ -9298,9 +9308,16 @@ class ListEnableOfferTeleport : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::canOfferTeleport(list->getSelectedIDs())); + gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::canOfferTeleport(get_focused_list_ids_selected())); + return true; + } +}; + +class ListVisibleWebProfile : public view_listener_t +{ + bool handleEvent(LLPointer event, const LLSD& userdata) + { + gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected() && !(gSavedSettings.getBOOL("UseWebProfiles") || gSavedSettings.getString("WebProfileURL").empty())); return true; } }; @@ -9309,9 +9326,7 @@ class ListCopyUUIDs : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::copyUUIDs(list->getSelectedIDs()); + LLAvatarActions::copyUUIDs(get_focused_list_ids_selected()); return true; } }; @@ -9320,9 +9335,7 @@ class ListInviteToGroup : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::inviteToGroup(list->getStringUUIDSelectedItem()); + LLAvatarActions::inviteToGroup(get_focused_list_id_selected()); return true; } }; @@ -9331,9 +9344,7 @@ class ListOfferTeleport : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::offerTeleport(list->getSelectedIDs()); + LLAvatarActions::offerTeleport(get_focused_list_ids_selected()); return true; } }; @@ -9342,9 +9353,7 @@ class ListPay : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::pay(list->getStringUUIDSelectedItem()); + LLAvatarActions::pay(get_focused_list_id_selected()); return true; } }; @@ -9353,9 +9362,7 @@ class ListRemoveFriend : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::removeFriendDialog(list->getStringUUIDSelectedItem()); + LLAvatarActions::removeFriendDialog(get_focused_list_id_selected()); return true; } }; @@ -9364,9 +9371,7 @@ class ListRequestFriendship : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::requestFriendshipDialog(list->getStringUUIDSelectedItem()); + LLAvatarActions::requestFriendshipDialog(get_focused_list_id_selected()); return true; } }; @@ -9375,9 +9380,7 @@ class ListRequestTeleport : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::teleportRequest(list->getStringUUIDSelectedItem()); + LLAvatarActions::teleportRequest(get_focused_list_id_selected()); return true; } }; @@ -9386,9 +9389,16 @@ class ListShowProfile : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::showProfiles(list->getSelectedIDs()); + LLAvatarActions::showProfiles(get_focused_list_ids_selected()); + return true; + } +}; + +class ListShowWebProfile : public view_listener_t +{ + bool handleEvent(LLPointer event, const LLSD& userdata) + { + LLAvatarActions::showProfiles(get_focused_list_ids_selected(), true); return true; } }; @@ -9397,9 +9407,7 @@ class ListStartAdhocCall : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::startAdhocCall(list->getSelectedIDs()); + LLAvatarActions::startAdhocCall(get_focused_list_ids_selected()); return true; } }; @@ -9408,9 +9416,7 @@ class ListStartCall : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::startCall(list->getStringUUIDSelectedItem()); + LLAvatarActions::startCall(get_focused_list_id_selected()); return true; } }; @@ -9419,9 +9425,7 @@ class ListStartConference : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::startConference(list->getSelectedIDs()); + LLAvatarActions::startConference(get_focused_list_ids_selected()); return true; } }; @@ -9430,23 +9434,21 @@ class ListStartIM : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLAvatarActions::startIM(list->getStringUUIDSelectedItem()); + LLAvatarActions::startIM(get_focused_list_id_selected()); return true; } }; +/* Singu TODO: Figure out why this wouldn't work class ListAbuseReport : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - LLFloaterReporter::showFromObject(list->getStringUUIDSelectedItem()); + LLFloaterReporter::showFromObject(get_focused_list_id_selected()); return true; } }; +*/ // Create the args for administrative notifications used in lists, tossing the selected names into it. LLSD create_args(const uuid_vec_t& ids, const std::string& token) @@ -9471,9 +9473,7 @@ class ListEject : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - const uuid_vec_t& ids = list->getSelectedIDs(); + const uuid_vec_t& ids = get_focused_list_ids_selected(); LLNotificationsUtil::add("EjectAvatarFullname", create_args(ids, "AVATAR_NAME"), LLSD(), boost::bind(parcel_mod_notice_callback, ids, boost::bind(LLNotificationsUtil::getSelectedOption, _1, _2), send_eject)); return true; } @@ -9484,9 +9484,7 @@ class ListFreeze : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - const uuid_vec_t& ids = list->getSelectedIDs(); + const uuid_vec_t& ids = get_focused_list_ids_selected(); LLNotificationsUtil::add("FreezeAvatarFullname", create_args(ids, "AVATAR_NAME"), LLSD(), boost::bind(parcel_mod_notice_callback, ids, boost::bind(LLNotificationsUtil::getSelectedOption, _1, _2), send_freeze)); return true; } @@ -9512,9 +9510,7 @@ class ListEstateBan : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - const uuid_vec_t& ids = list->getSelectedIDs(); + const uuid_vec_t& ids = get_focused_list_ids_selected(); LLNotificationsUtil::add("EstateBanUser", create_args(ids, "EVIL_USER"), LLSD(), boost::bind(estate_bulk_eject, ids, true, boost::bind(LLNotificationsUtil::getSelectedOption, _1, _2))); return true; } @@ -9524,9 +9520,7 @@ class ListEstateEject : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - const uuid_vec_t& ids = list->getSelectedIDs(); + const uuid_vec_t& ids = get_focused_list_ids_selected(); LLNotificationsUtil::add("EstateKickUser", create_args(ids, "EVIL_USER"), LLSD(), boost::bind(estate_bulk_eject, ids, false, boost::bind(LLNotificationsUtil::getSelectedOption, _1, _2))); return true; } @@ -9536,9 +9530,7 @@ class ListToggleMute : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLScrollListCtrl* list = get_focused_list(); - if (!list) return false; - uuid_vec_t ids = list->getSelectedIDs(); + const uuid_vec_t& ids = get_focused_list_ids_selected(); for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it) LLAvatarActions::toggleBlock(*it); return true; @@ -9857,6 +9849,7 @@ void initialize_menus() addMenu(new ListEnableIsNotFriend(), "List.EnableIsNotFriend"); addMenu(new ListEnableMute(), "List.EnableMute"); addMenu(new ListEnableOfferTeleport(), "List.EnableOfferTeleport"); + addMenu(new ListVisibleWebProfile(), "List.VisibleWebProfile"); addMenu(new ListCopyUUIDs(), "List.CopyUUIDs"); addMenu(new ListInviteToGroup(), "List.InviteToGroup"); addMenu(new ListOfferTeleport(), "List.OfferTeleport"); @@ -9865,17 +9858,20 @@ void initialize_menus() addMenu(new ListRequestFriendship(), "List.RequestFriendship"); addMenu(new ListRequestTeleport(), "List.RequestTeleport"); addMenu(new ListShowProfile(), "List.ShowProfile"); + addMenu(new ListShowWebProfile(), "List.ShowWebProfile"); addMenu(new ListStartAdhocCall(), "List.StartAdhocCall"); addMenu(new ListStartCall(), "List.StartCall"); addMenu(new ListStartConference(), "List.StartConference"); addMenu(new ListStartIM(), "List.StartIM"); - addMenu(new ListAbuseReport(), "List.AbuseReport"); + //addMenu(new ListAbuseReport(), "List.AbuseReport"); addMenu(new ListEject(), "List.ParcelEject"); addMenu(new ListFreeze(), "List.Freeze"); addMenu(new ListEstateBan(), "List.EstateBan"); addMenu(new ListEstateEject(), "List.EstateEject"); addMenu(new ListToggleMute(), "List.ToggleMute"); + add_radar_listeners(); + LLToolMgr::getInstance()->initMenu(sMenus); } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index d0f57be83..305f54dc1 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1671,11 +1671,63 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& return false; } +bool is_spam_filtered(const EInstantMessage& dialog, bool is_friend, bool is_owned_by_me) +{ + // First, check the master filter + static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); + if (antispam) return true; + + // Second, check if this dialog type is even being filtered + switch(dialog) + { + case IM_GROUP_NOTICE: + case IM_GROUP_NOTICE_REQUESTED: + if (!gSavedSettings.getBOOL("AntiSpamGroupNotices")) return false; + break; + case IM_GROUP_INVITATION: + if (!gSavedSettings.getBOOL("AntiSpamGroupInvites")) return false; + break; + case IM_INVENTORY_OFFERED: + case IM_TASK_INVENTORY_OFFERED: + if (!gSavedSettings.getBOOL("AntiSpamItemOffers")) return false; + break; + case IM_FROM_TASK_AS_ALERT: + if (!gSavedSettings.getBOOL("AntiSpamAlerts")) return false; + break; + case IM_LURE_USER: + if (!gSavedSettings.getBOOL("AntiSpamTeleports")) return false; + break; + case IM_TELEPORT_REQUEST: + if (!gSavedSettings.getBOOL("AntiSpamTeleportRequests")) return false; + break; + case IM_FRIENDSHIP_OFFERED: + if (!gSavedSettings.getBOOL("AntiSpamFriendshipOffers")) return false; + break; + case IM_COUNT: + // Bit of a hack, we should never get here unless we did this on purpose, though, doesn't matter because we'd do nothing anyway + if (!gSavedSettings.getBOOL("AntiSpamScripts")) return false; + break; + default: + return false; + } + + // Third, possibly filtered, check the filter bypasses + static LLCachedControl antispam_not_mine(gSavedSettings,"AntiSpamNotMine"); + if (antispam_not_mine && is_owned_by_me) + return false; + + static LLCachedControl antispam_not_friends(gSavedSettings,"AntiSpamNotFriends"); + if (antispam_not_friends && is_friend) + return false; + + // Last, definitely filter + return true; +} + void inventory_offer_handler(LLOfferInfo* info) { // NaCl - Antispam Registry - static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); - if(antispam || gSavedSettings.getBOOL("AntiSpamItemOffers") || NACLAntiSpamRegistry::checkQueue((U32)NACLAntiSpamRegistry::QUEUE_INVENTORY,info->mFromID)) + if (NACLAntiSpamRegistry::checkQueue((U32)NACLAntiSpamRegistry::QUEUE_INVENTORY,info->mFromID)) return; // NaCl End //If muted, don't even go through the messaging stuff. Just curtail the offer here. @@ -2071,7 +2123,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) { return; } - static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); LLUUID from_id; BOOL from_group; LLUUID to_id; @@ -2175,11 +2226,15 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) } LLViewerObject *source = gObjectList.findObject(session_id); //Session ID is probably the wrong thing. - if (source) + if (source || (source = gObjectList.findObject(from_id))) { is_owned_by_me = source->permYouOwner(); } + // NaCl - Antispam + if (is_spam_filtered(dialog, is_friend, is_owned_by_me)) return; + // NaCl End + std::string separator_string(": "); int message_offset = 0; @@ -2545,10 +2600,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) case IM_GROUP_NOTICE: case IM_GROUP_NOTICE_REQUESTED: { - // NaCl - Antispam - if(antispam || gSavedSettings.getBOOL("AntiSpamGroupNotices")) - return; - // NaCl End LL_INFOS("Messaging") << "Received IM_GROUP_NOTICE message." << LL_ENDL; // Read the binary bucket for more information. struct notice_bucket_header_t @@ -2664,11 +2715,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) break; case IM_GROUP_INVITATION: { - // NaCl - Antispam - if (antispam || gSavedSettings.getBOOL("AntiSpamGroupInvites")) - return; - // NaCl End - //if (!is_linden && (is_busy || is_muted)) if ((is_busy || is_muted)) { @@ -2718,10 +2764,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) case IM_TASK_INVENTORY_OFFERED: // Someone has offered us some inventory. { - // NaCl - Antispam - if(antispam || gSavedSettings.getBOOL("AntiSpamItemOffers")) - return; - // NaCl End LLOfferInfo* info = new LLOfferInfo; if (IM_INVENTORY_OFFERED == dialog) { @@ -2990,10 +3032,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) } break; case IM_FROM_TASK_AS_ALERT: - // NaCl - Antispam - if(antispam || (!is_owned_by_me && gSavedSettings.getBOOL("AntiSpamAlerts"))) - return; - // NaCl End if (is_busy && !is_owned_by_me) { return; @@ -3022,7 +3060,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) case IM_LURE_USER: case IM_TELEPORT_REQUEST: { - if (antispam || gSavedSettings.getBOOL(dialog == IM_LURE_USER ? "AntiSpamTeleports" : "AntiSpamTeleportRequests")) return; //NaCl Antispam // [RLVa:KB] - Checked: 2010-12-11 (RLVa-1.2.2c) | Added: RLVa-1.2.2c // If the lure sender is a specific @accepttp exception they will override muted and busy status bool fRlvSummon = (rlv_handler_t::isEnabled()) && (gRlvHandler.isException(RLV_BHVR_ACCEPTTP, from_id)); @@ -3268,10 +3305,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) case IM_FRIENDSHIP_OFFERED: { - // NaCl - Antispam - if(antispam || gSavedSettings.getBOOL("AntiSpamFriendshipOffers")) - return; - // NaCl End LLSD payload; payload["from_id"] = from_id; payload["session_id"] = session_id;; @@ -3424,8 +3457,7 @@ static LLNotificationFunctorRegistration callingcard_offer_cb_reg("OfferCallingC void process_offer_callingcard(LLMessageSystem* msg, void**) { // NaCl - Antispam - static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); - if(antispam || gSavedSettings.getBOOL("AntiSpamFriendshipOffers")) + if (is_spam_filtered(IM_FRIENDSHIP_OFFERED, false, false)) return; // NaCl End // someone has offered to form a friendship @@ -6980,11 +7012,6 @@ static LLNotificationFunctorRegistration script_question_cb_reg_2("ScriptQuestio void process_script_question(LLMessageSystem *msg, void **user_data) { - // NaCl - Antispam - static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); - if(antispam || gSavedSettings.getBOOL("AntiSpamScripts")) - return; - // NaCl End // *TODO: Translate owner name -> [FIRST] [LAST] LLHost sender = msg->getSender(); @@ -7018,6 +7045,9 @@ void process_script_question(LLMessageSystem *msg, void **user_data) std::string throttle_name = owner_name; std::string self_name; LLAgentUI::buildFullname( self_name ); + // NaCl - Antispam + if (is_spam_filtered(IM_COUNT, false, owner_name == self_name)) return; + // NaCl End if( owner_name == self_name ) { throttle_name = taskid.getString(); @@ -7758,11 +7788,6 @@ static LLNotificationFunctorRegistration callback_script_dialog_reg_2("ScriptDia void process_script_dialog(LLMessageSystem* msg, void**) { - // NaCl - Antispam - static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); - if(antispam || gSavedSettings.getBOOL("AntiSpamScripts")) - return; - // NaCl End S32 i; LLSD payload; @@ -7786,6 +7811,10 @@ void process_script_dialog(LLMessageSystem* msg, void**) // NaCl End } + // NaCl - Antispam + if (owner_id.isNull() ? is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(object_id), object_id == gAgentID) : is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(owner_id), owner_id == gAgentID)) return; + // NaCl End + if (LLMuteList::getInstance()->isMuted(object_id) || LLMuteList::getInstance()->isMuted(owner_id)) { return; @@ -7934,11 +7963,6 @@ void callback_load_url_name(const LLUUID& id, const std::string& full_name, bool void process_load_url(LLMessageSystem* msg, void**) { - // NaCl - Antispam - static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); - if(antispam || gSavedSettings.getBOOL("AntiSpamScripts")) - return; - // NaCl End LLUUID object_id; LLUUID owner_id; BOOL owner_is_group; @@ -7950,6 +7974,10 @@ void process_load_url(LLMessageSystem* msg, void**) msg->getUUID( "Data", "ObjectID", object_id); msg->getUUID( "Data", "OwnerID", owner_id); + // NaCl - Antispam + if (owner_id.isNull() ? is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(object_id), object_id == gAgentID) : is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(owner_id), owner_id == gAgentID)) return; + // NaCl End + // NaCl - Antispam Registry if((owner_id.isNull() && NACLAntiSpamRegistry::checkQueue((U32)NACLAntiSpamRegistry::QUEUE_SCRIPT_DIALOG,object_id)) @@ -8029,12 +8057,16 @@ void process_initiate_download(LLMessageSystem* msg, void**) void process_script_teleport_request(LLMessageSystem* msg, void**) { - // NaCl - Antispam - static LLCachedControl antispam(gSavedSettings,"_NACL_Antispam"); - if(antispam || gSavedSettings.getBOOL("AntiSpamScripts")) - return; - // NaCl End if (!gSavedSettings.getBOOL("ScriptsCanShowUI")) return; + // NaCl - Antispam + { + LLUUID object_id, owner_id; + msg->getUUID( "Data", "ObjectID", object_id); + msg->getUUID( "Data", "OwnerID", owner_id); + + if (owner_id.isNull() ? is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(object_id), object_id == gAgentID) : is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(owner_id), owner_id == gAgentID)) return; + } + // NaCl End std::string object_name; std::string sim_name; diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp index 1e4c68b79..9b6548515 100644 --- a/indra/newview/llvoicechannel.cpp +++ b/indra/newview/llvoicechannel.cpp @@ -279,7 +279,7 @@ void LLVoiceChannel::deactivate() LLVoiceClient::getInstance()->getUserPTTState()) { gSavedSettings.setBOOL("PTTCurrentlyEnabled", true); - LLVoiceClient::getInstance()->inputUserControlState(true); + LLVoiceClient::getInstance()->setUserPTTState(false); // Singu Note: Calling inputUserControlState(true) here sometimes(always?) toggled mic back on, likely due to the above setBOOL } } LLVoiceClient::getInstance()->removeObserver(this); diff --git a/indra/newview/skins/default/xui/en-us/menu_avs_list.xml b/indra/newview/skins/default/xui/en-us/menu_avs_list.xml index 1cb554c53..402c5ca7b 100644 --- a/indra/newview/skins/default/xui/en-us/menu_avs_list.xml +++ b/indra/newview/skins/default/xui/en-us/menu_avs_list.xml @@ -4,6 +4,10 @@ + + + + @@ -54,10 +58,10 @@ - + diff --git a/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/indra/newview/skins/default/xui/en-us/menu_inventory.xml index 7305a549f..0a04c547c 100644 --- a/indra/newview/skins/default/xui/en-us/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en-us/menu_inventory.xml @@ -275,9 +275,9 @@ mouse_opaque="true" name="Offer Teleport..." width="128"> - + diff --git a/indra/newview/skins/default/xui/en-us/menu_radar.xml b/indra/newview/skins/default/xui/en-us/menu_radar.xml index 5f6155d2b..2ab9dd73b 100644 --- a/indra/newview/skins/default/xui/en-us/menu_radar.xml +++ b/indra/newview/skins/default/xui/en-us/menu_radar.xml @@ -5,6 +5,10 @@ + + + + @@ -129,10 +133,10 @@ - + diff --git a/indra/newview/skins/default/xui/en-us/panel_group_roles.xml b/indra/newview/skins/default/xui/en-us/panel_group_roles.xml index 21fd30bec..098122431 100644 --- a/indra/newview/skins/default/xui/en-us/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/en-us/panel_group_roles.xml @@ -72,7 +72,7 @@ execute the Ability. label="Search" left_delta="105" name="search_button" width="60" /> @@ -221,8 +221,8 @@ things in this group. There's a broad variety of Abilities. Allowed Abilities + height="105" left="0" multi_select="true" name="role_assigned_members" + width="145" menu_file="menu_avs_list.xml"/> + bg_opaque_color="grey" bottom_delta="0" draw_border="true" + height="125" left="150" multi_select="true" name="action_members" + width="254" menu_file="menu_avs_list.xml"/> diff --git a/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_chat.xml b/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_chat.xml index c983be6c8..00be0ba68 100644 --- a/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_chat.xml +++ b/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_chat.xml @@ -111,7 +111,10 @@ The following wildcards are available to enhance your autoresponses: #n for user - + + Except those from: + + diff --git a/indra/newview/skins/default/xui/es/floater_instant_message.xml b/indra/newview/skins/default/xui/es/floater_instant_message.xml index 3b343be29..a625a4086 100644 --- a/indra/newview/skins/default/xui/es/floater_instant_message.xml +++ b/indra/newview/skins/default/xui/es/floater_instant_message.xml @@ -33,9 +33,13 @@ Ofrecido un Item de Inventario -