Merge branch 'master' of github.com:singularity-viewer/SingularityViewer

This commit is contained in:
Melanie
2013-08-03 23:44:26 +02:00
23 changed files with 291 additions and 152 deletions

View File

@@ -202,7 +202,7 @@ char const* HelloWorld::state_str_impl(state_type run_state) const
// with that state.
// multiplex_impl() may never reentrant (cause itself to be called).
// multiplex_impl() should end by callling either one of:
// idle(current_state), yield*(), finish() [or abort()].
// idle(), yield*(), finish() [or abort()].
// Leaving multiplex_impl() without calling any of those might result in an
// immediate reentry, which could lead to 100% CPU usage unless the state
// is changed with set_state().
@@ -212,7 +212,7 @@ char const* HelloWorld::state_str_impl(state_type run_state) const
// the call back passed to run() will be called.
// Upon return from the call back, the state machine object might be destructed
// (see below).
// If idle(current_state) was called, and the state was (still) current_state,
// If idle() was called, and the state was (still) current_state,
// then multiplex_impl() will not be called again until the state is
// advanced, or cont() is called.
//
@@ -245,10 +245,9 @@ char const* HelloWorld::state_str_impl(state_type run_state) const
// following functions can be called:
//
// - set_state(new_state) --> Force the state to new_state. This voids any previous call to set_state() or idle().
// - idle(current_state) --> If the current state is still current_state (if there was no call to advance_state()
// since the last call to set_state(current_state)) then go idle (do nothing until
// cont() or advance_state() is called). If the current state is not current_state,
// then multiplex_impl shall be reentered immediately upon return.
// - idle() --> If there was no call to advance_state() since the last call to set_state(current_state))
// then go idle (do nothing until cont() or advance_state() is called). If the current
// state is not current_state, then multiplex_impl shall be reentered immediately upon return.
// - finish() --> Disables any scheduled runs.
// --> finish_impl --> [optional] kill()
// --> call back

View File

@@ -1308,6 +1308,28 @@ This should be as low as possible, but too low may break functionality</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AntiSpamNotFriends</key>
<map>
<key>Comment</key>
<string>When true, dialogs from friends will not be blocked unless the _NACL_Antispam is true.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AntiSpamNotMine</key>
<map>
<key>Comment</key>
<string>When true, dialogs from your own objects will not be blocked unless the _NACL_Antispam is true.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AntiSpamNotify</key>
<map>
<key>Comment</key>

View File

@@ -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);

View File

@@ -105,6 +105,8 @@ protected:
BOOL mBlockGroupInviteSpam;
BOOL mBlockGroupFeeInviteSpam;
BOOL mBlockItemOfferSpam;
bool mBlockNotMineSpam;
bool mBlockNotFriendSpam;
BOOL mBlockScriptSpam;
BOOL mBlockTeleportSpam;
bool mBlockTeleportRequestSpam;

View File

@@ -70,7 +70,11 @@ BOOL LLPanelVoiceDeviceSettings::postBuild()
volume_slider->setValue(mMicVolume);
mCtrlInputDevices = getChild<LLComboBox>("voice_input_device");
mCtrlInputDevices->add(getLocalizedDeviceName(mInputDevice), mInputDevice);
mCtrlInputDevices->setValue(mInputDevice);
mCtrlOutputDevices = getChild<LLComboBox>("voice_output_device");
mCtrlOutputDevices->add(getLocalizedDeviceName(mOutputDevice), mOutputDevice);
mCtrlOutputDevices->setValue(mOutputDevice);
mCtrlInputDevices->setCommitCallback(
boost::bind(&LLPanelVoiceDeviceSettings::onCommitInputDevice, this));

View File

@@ -41,6 +41,7 @@
#include "llkeyboard.h"
#include "llmodaldialog.h"
#include "llpanelvoicedevicesettings.h"
#include "lltrans.h"
#include "lluictrlfactory.h"
@@ -133,6 +134,12 @@ BOOL LLPrefsVoice::postBuild()
childSetValue("enable_voice_check", enable);
onCommitEnableVoiceChat(getChild<LLCheckBoxCtrl>("enable_voice_check"), this);
if (LLCheckBoxCtrl* check = getChild<LLCheckBoxCtrl>("enable_multivoice_check"))
{
check->setValue(gSavedSettings.getBOOL("VoiceMultiInstance"));
check->setLabel(getString("multivoice_label", LLTrans::getDefaultArgs()));
}
childSetValue("modifier_combo", gSavedSettings.getString("PushToTalkButton"));
childSetValue("voice_call_friends_only_check", gSavedSettings.getBOOL("VoiceCallsFriendsOnly"));
childSetValue("auto_disengage_mic_check", gSavedSettings.getBOOL("AutoDisengageMic"));
@@ -151,6 +158,7 @@ void LLPrefsVoice::apply()
gSavedSettings.setBOOL("PushToTalkToggle", childGetValue("push_to_talk_toggle_check"));
gSavedSettings.setS32("VoiceEarLocation", childGetValue("ear_location"));
gSavedSettings.setBOOL("LipSyncEnabled", childGetValue("enable_lip_sync_check"));
gSavedSettings.setBOOL("VoiceMultiInstance", childGetValue("enable_multivoice_check"));
if (LLPanelVoiceDeviceSettings* voice_device_settings = getChild<LLPanelVoiceDeviceSettings>("device_settings_panel"))
{

View File

@@ -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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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<LLEvent> 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);
}

