Merge branch 'master' of github.com:singularity-viewer/SingularityViewer
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -105,6 +105,8 @@ protected:
|
||||
BOOL mBlockGroupInviteSpam;
|
||||
BOOL mBlockGroupFeeInviteSpam;
|
||||
BOOL mBlockItemOfferSpam;
|
||||
bool mBlockNotMineSpam;
|
||||
bool mBlockNotFriendSpam;
|
||||
BOOL mBlockScriptSpam;
|
||||
BOOL mBlockTeleportSpam;
|
||||
bool mBlockTeleportRequestSpam;
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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"))
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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'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'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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
18
indra/newview/skins/default/xui/es/menu_avs_list.xml
Normal file
18
indra/newview/skins/default/xui/es/menu_avs_list.xml
Normal 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>
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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>
|
||||
<!-- ============================= -->
|
||||
|
||||
Reference in New Issue
Block a user