[RLVa] b15fdd026026 ported

- internal : reviewed @recvim and @sendim for CHUI (SL-3.5)

Singu changes:
- Updated busy to be referred to as do_not_disturb in llviewermessage.cpp
- Don't send autoresponse if we can't send an IM by rlva
- Updated checks for from name being system to be to_id and from_id null checks.
- Minor compile fix in rlvui.cpp for last commit.
This commit is contained in:
Inusaito Sayori
2014-01-27 23:42:09 -05:00
parent 755d3be89b
commit 94aee52c64
9 changed files with 170 additions and 127 deletions

View File

@@ -62,8 +62,9 @@
#include "boost/algorithm/string.hpp" #include "boost/algorithm/string.hpp"
// [RLVa:KB] // [RLVa:KB] - Checked: 2013-05-10 (RLVa-1.4.9)
#include "rlvhandler.h" #include "rlvactions.h"
#include "rlvcommon.h"
// [/RLVa:KB] // [/RLVa:KB]
class AIHTTPTimeoutPolicy; class AIHTTPTimeoutPolicy;
@@ -1142,6 +1143,7 @@ void deliver_message(const std::string& utf8_text,
bool convert_roleplay_text(std::string& text); // Returns true if text is an action bool convert_roleplay_text(std::string& text); // Returns true if text is an action
// Singu Note: LLFloaterIMSession::sendMsg
void LLFloaterIMPanel::onSendMsg() void LLFloaterIMPanel::onSendMsg()
{ {
if (!gAgent.isGodlike() if (!gAgent.isGodlike()
@@ -1164,17 +1166,18 @@ void LLFloaterIMPanel::onSendMsg()
bool action = convert_roleplay_text(utf8_text); bool action = convert_roleplay_text(utf8_text);
if (!action && mRPMode) if (!action && mRPMode)
utf8_text = "((" + utf8_text + "))"; utf8_text = "((" + utf8_text + "))";
// [RLVa:KB] - Checked: 2011-09-17 (RLVa-1.1.4b) | Modified: RLVa-1.1.4b
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.hasBehaviour(RLV_BHVR_SENDIMTO)) ) // [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0)
if ( (RlvActions::hasBehaviour(RLV_BHVR_SENDIM)) || (RlvActions::hasBehaviour(RLV_BHVR_SENDIMTO)) )
{ {
bool fRlvFilter = false; bool fRlvFilter = false;
switch (mSessionType) switch (mSessionType)
{ {
case P2P_SESSION: // One-on-one IM case P2P_SESSION: // One-on-one IM
fRlvFilter = !gRlvHandler.canSendIM(mOtherParticipantUUID); fRlvFilter = !RlvActions::canSendIM(mOtherParticipantUUID);
break; break;
case GROUP_SESSION: // Group chat case GROUP_SESSION: // Group chat
fRlvFilter = !gRlvHandler.canSendIM(mSessionUUID); fRlvFilter = !RlvActions::canSendIM(mSessionUUID);
break; break;
case ADHOC_SESSION: // Conference chat: allow if all participants can be sent an IM case ADHOC_SESSION: // Conference chat: allow if all participants can be sent an IM
{ {
@@ -1190,7 +1193,7 @@ void LLFloaterIMPanel::onSendMsg()
itSpeaker != speakers.end(); ++itSpeaker) itSpeaker != speakers.end(); ++itSpeaker)
{ {
const LLSpeaker* pSpeaker = *itSpeaker; const LLSpeaker* pSpeaker = *itSpeaker;
if ( (gAgentID != pSpeaker->mID) && (!gRlvHandler.canSendIM(pSpeaker->mID)) ) if ( (gAgentID != pSpeaker->mID) && (!RlvActions::canSendIM(pSpeaker->mID)) )
{ {
fRlvFilter = true; fRlvFilter = true;
break; break;
@@ -1204,7 +1207,9 @@ void LLFloaterIMPanel::onSendMsg()
} }
if (fRlvFilter) if (fRlvFilter)
{
utf8_text = RlvStrings::getString(RLV_STRING_BLOCKED_SENDIM); utf8_text = RlvStrings::getString(RLV_STRING_BLOCKED_SENDIM);
}
} }
// [/RLVa:KB] // [/RLVa:KB]

View File

@@ -55,8 +55,9 @@
#include "llvoavatar.h" // For mIdleTimer reset #include "llvoavatar.h" // For mIdleTimer reset
#include "llviewerregion.h" #include "llviewerregion.h"
// [RLVa:KB] // [RLVa:KB] - Checked: 2013-05-10 (RLVa-1.4.9)
#include "rlvhandler.h" #include "rlvactions.h"
#include "rlvcommon.h"
// [/RLVa:KB] // [/RLVa:KB]
class AIHTTPTimeoutPolicy; class AIHTTPTimeoutPolicy;
@@ -86,7 +87,7 @@ LLColor4 agent_chat_color(const LLUUID& id, const std::string& name, bool local_
return gSavedSettings.getColor4("AscentLindenColor"); return gSavedSettings.getColor4("AscentLindenColor");
// [RLVa:LF] Chat colors would identify names, don't use them in local chat if restricted // [RLVa:LF] Chat colors would identify names, don't use them in local chat if restricted
if (local_chat && rlv_handler_t::isEnabled() && gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) if (local_chat && RlvActions::hasBehaviour(RLV_BHVR_SHOWNAMES))
return gSavedSettings.getColor4("AgentChatColor"); return gSavedSettings.getColor4("AgentChatColor");
static const LLCachedControl<bool> color_friend_chat("ColorFriendChat"); static const LLCachedControl<bool> color_friend_chat("ColorFriendChat");
@@ -104,11 +105,6 @@ LLColor4 agent_chat_color(const LLUUID& id, const std::string& name, bool local_
return local_chat ? gSavedSettings.getColor4("AgentChatColor") : gSavedSettings.getColor("IMChatColor"); return local_chat ? gSavedSettings.getColor4("AgentChatColor") : gSavedSettings.getColor("IMChatColor");
} }
// returns true if a should appear before b
//static BOOL group_dictionary_sort( LLGroupData* a, LLGroupData* b )
//{
// return (LLStringUtil::compareDict( a->mName, b->mName ) < 0);
//}
class LLViewerChatterBoxInvitationAcceptResponder : public LLHTTPClient::ResponderWithResult class LLViewerChatterBoxInvitationAcceptResponder : public LLHTTPClient::ResponderWithResult
{ {
@@ -1492,15 +1488,15 @@ public:
} }
bool group = gAgent.isInGroup(session_id); bool group = gAgent.isInGroup(session_id);
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c // [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0)
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_RECVIM)) || (gRlvHandler.hasBehaviour(RLV_BHVR_RECVIMFROM)) ) if ( (RlvActions::hasBehaviour(RLV_BHVR_RECVIM)) || (RlvActions::hasBehaviour(RLV_BHVR_RECVIMFROM)) )
{ {
if (group) // Group chat: don't accept the invite if not an exception if (group)
{ {
if (!gRlvHandler.canReceiveIM(session_id)) if (!RlvActions::canReceiveIM(session_id))
return; return;
} }
else if (!gRlvHandler.canReceiveIM(from_id)) // Conference chat: don't block; censor if not an exception else if (!RlvActions::canReceiveIM(from_id))
{ {
message = RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM); message = RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM);
} }

View File

@@ -111,7 +111,7 @@
#include "llviewerregion.h" #include "llviewerregion.h"
// [RLVa:KB] - Checked: 2010-03-09 (RLVa-1.2.0a) // [RLVa:KB] - Checked: 2010-03-09 (RLVa-1.2.0a)
#include "llfloateravatarinfo.h" // Checked: 2009-07-08 (RLVa-1.0.0e) #include "rlvactions.h"
#include "rlvhandler.h" #include "rlvhandler.h"
#include "rlvinventory.h" #include "rlvinventory.h"
#include "rlvui.h" #include "rlvui.h"
@@ -1628,6 +1628,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
args["[NAME]"] = mFromName; args["[NAME]"] = mFromName;
LLFloaterChat::addChatHistory(LLTrans::getString("InvOfferAcceptSilent", args)); LLFloaterChat::addChatHistory(LLTrans::getString("InvOfferAcceptSilent", args));
} }
break; break;
case IOR_BUSY: case IOR_BUSY:
@@ -1688,7 +1689,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
} }
if (busy && (!mFromGroup && !mFromObject)) if (busy && (!mFromGroup && !mFromObject))
{ {
busy_message(msg,mFromID); send_do_not_disturb_message(msg,mFromID);
} }
break; break;
} }
@@ -2246,7 +2247,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
llinfos << "RegionID: " << region_id.asString() << llendl; llinfos << "RegionID: " << region_id.asString() << llendl;
// </edit> // </edit>
BOOL is_busy = gAgent.getBusy(); BOOL is_do_not_disturb = gAgent.getBusy();
BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat) BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat)
// object IMs contain sender object id in session_id (STORM-1209) // object IMs contain sender object id in session_id (STORM-1209)
|| dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id); || dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id);
@@ -2315,7 +2316,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
// do nothing -- don't distract newbies in // do nothing -- don't distract newbies in
// Prelude with global IMs // Prelude with global IMs
} }
// [RLVa:KB] - Checked: 2011-05-28 (RLVa-1.4.0a) | Modified: RLVa-1.4.0a // [RLVa:KB] - Checked: 2011-05-28 (RLVa-1.4.0)
else if ( (rlv_handler_t::isEnabled()) && (offline == IM_ONLINE) && ("@version" == message) && else if ( (rlv_handler_t::isEnabled()) && (offline == IM_ONLINE) && ("@version" == message) &&
(!is_muted) && ((!accept_im_from_only_friend) || (is_friend)) ) (!is_muted) && ((!accept_im_from_only_friend) || (is_friend)) )
{ {
@@ -2325,19 +2326,28 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
gIMMgr->processIMTypingStop(im_info); gIMMgr->processIMTypingStop(im_info);
} }
// [/RLVa:KB] // [/RLVa:KB]
// else if (offline == IM_ONLINE && !is_linden && !is_muted && is_busy && name != SYSTEM_FROM) // else if (offline == IM_ONLINE
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c // && is_do_not_disturb
else if ( (offline == IM_ONLINE && !is_linden && !is_muted && is_busy && name != SYSTEM_FROM) && (gRlvHandler.canReceiveIM(from_id)) ) // && !is_muted // Singu Note: Never if muted
// && from_id.notNull() //not a system message
// && to_id.notNull()) //not global message
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0) | Modified: RLVa-1.3.0c
else if (offline == IM_ONLINE
&& is_do_not_disturb
&& !is_muted // Singu Note: Never if muted
&& from_id.notNull() //not a system message
&& to_id.notNull() //not global message
&& RlvActions::canReceiveIM(from_id))
// [/RLVa:KB] // [/RLVa:KB]
{ {
// return a standard "busy" message, but only do it to online IM // return a standard "do not disturb" message, but only do it to online IM
// (i.e. not other auto responses and not store-and-forward IM) // (i.e. not other auto responses and not store-and-forward IM)
if (!gIMMgr->hasSession(session_id) || gSavedPerAccountSettings.getBOOL("AscentInstantMessageResponseRepeat")) if (!gIMMgr->hasSession(session_id) || gSavedPerAccountSettings.getBOOL("AscentInstantMessageResponseRepeat"))
{ {
// if the user wants to repeat responses over and over or // if the user wants to repeat responses over and over or
// if there is not a panel for this conversation (i.e. it is a new IM conversation // if there is not a panel for this conversation (i.e. it is a new IM conversation
// initiated by the other party) then... // initiated by the other party) then...
if (to_id.notNull()) busy_message(msg, from_id); send_do_not_disturb_message(msg, from_id, session_id);
} }
// now store incoming IM in chat history // now store incoming IM in chat history
@@ -2361,9 +2371,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
chat.mText = std::string("IM: ") + name + separator_string + message.substr(message_offset); chat.mText = std::string("IM: ") + name + separator_string + message.substr(message_offset);
LLFloaterChat::addChat(chat, true, true); LLFloaterChat::addChat(chat, true, true);
} }
// else if (to_id.notNull() && offline == IM_ONLINE && !is_linden && (is_autorespond || is_autorespond_nonfriends || is_autorespond_muted) && name != SYSTEM_FROM) // else if (offline == IM_ONLINE && (is_autorespond || is_autorespond_nonfriends || is_autorespond_muted) && from_id.notNull() && to_id.notNull())
// [RLVa:LF] - Same as above: Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c // [RLVa:LF] - Same as above: Checked: 2010-11-30 (RLVa-1.3.0)
else if (to_id.notNull() && offline == IM_ONLINE && !is_linden && (is_autorespond || is_autorespond_nonfriends || is_autorespond_muted) && name != SYSTEM_FROM && gRlvHandler.canReceiveIM(from_id)) else if (offline == IM_ONLINE && (is_autorespond || is_autorespond_nonfriends || is_autorespond_muted) && from_id.notNull() && to_id.notNull() && RlvActions::canReceiveIM(from_id) && RlvActions::canSendIM(from_id))
// [/RLVa:LF] // [/RLVa:LF]
{ {
// now store incoming IM in chat history // now store incoming IM in chat history
@@ -2475,9 +2485,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
mute_im = true; mute_im = true;
} }
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c // [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0)
// Don't block offline IMs, or IMs from Lindens // Don't block offline IMs, or IMs from Lindens
if ( (rlv_handler_t::isEnabled()) && (offline != IM_OFFLINE) && (!is_linden) && (!gRlvHandler.canReceiveIM(from_id)) ) if ( (rlv_handler_t::isEnabled()) && (offline != IM_OFFLINE) && (!RlvActions::canReceiveIM(from_id)) && (!is_linden) )
{ {
if (!mute_im) if (!mute_im)
RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM_REMOTE), session_id); RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM_REMOTE), session_id);
@@ -2562,7 +2572,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
case IM_TYPING_START: case IM_TYPING_START:
{ {
// Don't announce that someone has started messaging, if they're muted or when in busy mode // Don't announce that someone has started messaging, if they're muted or when in busy mode
if (!is_muted && (!accept_im_from_only_friend || is_friend) && !is_busy && !gIMMgr->hasSession(computed_session_id) && gSavedSettings.getBOOL("AscentInstantMessageAnnounceIncoming")) if (!is_muted && (!accept_im_from_only_friend || is_friend) && !is_do_not_disturb && !gIMMgr->hasSession(computed_session_id) && gSavedSettings.getBOOL("AscentInstantMessageAnnounceIncoming"))
{ {
std::string pns_name; std::string pns_name;
if (!LLAvatarNameCache::getPNSName(from_id, pns_name)) pns_name = name; if (!LLAvatarNameCache::getPNSName(from_id, pns_name)) pns_name = name;
@@ -2758,12 +2768,12 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
break; break;
case IM_GROUP_INVITATION: case IM_GROUP_INVITATION:
{ {
//if (!is_linden && (is_busy || is_muted)) //if (is_do_not_disturb || is_muted)
if (is_muted) return; if (is_muted) return;
if (is_busy) if (is_do_not_disturb)
{ {
LLMessageSystem *msg = gMessageSystem; LLMessageSystem *msg = gMessageSystem;
busy_message(msg,from_id); send_do_not_disturb_message(msg,from_id);
} }
else else
{ {
@@ -2850,7 +2860,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
info->mFromName = name; info->mFromName = name;
info->mDesc = message; info->mDesc = message;
info->mHost = msg->getSender(); info->mHost = msg->getSender();
//if (((is_busy && !is_owned_by_me) || is_muted)) //if (((is_do_not_disturb && !is_owned_by_me) || is_muted))
if (is_muted) if (is_muted)
{ {
// Prefetch the offered item so that it can be discarded by the appropriate observer. (EXT-4331) // Prefetch the offered item so that it can be discarded by the appropriate observer. (EXT-4331)
@@ -2862,7 +2872,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
info->forceResponse(IOR_DECLINE); info->forceResponse(IOR_DECLINE);
} }
/* Singu Note: Handle this inside inventory_offer_handler so if the user wants to autoaccept offers, they can while busy. /* Singu Note: Handle this inside inventory_offer_handler so if the user wants to autoaccept offers, they can while busy.
else if (is_busy && dialog != IM_TASK_INVENTORY_OFFERED) // busy mode must not affect interaction with objects (STORM-565) else if (is_do_not_disturb && dialog != IM_TASK_INVENTORY_OFFERED) // busy mode must not affect interaction with objects (STORM-565)
{ {
// Until throttling is implemented, busy mode should reject inventory instead of silently // Until throttling is implemented, busy mode should reject inventory instead of silently
// accepting it. SEE SL-39554 // accepting it. SEE SL-39554
@@ -2920,7 +2930,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
case IM_SESSION_SEND: case IM_SESSION_SEND:
{ {
if (!is_linden && is_busy) if (!is_linden && is_do_not_disturb)
{ {
return; return;
} }
@@ -2938,16 +2948,16 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
return; return;
} }
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_RECVIM)) || (gRlvHandler.hasBehaviour(RLV_BHVR_RECVIMFROM)) ) if (from_id != gAgentID && (gRlvHandler.hasBehaviour(RLV_BHVR_RECVIM) || gRlvHandler.hasBehaviour(RLV_BHVR_RECVIMFROM)))
{ {
switch (pIMFloater->getSessionType()) switch (pIMFloater->getSessionType())
{ {
case LLFloaterIMPanel::GROUP_SESSION: // Group chat case LLFloaterIMPanel::GROUP_SESSION: // Group chat
if ( (from_id != gAgent.getID()) && (!gRlvHandler.canReceiveIM(session_id)) ) if (!RlvActions::canReceiveIM(session_id))
return; return;
break; break;
case LLFloaterIMPanel::ADHOC_SESSION: // Conference chat case LLFloaterIMPanel::ADHOC_SESSION: // Conference chat
if ( (from_id != gAgent.getID()) && (!gRlvHandler.canReceiveIM(from_id)) ) if (!RlvActions::canReceiveIM(from_id))
message = RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM); message = RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM);
break; break;
default: default:
@@ -2996,7 +3006,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
case IM_FROM_TASK: case IM_FROM_TASK:
{ {
if (is_busy && !is_owned_by_me) if (is_do_not_disturb && !is_owned_by_me)
{ {
return; return;
} }
@@ -3075,8 +3085,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
LLFloaterChat::addChat(chat, FALSE, FALSE); LLFloaterChat::addChat(chat, FALSE, FALSE);
} }
break; break;
case IM_FROM_TASK_AS_ALERT: case IM_FROM_TASK_AS_ALERT:
if (is_busy && !is_owned_by_me) if (is_do_not_disturb && !is_owned_by_me)
{ {
return; return;
} }
@@ -3090,14 +3101,12 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
case IM_BUSY_AUTO_RESPONSE: case IM_BUSY_AUTO_RESPONSE:
if (is_muted) if (is_muted)
{ {
LL_DEBUGS("Messaging") << "Ignoring busy response from " << from_id << LL_ENDL; LL_DEBUGS("Messaging") << "Ignoring do-not-disturb response from " << from_id << LL_ENDL;
return; return;
} }
else else
{ {
// TODO: after LLTrans hits release, get "busy response" into translatable file gIMMgr->addMessage(session_id, from_id, name, message);
buffer = llformat("%s (%s): %s", name.c_str(), "busy response", message.substr(message_offset).c_str());
gIMMgr->addMessage(session_id, from_id, name, buffer);
} }
break; break;
@@ -3116,12 +3125,12 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
{ {
return; return;
} }
// else if (is_busy) // else if (is_do_not_disturb)
// [RLVa:KB] - Checked: 2010-12-11 (RLVa-1.2.2c) | Added: RLVa-1.2.2c // [RLVa:KB] - Checked: 2010-12-11 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
else if ( (is_busy) && (!fRlvSummon) ) else if ( (is_do_not_disturb) && (!fRlvSummon) )
// [/RLVa:KB] // [/RLVa:KB]
{ {
busy_message(msg,from_id); send_do_not_disturb_message(msg, from_id);
} }
else else
{ {
@@ -3184,13 +3193,13 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
if (IM_TELEPORT_REQUEST != dialog && !gRlvHandler.canTeleportViaLure(from_id)) if (IM_TELEPORT_REQUEST != dialog && !gRlvHandler.canTeleportViaLure(from_id))
{ {
RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_TPLURE_REMOTE)); RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_TPLURE_REMOTE));
if (is_busy) if (is_do_not_disturb)
busy_message(msg,from_id); send_do_not_disturb_message(msg, from_id);
return; return;
} }
// Censor lure message if: 1) restricted from receiving IMs from the sender, or 2) @showloc=n restricted // Censor lure message if: 1) restricted from receiving IMs from the sender, or 2) @showloc=n restricted
if ( (!gRlvHandler.canReceiveIM(from_id)) || (IM_TELEPORT_REQUEST != dialog && gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ) if ( (!RlvActions::canReceiveIM(from_id)) || (IM_TELEPORT_REQUEST != dialog && gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) )
{ {
message = RlvStrings::getString(RLV_STRING_HIDDEN); message = RlvStrings::getString(RLV_STRING_HIDDEN);
} }
@@ -3215,8 +3224,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
if ( IM_TELEPORT_REQUEST != dialog && (rlv_handler_t::isEnabled()) && ((gRlvHandler.hasBehaviour(RLV_BHVR_ACCEPTTP)) || (fRlvSummon)) ) if ( IM_TELEPORT_REQUEST != dialog && (rlv_handler_t::isEnabled()) && ((gRlvHandler.hasBehaviour(RLV_BHVR_ACCEPTTP)) || (fRlvSummon)) )
{ {
gRlvHandler.setCanCancelTp(false); gRlvHandler.setCanCancelTp(false);
if (is_busy) if (is_do_not_disturb)
busy_message(msg,from_id); send_do_not_disturb_message(msg, from_id);
LLNotifications::instance().forceResponse(LLNotification::Params("TeleportOffered").payload(payload), 0); LLNotifications::instance().forceResponse(LLNotification::Params("TeleportOffered").payload(payload), 0);
} }
else else
@@ -3355,17 +3364,16 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
payload["online"] = (offline == IM_ONLINE); payload["online"] = (offline == IM_ONLINE);
payload["sender"] = msg->getSender().getIPandPort(); payload["sender"] = msg->getSender().getIPandPort();
if (!is_muted && is_busy) if (is_muted)
{
busy_message(msg, from_id);
LLNotifications::instance().forceResponse(LLNotification::Params("OfferFriendship").payload(payload), 1);
}
else if (is_muted)
{ {
LLNotifications::instance().forceResponse(LLNotification::Params("OfferFriendship").payload(payload), 1); LLNotifications::instance().forceResponse(LLNotification::Params("OfferFriendship").payload(payload), 1);
} }
else else
{ {
if (is_do_not_disturb)
{
send_do_not_disturb_message(msg, from_id);
}
args["[NAME]"] = name; args["[NAME]"] = name;
if(message.empty()) if(message.empty())
{ {
@@ -3395,12 +3403,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
args["NAME"] = name; args["NAME"] = name;
LLSD payload; LLSD payload;
payload["from_id"] = from_id; payload["from_id"] = from_id;
LLAvatarNameCache::get(from_id, boost::bind(&notification_display_name_callback, LLAvatarNameCache::get(from_id, boost::bind(&notification_display_name_callback, _1, _2, "FriendshipAccepted", args, payload));
_1,
_2,
"FriendshipAccepted",
args,
payload));
} }
break; break;
@@ -3418,7 +3421,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
} }
} }
void busy_message (LLMessageSystem* msg, LLUUID from_id) void send_do_not_disturb_message (LLMessageSystem* msg, const LLUUID& from_id, const LLUUID& session_id)
{ {
if (gAgent.getBusy()) if (gAgent.getBusy())
{ {
@@ -3429,7 +3432,7 @@ void busy_message (LLMessageSystem* msg, LLUUID from_id)
from_name = LLCacheName::cleanFullName(from_name); from_name = LLCacheName::cleanFullName(from_name);
std::string response = gSavedPerAccountSettings.getString("BusyModeResponse"); std::string response = gSavedPerAccountSettings.getString("BusyModeResponse");
pack_instant_message( pack_instant_message(
gMessageSystem, msg,
gAgent.getID(), gAgent.getID(),
FALSE, FALSE,
gAgent.getSessionID(), gAgent.getSessionID(),
@@ -3487,7 +3490,7 @@ bool callingcard_offer_callback(const LLSD& notification, const LLSD& response)
msg->nextBlockFast(_PREHASH_TransactionBlock); msg->nextBlockFast(_PREHASH_TransactionBlock);
msg->addUUIDFast(_PREHASH_TransactionID, notification["payload"]["transaction_id"].asUUID()); msg->addUUIDFast(_PREHASH_TransactionID, notification["payload"]["transaction_id"].asUUID());
msg->sendReliable(LLHost(notification["payload"]["sender"].asString())); msg->sendReliable(LLHost(notification["payload"]["sender"].asString()));
busy_message(msg, notification["payload"]["source_id"].asUUID()); send_do_not_disturb_message(msg, notification["payload"]["source_id"].asUUID());
break; break;
default: default:
// close button probably, possibly timed out // close button probably, possibly timed out
@@ -3748,7 +3751,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
chat.mFromName = from_name; chat.mFromName = from_name;
} }
BOOL is_busy = gAgent.getBusy(); BOOL is_do_not_disturb = gAgent.getBusy();
BOOL is_muted = FALSE; BOOL is_muted = FALSE;
BOOL is_linden = FALSE; BOOL is_linden = FALSE;
@@ -3866,7 +3869,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
// record last audible utterance // record last audible utterance
if (is_audible if (is_audible
&& (is_linden || (!is_muted && !is_busy))) && (is_linden || (!is_muted && !is_do_not_disturb)))
{ {
if (chat.mChatType != CHAT_TYPE_START if (chat.mChatType != CHAT_TYPE_START
&& chat.mChatType != CHAT_TYPE_STOP) && chat.mChatType != CHAT_TYPE_STOP)
@@ -4057,7 +4060,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
LLLocalSpeakerMgr::getInstance()->setSpeakerTyping(from_id, FALSE); LLLocalSpeakerMgr::getInstance()->setSpeakerTyping(from_id, FALSE);
static_cast<LLVOAvatar*>(chatter)->stopTyping(); static_cast<LLVOAvatar*>(chatter)->stopTyping();
if (!is_muted /*&& !is_busy*/) if (!is_muted /*&& !is_do_not_disturb*/)
{ {
static const LLCachedControl<bool> use_chat_bubbles("UseChatBubbles",false); static const LLCachedControl<bool> use_chat_bubbles("UseChatBubbles",false);
visible_in_chat_bubble = use_chat_bubbles; visible_in_chat_bubble = use_chat_bubbles;
@@ -4200,7 +4203,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
} }
chat.mMuted = is_muted && !is_linden; chat.mMuted = is_muted && !is_linden;
bool only_history = visible_in_chat_bubble || (!is_linden && !is_owned_by_me && is_busy); bool only_history = visible_in_chat_bubble || (!is_linden && !is_owned_by_me && is_do_not_disturb);
#if 0 // Google translate doesn't work anymore #if 0 // Google translate doesn't work anymore
if (!chat.mMuted) if (!chat.mMuted)
{ {
@@ -7590,14 +7593,14 @@ void send_lures(const LLSD& notification, const LLSD& response)
LLAgentUI::buildSLURL(slurl); LLAgentUI::buildSLURL(slurl);
text.append("\r\n").append(slurl.getSLURLString()); text.append("\r\n").append(slurl.getSLURLString());
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c // [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0)
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.hasBehaviour(RLV_BHVR_SENDIMTO)) ) if ( (RlvActions::hasBehaviour(RLV_BHVR_SENDIM)) || (RlvActions::hasBehaviour(RLV_BHVR_SENDIMTO)) )
{ {
// Filter the lure message if one of the recipients of the lure can't be sent an IM to // Filter the lure message if one of the recipients of the lure can't be sent an IM to
for (LLSD::array_const_iterator it = notification["payload"]["ids"].beginArray(); for (LLSD::array_const_iterator it = notification["payload"]["ids"].beginArray();
it != notification["payload"]["ids"].endArray(); ++it) it != notification["payload"]["ids"].endArray(); ++it)
{ {
if (!gRlvHandler.canSendIM(it->asUUID())) if (!RlvActions::canSendIM(it->asUUID()))
{ {
text = RlvStrings::getString(RLV_STRING_HIDDEN); text = RlvStrings::getString(RLV_STRING_HIDDEN);
break; break;

View File

@@ -70,7 +70,6 @@ enum InventoryOfferResponse
BOOL can_afford_transaction(S32 cost); BOOL can_afford_transaction(S32 cost);
void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group = FALSE, void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group = FALSE,
S32 trx_type = TRANS_GIFT, const std::string& desc = LLStringUtil::null); S32 trx_type = TRANS_GIFT, const std::string& desc = LLStringUtil::null);
void busy_message (LLMessageSystem* msg, LLUUID from_id);
void process_logout_reply(LLMessageSystem* msg, void**); void process_logout_reply(LLMessageSystem* msg, void**);
void process_layer_data(LLMessageSystem *mesgsys, void **user_data); void process_layer_data(LLMessageSystem *mesgsys, void **user_data);
@@ -160,6 +159,8 @@ void send_group_notice(const LLUUID& group_id,
const std::string& message, const std::string& message,
const LLInventoryItem* item); const LLInventoryItem* item);
void send_do_not_disturb_message (LLMessageSystem* msg, const LLUUID& from_id, const LLUUID& session_id = LLUUID::null);
void handle_lure(const LLUUID& invitee); void handle_lure(const LLUUID& invitee);
void handle_lure(const uuid_vec_t& ids); void handle_lure(const uuid_vec_t& ids);

View File

@@ -23,6 +23,30 @@
// RlvActions member functions // RlvActions member functions
// //
// Checked: 2010-11-30 (RLVa-1.3.0)
bool RlvActions::canReceiveIM(const LLUUID& idSender)
{
// User can receive an IM from "sender" (could be an agent or a group) if:
// - not generally restricted from receiving IMs (or the sender is an exception)
// - not specifically restricted from receiving an IM from the sender
return
(!rlv_handler_t::isEnabled()) ||
( ( (!gRlvHandler.hasBehaviour(RLV_BHVR_RECVIM)) || (gRlvHandler.isException(RLV_BHVR_RECVIM, idSender)) ) &&
( (!gRlvHandler.hasBehaviour(RLV_BHVR_RECVIMFROM)) || (!gRlvHandler.isException(RLV_BHVR_RECVIMFROM, idSender)) ) );
}
// Checked: 2010-11-30 (RLVa-1.3.0)
bool RlvActions::canSendIM(const LLUUID& idRecipient)
{
// User can send an IM to "recipient" (could be an agent or a group) if:
// - not generally restricted from sending IMs (or the recipient is an exception)
// - not specifically restricted from sending an IM to the recipient
return
(!rlv_handler_t::isEnabled()) ||
( ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, idRecipient)) ) &&
( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIMTO)) || (!gRlvHandler.isException(RLV_BHVR_SENDIMTO, idRecipient)) ) );
}
// Checked: 2011-04-12 (RLVa-1.3.0) // Checked: 2011-04-12 (RLVa-1.3.0)
bool RlvActions::canStartIM(const LLUUID& idRecipient) bool RlvActions::canStartIM(const LLUUID& idRecipient)
{ {
@@ -35,6 +59,12 @@ bool RlvActions::canStartIM(const LLUUID& idRecipient)
( (!gRlvHandler.hasBehaviour(RLV_BHVR_STARTIMTO)) || (!gRlvHandler.isException(RLV_BHVR_STARTIMTO, idRecipient)) ) ); ( (!gRlvHandler.hasBehaviour(RLV_BHVR_STARTIMTO)) || (!gRlvHandler.isException(RLV_BHVR_STARTIMTO, idRecipient)) ) );
} }
// Checked: 2013-05-10 (RLVa-1.4.9)
bool RlvActions::hasBehaviour(ERlvBehaviour eBhvr)
{
return gRlvHandler.hasBehaviour(eBhvr);
}
// Checked: 2013-05-09 (RLVa-1.4.9) // Checked: 2013-05-09 (RLVa-1.4.9)
bool RlvActions::hasOpenP2PSession(const LLUUID& idAgent) bool RlvActions::hasOpenP2PSession(const LLUUID& idAgent)
{ {

View File

@@ -17,19 +17,37 @@
#ifndef RLV_ACTIONS_H #ifndef RLV_ACTIONS_H
#define RLV_ACTIONS_H #define RLV_ACTIONS_H
#include "rlvdefines.h"
// ============================================================================ // ============================================================================
// RlvActions class declaration // RlvActions class declaration - developer-friendly non-RLVa code facing class, use in lieu of RlvHandler whenever possible
// //
class RlvActions class RlvActions
{ {
public: public:
/*
* Returns true if the user is allowed to receive IMs from the specified sender (can be an avatar or a group)
*/
static bool canReceiveIM(const LLUUID& idSender);
/*
* Returns true if the user is allowed to send IMs to the specified recipient (can be an avatar or a group)
*/
static bool canSendIM(const LLUUID& idRecipient);
/* /*
* Returns true if the user is allowed to start a - P2P or group - conversation with the specified UUID. * Returns true if the user is allowed to start a - P2P or group - conversation with the specified UUID.
*/ */
static bool canStartIM(const LLUUID& idRecipient); // @startim and @startimto static bool canStartIM(const LLUUID& idRecipient); // @startim and @startimto
/*
* Convenience function to check for a behaviour without having to include rlvhandler.h.
* Do NOT call this function if speed is important (i.e. per-frame)
*/
static bool hasBehaviour(ERlvBehaviour eBhvr);
/* /*
* Returns true if a - P2P or group - IM session is open with the specified UUID. * Returns true if a - P2P or group - IM session is open with the specified UUID.
*/ */

View File

@@ -92,9 +92,7 @@ public:
// Command specific helper functions // Command specific helper functions
bool canEdit(const LLViewerObject* pObj) const; // @edit and @editobj bool canEdit(const LLViewerObject* pObj) const; // @edit and @editobj
bool canReceiveIM(const LLUUID& idSender) const; // @recvim and @recvimfrom bool canShowHoverText(const LLViewerObject* pObj) const; // @showhovertext* command family
bool canShowHoverText(const LLViewerObject* pObj) const; // @showhovertext* command family
bool canSendIM(const LLUUID& idRecipient) const; // @sendim and @sendimto
bool canSit(LLViewerObject* pObj, const LLVector3& posOffset = LLVector3::zero) const; bool canSit(LLViewerObject* pObj, const LLVector3& posOffset = LLVector3::zero) const;
bool canStand() const; bool canStand() const;
bool canTeleportViaLure(const LLUUID& idAgent) const; bool canTeleportViaLure(const LLUUID& idAgent) const;
@@ -244,29 +242,7 @@ inline bool RlvHandler::canEdit(const LLViewerObject* pObj) const
((!hasBehaviour(RLV_BHVR_EDITOBJ)) || (!isException(RLV_BHVR_EDITOBJ, pObj->getRootEdit()->getID()))); ((!hasBehaviour(RLV_BHVR_EDITOBJ)) || (!isException(RLV_BHVR_EDITOBJ, pObj->getRootEdit()->getID())));
} }
// Checked: 2010-11-30 (RLVa-1.3.0c) | Added: RLVa-1.3.0c // Checked: 2010-03-27 (RLVa-1.4.0a) | Modified: RLVa-1.0.0f
inline bool RlvHandler::canReceiveIM(const LLUUID& idSender) const
{
// User can receive an IM from "sender" (could be an agent or a group) if:
// - not generally restricted from receiving IMs (or the sender is an exception)
// - not specifically restricted from receiving an IM from the sender
return
( (!hasBehaviour(RLV_BHVR_RECVIM)) || (isException(RLV_BHVR_RECVIM, idSender)) ) &&
( (!hasBehaviour(RLV_BHVR_RECVIMFROM)) || (!isException(RLV_BHVR_RECVIMFROM, idSender)) );
}
// Checked: 2010-11-30 (RLVa-1.3.0c) | Added: RLVa-1.3.0c
inline bool RlvHandler::canSendIM(const LLUUID& idRecipient) const
{
// User can send an IM to "recipient" (could be an agent or a group) if:
// - not generally restricted from sending IMs (or the recipient is an exception)
// - not specifically restricted from sending an IM to the recipient
return
( (!hasBehaviour(RLV_BHVR_SENDIM)) || (isException(RLV_BHVR_SENDIM, idRecipient)) ) &&
( (!hasBehaviour(RLV_BHVR_SENDIMTO)) || (!isException(RLV_BHVR_SENDIMTO, idRecipient)) );
}
// Checked: 2010-03-27 (RLVa-1.2.0b) | Modified: RLVa-1.0.0f
inline bool RlvHandler::canShowHoverText(const LLViewerObject *pObj) const inline bool RlvHandler::canShowHoverText(const LLViewerObject *pObj) const
{ {
return ( (!pObj) || (LL_PCODE_VOLUME != pObj->getPCode()) || return ( (!pObj) || (LL_PCODE_VOLUME != pObj->getPCode()) ||

View File

@@ -47,6 +47,8 @@
#include "llfloaterchat.h" #include "llfloaterchat.h"
#include "llfloateravatarlist.h" #include "llfloateravatarlist.h"
#include "llfloaterworldmap.h" #include "llfloaterworldmap.h"
#include "llmenugl.h"
#include "lluictrlfactory.h"
#include "llviewerregion.h" #include "llviewerregion.h"
#include "rlvui.h" #include "rlvui.h"
@@ -80,6 +82,7 @@ RlvUIEnabler::RlvUIEnabler()
// onToggleXXX // onToggleXXX
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_EDIT, boost::bind(&RlvUIEnabler::onToggleEdit, this))); m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_EDIT, boost::bind(&RlvUIEnabler::onToggleEdit, this)));
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SENDIM, boost::bind(&RlvUIEnabler::onToggleSendIM, this)));
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SETDEBUG, boost::bind(&RlvUIEnabler::onToggleSetDebug, this))); m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SETDEBUG, boost::bind(&RlvUIEnabler::onToggleSetDebug, this)));
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SETENV, boost::bind(&RlvUIEnabler::onToggleSetEnv, this))); m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SETENV, boost::bind(&RlvUIEnabler::onToggleSetEnv, this)));
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SHOWINV, boost::bind(&RlvUIEnabler::onToggleShowInv, this, _1))); m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SHOWINV, boost::bind(&RlvUIEnabler::onToggleShowInv, this, _1)));
@@ -130,7 +133,7 @@ void RlvUIEnabler::onToggleEdit()
// Turn off "View / Highlight Transparent" // Turn off "View / Highlight Transparent"
LLDrawPoolAlpha::sShowDebugAlpha = FALSE; LLDrawPoolAlpha::sShowDebugAlpha = FALSE;
// Close the Beacons floater if it's open // Hide the Beacons floater if it's currently visible
if (LLFloaterBeacons::instanceVisible()) if (LLFloaterBeacons::instanceVisible())
LLFloaterBeacons::toggleInstance(); LLFloaterBeacons::toggleInstance();
@@ -156,6 +159,15 @@ void RlvUIEnabler::onToggleMovement()
gAgent.clearTempRun(); gAgent.clearTempRun();
} }
// Checked: 2013-05-11 (RLVa-1.4.9)
void RlvUIEnabler::onToggleSendIM()
{
/* Singu Note: Don't hide settings just because they won't be used, that's just wrong.
bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM);
gSavedPerAccountSettings.getControl("BusyModeResponse")->setHiddenFromSettingsEditor(!fEnable);
*/
}
// Checked: 2011-05-28 (RLVa-1.4.0a) | Added: RLVa-1.4.0a // Checked: 2011-05-28 (RLVa-1.4.0a) | Added: RLVa-1.4.0a
void RlvUIEnabler::onToggleSetDebug() void RlvUIEnabler::onToggleSetDebug()
{ {
@@ -231,13 +243,13 @@ void RlvUIEnabler::onToggleShowInv(bool fQuitting)
// //
if (!fEnable) if (!fEnable)
{ {
gMenuHolder->childSetEnabled("My Outfits", false); LLMenuGL::sMenuContainer->childSetEnabled("My Outfits", false);
gMenuHolder->childSetEnabled("Favorites", false); LLMenuGL::sMenuContainer->childSetEnabled("Favorites", false);
} }
else else
{ {
gMenuHolder->childSetEnabled("My Outfits", true); LLMenuGL::sMenuContainer->childSetEnabled("My Outfits", true);
gMenuHolder->childSetEnabled("Favorites", true); LLMenuGL::sMenuContainer->childSetEnabled("Favorites", true);
} }
} }
@@ -251,13 +263,14 @@ void RlvUIEnabler::onToggleShowLoc()
if (!fEnable) if (!fEnable)
{ {
// Close the "About Land" floater if it's currently visible // Hide the "About Land" floater if it's currently visible
if (LLFloaterLand::instanceVisible()) if (LLFloaterLand::instanceVisible())
LLFloaterLand::hideInstance(); LLFloaterLand::hideInstance();
// Close the "Estate Tools" floater is it's currently visible // Hide the "Region / Estate" floater if it's currently visible
if (LLFloaterRegionInfo::instanceVisible()) if (LLFloaterRegionInfo::instanceVisible())
LLFloaterRegionInfo::hideInstance(); LLFloaterRegionInfo::hideInstance();
// Hide the "God Tools" floater if it's currently visible
LLFloaterGodTools::hide(); LLFloaterGodTools::hide();
} }
} }
@@ -265,7 +278,6 @@ void RlvUIEnabler::onToggleShowLoc()
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a // Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
void RlvUIEnabler::onToggleShowMinimap() void RlvUIEnabler::onToggleShowMinimap()
{ {
bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWMINIMAP); bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWMINIMAP);
// Start or stop filtering showing the mini-map floater // Start or stop filtering showing the mini-map floater
@@ -281,12 +293,10 @@ void RlvUIEnabler::onToggleShowNames(bool fQuitting)
bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES); bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES);
// Close the "Active Speakers" panel if it's currently visible
// Force the use of the "display name" cache so we can filter both display and legacy names (or return back to the user's preference) // Force the use of the "display name" cache so we can filter both display and legacy names (or return back to the user's preference)
if (!fEnable) if (!fEnable)
{ {
// Close the "Active Speakers" panel if it's currently visible
LLFloaterChat::getInstance()->childSetVisible("active_speakers_panel", false); LLFloaterChat::getInstance()->childSetVisible("active_speakers_panel", false);
// Close the "Avatar List/Radar" floater if it's currently visible // Close the "Avatar List/Radar" floater if it's currently visible
if ( LLFloaterAvatarList::instanceExists() && LLFloaterAvatarList::getInstance()->getVisible() ) if ( LLFloaterAvatarList::instanceExists() && LLFloaterAvatarList::getInstance()->getVisible() )
@@ -314,7 +324,8 @@ void RlvUIEnabler::onToggleShowWorldMap()
// Checked: 2010-08-22 (RLVa-1.2.1a) | Added: RLVa-1.2.1a // Checked: 2010-08-22 (RLVa-1.2.1a) | Added: RLVa-1.2.1a
void RlvUIEnabler::onToggleTp() void RlvUIEnabler::onToggleTp()
{ {
/* // Disable the navigation bar "Home" button if both @tplm=n *and* @tploc=n restricted /* Singu TODO: LLNavigationBar
// Disable the navigation bar "Home" button if both @tplm=n *and* @tploc=n restricted
LLButton* pNavBarHomeBtn = LLNavigationBar::getInstance()->findChild<LLButton>("home_btn"); LLButton* pNavBarHomeBtn = LLNavigationBar::getInstance()->findChild<LLButton>("home_btn");
RLV_ASSERT(pNavBarHomeBtn); RLV_ASSERT(pNavBarHomeBtn);
if (pNavBarHomeBtn) if (pNavBarHomeBtn)
@@ -325,7 +336,7 @@ void RlvUIEnabler::onToggleTp()
// Checked: 2010-03-01 (RLVa-1.2.0c) | Added: RLVa-1.2.0a // Checked: 2010-03-01 (RLVa-1.2.0c) | Added: RLVa-1.2.0a
void RlvUIEnabler::onToggleUnsit() void RlvUIEnabler::onToggleUnsit()
{ {
/* /* Singu TODO?
bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT); bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT);
LLPanelStandStopFlying* pPanelStand = LLPanelStandStopFlying::getInstance(); LLPanelStandStopFlying* pPanelStand = LLPanelStandStopFlying::getInstance();
@@ -343,15 +354,17 @@ void RlvUIEnabler::onToggleUnsit()
// Checked: 2010-03-01 (RLVa-1.2.0b) | Added: RLVa-1.2.0a // Checked: 2010-03-01 (RLVa-1.2.0b) | Added: RLVa-1.2.0a
void RlvUIEnabler::onToggleViewXXX() void RlvUIEnabler::onToggleViewXXX()
{ {
/* Singu TODO?
// If any of the three are still active then we keep filtering // If any of the three are still active then we keep filtering
/*bool fHasViewXXX = (gRlvHandler.hasBehaviour(RLV_BHVR_VIEWNOTE)) || bool fHasViewXXX = (gRlvHandler.hasBehaviour(RLV_BHVR_VIEWNOTE)) ||
(gRlvHandler.hasBehaviour(RLV_BHVR_VIEWSCRIPT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_VIEWTEXTURE)); (gRlvHandler.hasBehaviour(RLV_BHVR_VIEWSCRIPT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_VIEWTEXTURE));
// Start or stop filtering opening the preview floaters // Start or stop filtering opening the preview floaters
if ( (fHasViewXXX) && (!m_ConnFloaterViewXXX.connected()) ) if ( (fHasViewXXX) && (!m_ConnFloaterViewXXX.connected()) )
m_ConnFloaterViewXXX = LLFloaterReg::setValidateCallback(boost::bind(&RlvUIEnabler::filterFloaterViewXXX, this, _1, _2)); m_ConnFloaterViewXXX = LLFloaterReg::setValidateCallback(boost::bind(&RlvUIEnabler::filterFloaterViewXXX, this, _1, _2));
else if ( (!fHasViewXXX) && (m_ConnFloaterViewXXX.connected()) ) else if ( (!fHasViewXXX) && (m_ConnFloaterViewXXX.connected()) )
m_ConnFloaterViewXXX.disconnect();*/ m_ConnFloaterViewXXX.disconnect();
*/
} }
// Checked: 2010-04-01 (RLVa-1.2.0c) | Added: RLVa-1.2.0c // Checked: 2010-04-01 (RLVa-1.2.0c) | Added: RLVa-1.2.0c
@@ -370,7 +383,6 @@ void RlvUIEnabler::onUpdateLoginLastLocation(bool fQuitting)
if (!m_ConnFloaterGeneric.connected()) if (!m_ConnFloaterGeneric.connected())
m_ConnFloaterGeneric = LLFloaterReg::setValidateCallback(boost::bind(&RlvUIEnabler::filterFloaterGeneric, this, _1, _2)); m_ConnFloaterGeneric = LLFloaterReg::setValidateCallback(boost::bind(&RlvUIEnabler::filterFloaterGeneric, this, _1, _2));
} }
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a // Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
@@ -436,7 +448,8 @@ bool RlvUIEnabler::filterFloaterViewXXX(const std::string& strName, const LLSD&)
return false; return false;
} }
return true; return true;
}*/ }
*/
// ============================================================================ // ============================================================================

View File

@@ -45,6 +45,7 @@ protected:
void onRefreshHoverText(); // showloc, shownames, showhovertext(all|world|hud) void onRefreshHoverText(); // showloc, shownames, showhovertext(all|world|hud)
void onToggleEdit(); // edit void onToggleEdit(); // edit
void onToggleMovement(); // fly, alwaysrun and temprun void onToggleMovement(); // fly, alwaysrun and temprun
void onToggleSendIM(); // sendim
void onToggleSetDebug(); // setdebug void onToggleSetDebug(); // setdebug
void onToggleSetEnv(); // setenv void onToggleSetEnv(); // setenv
void onToggleShowInv(bool fQuitting); // showinv void onToggleShowInv(bool fQuitting); // showinv