View File

@@ -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<bool> 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<bool> antispam_not_mine(gSavedSettings,"AntiSpamNotMine");
if (antispam_not_mine && is_owned_by_me)
return false;
static LLCachedControl<bool> 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<bool> 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<bool> 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<bool> 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<bool> 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<bool> 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<bool> 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<bool> 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;

View File

@@ -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);

View File

@@ -2074,7 +2074,7 @@ LLVector3 LLVOVolume::getApproximateFaceNormal(U8 face_id)
result.add(face.mNormals[i]);
}
LLVector3 ret(result.getF32ptr());
ret = LLVector3(result.getF32ptr());
ret = volumeDirectionToAgent(ret);
ret.normVec();
}

View File

@@ -4,6 +4,10 @@
<on_click function="List.ShowProfile"/>
<on_enable function="List.EnableAnySelected"/>
</menu_item_call>
<menu_item_call label="Web Profile" name="Web Profile">
<on_click function="List.ShowWebProfile"/>
<on_visible function="List.VisibleWebProfile"/>
</menu_item_call>
<menu_item_call label="Pay" name="Pay">
<on_click function="List.Pay"/>
<on_enable function="List.EnableSingleSelected"/>
@@ -54,10 +58,10 @@
<on_enable function="List.EnableMute"/>
<on_visible function="List.EnableAnySelected"/>
</menu_item_call>
<menu_item_call label="Report Abuse" name="Report Abuse">
<!--menu_item_call label="Report Abuse" name="Report Abuse">
<on_click function="List.ReportAbuse"/>
<on_visible function="List.EnableSingleSelected"/>
</menu_item_call>
</menu_item_call-->
<menu_item_call label="Copy Key" name="Copy Key">
<on_click function="List.CopyUUIDs"/>
<on_enable function="List.EnableAnySelected"/>

View File

@@ -275,9 +275,9 @@
mouse_opaque="true" name="Offer Teleport..." width="128">
<on_click filter="" function="Inventory.DoToSelected" userdata="lure" />
</menu_item_call>
<menu_item_call label="Request Teleport..." name="Request Teleport...">
<!--menu_item_call label="Request Teleport..." name="Request Teleport...">
<on_click filter="" function="Inventory.DoToSelected" userdata="request_lure" />
</menu_item_call>
</menu_item_call-->
<menu_item_call bottom_delta="-18" height="18" label="Start Conference Chat" left="0"
mouse_opaque="true" name="Conference Chat" width="128">
<on_click filter="" function="Inventory.BeginIMSession" userdata="selected" />

View File

@@ -5,6 +5,10 @@
<on_click function="List.ShowProfile"/>
<on_enable function="List.EnableAnySelected"/>
</menu_item_call>
<menu_item_call label="Web Profile" name="Web Profile">
<on_click function="List.ShowWebProfile"/>
<on_visible function="List.VisibleWebProfile"/>
</menu_item_call>
<menu_item_call label="Pay" name="Pay">
<on_click function="List.Pay"/>
<on_enable function="List.EnableSingleSelected"/>
@@ -129,10 +133,10 @@
<on_enable function="List.EnableMute"/>
<on_visible function="List.EnableAnySelected"/>
</menu_item_call>
<menu_item_call label="Report Abuse" name="Report Abuse">
<!--menu_item_call label="Report Abuse" name="Report Abuse">
<on_click function="List.ReportAbuse"/>
<on_visible function="List.EnableSingleSelected"/>
</menu_item_call>
</menu_item_call-->
<menu_item_separator/>
<menu_item_call label="Freeze" name="Freeze">
<on_click function="List.Freeze"/>

View File

@@ -72,7 +72,7 @@ execute the Ability.
label="Search" left_delta="105" name="search_button" width="60" />
<name_list allow_calling_card_drop="false" background_visible="true" bottom_delta="-121"
column_padding="0" draw_border="true" draw_heading="true"
heading_font="SansSerifSmall"
heading_font="SansSerifSmall" menu_file="menu_avs_list.xml"
heading_height="14" height="120" left="4" multi_select="true"
name="member_list" width="396">
<column label="Member Name" name="name" width="136" />
@@ -221,8 +221,8 @@ things in this group. There&apos;s a broad variety of Abilities.
Allowed Abilities
</text>
<name_list bottom_delta="-105" draw_border="true" draw_stripes="false" enabled="false"
height="105" left="0" multi_select="false" name="role_assigned_members"
width="145" />
height="105" left="0" multi_select="true" name="role_assigned_members"
width="145" menu_file="menu_avs_list.xml"/>
<check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16"
initial_value="false" label="Members are visible" left="0"
mouse_opaque="true" name="role_visible_in_list" radio_style="false"
@@ -261,8 +261,8 @@ things in this group. There&apos;s a broad variety of Abilities.
<scroll_list bottom_delta="-125" draw_border="true" enabled="false" height="125" left="0"
multi_select="false" name="action_roles" width="145" />
<name_list background_opaque="true" background_visible="true" bg_alpha_color="blue"
bg_opaque_color="grey" bottom_delta="0" draw_border="true" enabled="false"
height="125" left="150" multi_select="false" name="action_members"
width="254" />
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"/>
</panel>
</panel>

View File

@@ -111,7 +111,10 @@ The following wildcards are available to enhance your autoresponses: #n for user
<check_box control_name="AntiSpamScripts" height="16" label="Scripts" name="Scripts" bottom_delta="0" left_delta="120"/>
<check_box control_name="AntiSpamTeleports" height="16" label="Teleport Offers" name="Teleport Offers" bottom_delta="0" left_delta="120"/>
<check_box control_name="AntiSpamGroupNotices" height="16" label="Group Notices" name="Group Notices" bottom_delta="0" left_delta="120"/>
<check_box control_name="AntiSpamTeleportRequests" height="16" label="Teleport Requests" name="Teleport Requests" left="14" bottom_delta="-20"/>
<!--check_box control_name="AntiSpamTeleportRequests" height="16" label="Teleport Requests" name="Teleport Requests" left="14" bottom_delta="-20"/-->
<text name="Except those from:" left="21" bottom_delta="-10">Except those from:</text>
<check_box control_name="AntiSpamNotMine" height="16" label="My objects" name="My objects" left="25" bottom_delta="-23"/>
<check_box control_name="AntiSpamNotFriends" height="16" label="My friends" name="My friends" bottom_delta="0" left_delta="120"/>
<check_box control_name="EnableGestureSounds" label="Enable Gesture Sounds" name="Enable Gesture Sounds" left="3" bottom_delta="-20"/>
</panel>

View File

@@ -2,6 +2,8 @@
<panel border="true" bottom="-409" height="408" label="Voice Chat" left="102" name="chat" width="517">
<text bottom_delta="-20" follows="left|top" left_delta="12" name="voice_unavailable">Voice Chat Is Not Available</text>
<check_box bottom_delta="0" follows="top" height="16" initial_value="false" label="Enable voice chat" left="8" name="enable_voice_check"/>
<check_box bottom_delta="-18" follows="top" height="16" name="enable_multivoice_check"/>
<string value="Allow multiple instances of [APP_NAME] to use voice simultaneously (requires restart)" name="multivoice_label"/>
<radio_group bottom_delta="-46" draw_border="false" follows="top" height="40" left_delta="20" name="ear_location" width="364">
<radio_item bottom="-19" height="16" left="3" name="0">Hear Voice Chat from camera position.</radio_item>
<radio_item bottom="-35" height="16" name="1">Hear Voice Chat from avatar position.</radio_item>

View File

@@ -33,9 +33,13 @@
<string name="inventory_item_offered">
Ofrecido un Item de Inventario
</string>
<button label="Perfil" name="profile_callee_btn"/>
<button label="Teleportar" name="profile_tele_btn"/>
<button label="Historial" name="history_btn"/>
<flyout_button label="Perfil" name="instant_message_flyout">
<flyout_button_item label="Historial" name="history_btn"/>
<flyout_button_item label="Ofrecer Teleporte" name="profile_tele_btn"/>
<!--flyout_button_item label="Solicitar Teleporte" name="profile_tele_btn"/-->
<flyout_button_item label="Pagar" name="profile_tele_btn"/>
<flyout_button_item label="Invitar a Grupo" name="profile_tele_btn"/>
</flyout_button>
<check_box name="rp_mode">
Modo RP
</check_box>

View File

@@ -30,10 +30,14 @@
<string name="inventory_item_offered">
Ofrecido un Ítem de Inventario
</string>
<button label="Perfil" left="135" name="profile_callee_btn" width="60"/>
<button label="Historial" left_delta="60" name="history_btn" width="60"/>
<button label="Teleportar" name="profile_tele_btn" width="70"/>
<check_box left_delta="70" name="rp_mode">
<flyout_button label="Perfil" name="instant_message_flyout">
<flyout_button_item label="Historial" name="history_btn"/>
<flyout_button_item label="Ofrecer Teleporte" name="profile_tele_btn"/>
<!--flyout_button_item label="Solicitar Teleporte" name="profile_tele_btn"/-->
<flyout_button_item label="Pagar" name="profile_tele_btn"/>
<flyout_button_item label="Invitar a Grupo" name="profile_tele_btn" value="5"/>
</flyout_button>
<check_box left_delta="75" name="rp_mode">
Modo RP
</check_box>
<button label="Llamar" left_delta="67" name="start_call_btn" width="60"/>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Avatar Menu" create_jump_keys="true">
<menu_item_call label="Perfil" name="Profile"/>
<menu_item_call label="Pagar" name="Pay"/>
<menu_item_call label="Mensaje Instantáneo" name="Instant Message"/>
<menu_item_call label="Conferencia de Chat" name="Conference Chat"/>
<menu_item_call label="Llamar" name="Call"/>
<menu_item_call label="Conferencia de Voz" name="Conference Call"/>
<menu_item_call label="Añadir Amigo" name="Add Friend"/>
<menu_item_call label="Quitar Amigo" name="Remove Friend"/>
<menu_item_call label="Invitar a Grupo" name="Invite To Group"/>
<menu_item_call label="Ofrecer Teleporte" name="Offer Teleport"/>
<!--menu_item_call label="Solicitar Teleporte" name="Request Teleport"/>-->
<menu_item_separator/>
<menu_item_call label="Ignorar/No Ignorar" name="Mute/Unmute"/>
<menu_item_call label="Reportar Abuso" name="Report Abuse"/>
<menu_item_call label="Copiar UUID" name="Copy Key"/>
</menu>

View File

@@ -70,6 +70,7 @@
<menu_item_call name="Animation Audition" label="Reproducir localmente" />
<menu_item_call name="Send Instant Message" label="Enviar MI"/>
<menu_item_call name="Offer Teleport..." label="Ofrecer Teleporte..."/>
<menu_item_call label="Solicitar Teleporte..." name="Request Teleport..."/>
<menu_item_call name="Conference Chat" label="Iniciar Conferencia Grupal"/>
<menu_item_call name="Activate" label="Activar"/>
<menu_item_call name="Deactivate" label="Desactivar"/>

View File

@@ -9,8 +9,10 @@
<menu_item_call label="Llamada de Conferencia" name="Conference Call"/>
<menu_item_call label="Añadir Amigo" name="Add Friend"/>
<menu_item_call label="Quitar Amigo" name="Remove Friend"/>
<menu_item_call label="Invitar a Grupo" name="Invite To Group"/>
<menu_item_call label="Ofrecer Teleporte" name="Offer Teleport"/>
<menu_item_call label="Teleportar a" name="Teleport To"/>
<!--menu_item_call label="Request Teleport" name="Request Teleport"/-->
<menu_item_call label="Rastrear/No Rastrear" name="Track/Untrack"/>
<menu_item_call label="Copiar UUID" name="Copy Key"/>
</menu>

View File

@@ -2069,6 +2069,18 @@ Por favor, intenta con un nombre diferente.
</form>
</notification>
<notification name="TeleportRequestPrompt">
Solicitar Teleporte a [NAME] con el mensaje siguiente
<tag>confirm</tag>
<form name="form">
<input name="message" type="text">
Por favor, Telepórtame a tu ubicación.
</input>
<button name="OK" text="OK"/>
<button name="Cancel" text="Cancelar"/>
</form>
</notification>
<notification name="TooManyTeleportOffers">
Has intentado enviar [OFFERS] ofertas de teleporte
lo cual excede el límite de [LIMIT].
@@ -3817,6 +3829,19 @@ Por favor, reinténtalo en unos momentos.
</form>
</notification>
<notification name="TeleportRequest">
[NAME] está solicitando ser teleportado a tu ubicación.
[MESSAGE]
¿Ofrecerle Teleporte?
<tag>confirm</tag>
<form name="form">
<button name="Yes" text="Si"/>
<button name="No" text="No"/>
<button name="Profile" text="Perfil"/>
</form>
</notification>
<notification name="GotoURL">
[MESSAGE]
[URL]

View File

@@ -125,6 +125,7 @@ Puedes usar los siguientes comodines para personalizar tus respuestas: #n para n
<check_box label="Scripts" name="Scripts"/>
<check_box label="Ofertas de Teleporte" name="Teleport Offers"/>
<check_box label="Avisos de Grupos" name="Group Notices"/>
<check_box control_name="AntiSpamTeleportRequests" label="Solicitudes de Teleporte" name="Teleport Requests"/>
<check_box control_name="EnableGestureSounds" label="Habilitar Sonidos de Gestos" name="Enable Gesture Sounds"/>
</panel>
<!-- ============================= -->