diff --git a/indra/llappearance/llwearabletype.h b/indra/llappearance/llwearabletype.h index a63f524fcc93ef2ad1050947b000e959377d47a8..a6cb875a00a959fc6a830b72e996a8d963e9a7f9 100644 --- a/indra/llappearance/llwearabletype.h +++ b/indra/llappearance/llwearabletype.h @@ -112,9 +112,9 @@ class LLWearableType final : public LLParamSingleton<LLWearableType> ~LLWearableDictionary() = default; // [RLVa:KB] - Checked: 2010-03-03 (RLVa-1.2.0a) | Added: RLVa-1.2.0a - protected: - // The default implementation asserts on 'notFound()' and returns -1 which isn't a valid EWearableType - virtual LLWearableType::EType notFound() const { return LLWearableType::WT_INVALID; } + protected: + // The default implementation asserts on 'notFound()' and returns -1 which isn't a valid EWearableType + LLWearableType::EType notFound() const override { return LLWearableType::WT_INVALID; } // [/RLVa:KB] }; diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 8bdc00c14dac98839370f1545596065db1164906..00e0ae87ab9390d09189d3b9788f8cffc805071b 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -225,18 +225,6 @@ void LLAgentCamera::init() mCameraPreset = (ECameraPreset) gSavedSettings.getU32("CameraPresetType"); -// [RLVa:KB] - @setcam_eyeoffset, @setcam_focusoffset and @setcam_eyeoffsetscale - if (RlvActions::isRlvEnabled()) - { - mRlvCameraOffsetInitialControl = gSavedSettings.declareVec3("CameraOffsetRLVaView", LLVector3::zero, "Declared in code", LLControlVariable::PERSIST_NO); - mRlvCameraOffsetInitialControl->setHiddenFromSettingsEditor(true); - mRlvCameraOffsetScaleControl = gSavedSettings.declareF32("CameraOffsetScaleRLVa", 0.0f, "Declared in code", LLControlVariable::PERSIST_NO); - mRlvCameraOffsetScaleControl->setHiddenFromSettingsEditor(true); - mRlvFocusOffsetInitialControl = gSavedSettings.declareVec3d("FocusOffsetRLVaView", LLVector3d::zero, "Declared in code", LLControlVariable::PERSIST_NO); - mRlvFocusOffsetInitialControl->setHiddenFromSettingsEditor(true); - } -// [/RLVa:KB] - mCameraCollidePlane.clearVec(); mCurrentCameraDistance = getCameraOffsetInitial().magVec() * gSavedSettings.getF32("CameraOffsetScale"); mTargetCameraDistance = mCurrentCameraDistance; @@ -1793,11 +1781,11 @@ LLVector3d LLAgentCamera::calcThirdPersonFocusOffset() agent_rot *= ((LLViewerObject*)(gAgentAvatarp->getParent()))->getRenderRotation(); } - //static LLCachedControl<LLVector3d> focus_offset_initial(gSavedSettings, "FocusOffsetRearView", LLVector3d()); // [RLVa:KB] - @setcam_focusoffset - focus_offset_initial = getFocusOffsetInitial(); + return getFocusOffsetInitial() * agent_rot; // [/RLVa:KB] - return focus_offset_initial * agent_rot; +// static LLCachedControl<LLVector3d> focus_offset_initial(gSavedSettings, "FocusOffsetRearView", LLVector3d()); +// return focus_offset_initial * agent_rot; } void LLAgentCamera::setupSitCamera() @@ -1946,7 +1934,7 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit) else { // [RLVa:KB] - @setcam_eyeoffsetscale - local_camera_offset = mCameraZoomFraction * getCameraOffsetInitial() * getCameraOffsetScale(); + local_camera_offset = mCameraZoomFraction * getCameraOffsetInitial() * getCameraOffsetScale(); // [/RLVa:KB] // static LLCachedControl<F32> camera_offset_scale(gSavedSettings, "CameraOffsetScale"); // local_camera_offset = mCameraZoomFraction * getCameraOffsetInitial() * camera_offset_scale; @@ -2256,8 +2244,9 @@ LLVector3 LLAgentCamera::getCameraOffsetInitial() // getCameraOffsetInitial and getFocusOffsetInitial can be called on update from idle before init() static LLCachedControl<LLVector3> camera_offset_initial (gSavedSettings, "CameraOffsetRearView", LLVector3()); // [RLVa:KB] - @setcam_eyeoffset - return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? camera_offset_initial : convert_from_llsd<LLVector3>(mRlvCameraOffsetInitialControl->get(), TYPE_VEC3, ""); -// [/RLVa:KB] + static LLCachedControl<LLVector3> camera_offset_initial_rlv (gSavedSettings, "CameraOffsetRLVaView", LLVector3()); + return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? camera_offset_initial : camera_offset_initial_rlv; +// [/RLVa:KB] // return camera_offset_initial; } @@ -2265,7 +2254,8 @@ LLVector3d LLAgentCamera::getFocusOffsetInitial() { static LLCachedControl<LLVector3d> focus_offset_initial(gSavedSettings, "FocusOffsetRearView", LLVector3d()); // [RLVa:KB] - @setcam_focusoffset - return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? focus_offset_initial :convert_from_llsd<LLVector3d>(mRlvFocusOffsetInitialControl->get(), TYPE_VEC3D, ""); + static LLCachedControl<LLVector3d> focus_offset_initial_rlv(gSavedSettings, "FocusOffsetRLVaView", LLVector3d()); + return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? focus_offset_initial : focus_offset_initial_rlv; // [/RLVa:KB] // return focus_offset_initial; } @@ -2273,9 +2263,9 @@ LLVector3d LLAgentCamera::getFocusOffsetInitial() // [RLVa:KB] - @setcam_eyeoffsetscale F32 LLAgentCamera::getCameraOffsetScale() const { - static const LLCachedControl<F32> cam_offset_scale(gSavedSettings, "CameraOffsetScale"); - static const LLCachedControl<F32> cam_offset_scale_rlva(gSavedSettings, "CameraOffsetScaleRLVa", 0.0f, "Declared in code"); - return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? cam_offset_scale : cam_offset_scale_rlva; + static LLCachedControl<F32> camera_offset_scale(gSavedSettings, "CameraOffsetScale"); + static LLCachedControl<F32> camera_offset_scale_rlv(gSavedSettings, "CameraOffsetScaleRLVa"); + return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? camera_offset_scale : camera_offset_scale_rlv; } // [/RLVa:KB] @@ -2718,9 +2708,9 @@ void LLAgentCamera::switchCameraPreset(ECameraPreset preset) else { // When switching to our view, copy the current values - mRlvCameraOffsetInitialControl->setDefaultValue(convert_to_llsd(getCameraOffsetInitial())); - mRlvFocusOffsetInitialControl->setDefaultValue(convert_to_llsd(getFocusOffsetInitial())); - mRlvCameraOffsetScaleControl->setDefaultValue(getCameraOffsetScale()); + gSavedSettings.setVector3("CameraOffsetRLVaView", getCameraOffsetInitial()); + gSavedSettings.setVector3d("FocusOffsetRLVaView", getFocusOffsetInitial()); + gSavedSettings.setF32("CameraOffsetScaleRLVa", getCameraOffsetScale()); } } } diff --git a/indra/newview/llagentcamera.h b/indra/newview/llagentcamera.h index ceff8c520f2af55121ae89134b9a9bdcdb13f401..b77ea4a44761fdfdef9aa37aeee3782426d9be7f 100644 --- a/indra/newview/llagentcamera.h +++ b/indra/newview/llagentcamera.h @@ -144,19 +144,6 @@ class LLAgentCamera /** Camera preset in Third Person Mode */ ECameraPreset mCameraPreset; -// [RLVa:KB] - @setcam_eyeoffset - LLPointer<LLControlVariable> mRlvCameraOffsetInitialControl; -// [/RLVa:KB] - -// [RLVa:KB] - @setcam_eyeoffsetscale - LLPointer<LLControlVariable> mRlvCameraOffsetScaleControl; -// [/RLVa:KB] - -// LLPointer<LLControlVariable> mFocusOffsetInitial; -// [RLVa:KB] - @setcam_focusoffset - LLPointer<LLControlVariable> mRlvFocusOffsetInitialControl; -// [/RLVa:KB] - LLQuaternion mInitSitRot; //-------------------------------------------------------------------- diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 5ac65e5b903f6fbeb6172317c634236b5d780e19..8af3a09043fe8ae83508aed36aeacf5870793ee1 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -2198,7 +2198,7 @@ void LLAppearanceMgr::filterWearableItems( continue; // S32 start_index = llmax(0,size-max_per_type); // [SL:KB] - Patch: Appearance-Misc | Checked: 2010-05-11 (Catznip-2.0) - S32 start_index = llmax(0, size - ((LLWearableType::getInstance()->getAllowMultiwear((LLWearableType::EType)i)) ? max_per_type : 1)); + S32 start_index = llmax(0, size - ((LLWearableType::instance().getAllowMultiwear((LLWearableType::EType)i)) ? max_per_type : 1)); // [/SL:KB[ for (S32 j = start_index; j<size; j++) { diff --git a/indra/newview/llattachmentsmgr.cpp b/indra/newview/llattachmentsmgr.cpp index 34b11a44082b50da6227960ee6a090f2945abaf6..d5a530e2f4fd3bc732c5377f24cd218ab37360c3 100644 --- a/indra/newview/llattachmentsmgr.cpp +++ b/indra/newview/llattachmentsmgr.cpp @@ -167,7 +167,7 @@ void LLAttachmentsMgr::onIdle() expireOldDetachRequests(); -// checkInvalidCOFLinks(); +// checkInvalidCOFLinks(); spamStatusInfo(); } @@ -592,51 +592,51 @@ bool LLAttachmentsMgr::isAttachmentStateComplete() const // { // return; // } -// LLInventoryModel::cat_array_t cat_array; -// LLInventoryModel::item_array_t item_array; -// gInventory.collectDescendents(LLAppearanceMgr::instance().getCOF(), -// cat_array,item_array,LLInventoryModel::EXCLUDE_TRASH); -// for (S32 i=0; i<item_array.size(); i++) -// { -// const LLViewerInventoryItem* inv_item = item_array.at(i).get(); -// const LLUUID& item_id = inv_item->getLinkedUUID(); -// if (inv_item->getType() == LLAssetType::AT_OBJECT) -// { -// LLTimer timer; -// bool is_flagged_questionable = mQuestionableCOFLinks.getTime(item_id,timer); -// bool is_wearing_attachment = isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(item_id); -// if (is_wearing_attachment && is_flagged_questionable) -// { -// LL_DEBUGS("Avatar") << "ATT was flagged questionable but is now " -// << (is_wearing_attachment ? "attached " : "") -// <<"removing flag after " -// << timer.getElapsedTimeF32() << " item " -// << inv_item->getName() << " id " << item_id << LL_ENDL; -// mQuestionableCOFLinks.removeTime(item_id); -// } -// } -// } +// LLInventoryModel::cat_array_t cat_array; +// LLInventoryModel::item_array_t item_array; +// gInventory.collectDescendents(LLAppearanceMgr::instance().getCOF(), +// cat_array,item_array,LLInventoryModel::EXCLUDE_TRASH); +// for (S32 i=0; i<item_array.size(); i++) +// { +// const LLViewerInventoryItem* inv_item = item_array.at(i).get(); +// const LLUUID& item_id = inv_item->getLinkedUUID(); +// if (inv_item->getType() == LLAssetType::AT_OBJECT) +// { +// LLTimer timer; +// bool is_flagged_questionable = mQuestionableCOFLinks.getTime(item_id,timer); +// bool is_wearing_attachment = isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(item_id); +// if (is_wearing_attachment && is_flagged_questionable) +// { +// LL_DEBUGS("Avatar") << "ATT was flagged questionable but is now " +// << (is_wearing_attachment ? "attached " : "") +// <<"removing flag after " +// << timer.getElapsedTimeF32() << " item " +// << inv_item->getName() << " id " << item_id << LL_ENDL; +// mQuestionableCOFLinks.removeTime(item_id); +// } +// } +// } // -// for(LLItemRequestTimes::iterator it = mQuestionableCOFLinks.begin(); -// it != mQuestionableCOFLinks.end(); ) -// { -// LLItemRequestTimes::iterator curr_it = it; -// ++it; -// const LLUUID& item_id = curr_it->first; -// LLViewerInventoryItem *inv_item = gInventory.getItem(item_id); -// if (curr_it->second.getElapsedTimeF32() > MAX_BAD_COF_TIME) -// { -// if (LLAppearanceMgr::instance().isLinkedInCOF(item_id)) -// { -// LL_DEBUGS("Avatar") << "ATT Linked in COF but not attached or requested, deleting link after " -// << curr_it->second.getElapsedTimeF32() << " seconds for " -// << (inv_item ? inv_item->getName() : "UNKNOWN") << " id " << item_id << LL_ENDL; -// LLAppearanceMgr::instance().removeCOFItemLinks(item_id); -// } -// mQuestionableCOFLinks.erase(curr_it); -// continue; -// } -// } +// for(LLItemRequestTimes::iterator it = mQuestionableCOFLinks.begin(); +// it != mQuestionableCOFLinks.end(); ) +// { +// LLItemRequestTimes::iterator curr_it = it; +// ++it; +// const LLUUID& item_id = curr_it->first; +// LLViewerInventoryItem *inv_item = gInventory.getItem(item_id); +// if (curr_it->second.getElapsedTimeF32() > MAX_BAD_COF_TIME) +// { +// if (LLAppearanceMgr::instance().isLinkedInCOF(item_id)) +// { +// LL_DEBUGS("Avatar") << "ATT Linked in COF but not attached or requested, deleting link after " +// << curr_it->second.getElapsedTimeF32() << " seconds for " +// << (inv_item ? inv_item->getName() : "UNKNOWN") << " id " << item_id << LL_ENDL; +// LLAppearanceMgr::instance().removeCOFItemLinks(item_id); +// } +// mQuestionableCOFLinks.erase(curr_it); +// continue; +// } +// } //} void LLAttachmentsMgr::spamStatusInfo() diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index cf476ed33d96e739ee378484167d302221f667fb..ec973c51a049b63cf4f919b25bc0840b83afc841 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -1477,7 +1477,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL } // else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() && !message_from_log && chat.mSourceType != CHAT_SOURCE_REGION) // [RLVa:KB] - Checked: 2010-04-22 (RLVa-1.2.0f) | Added: RLVa-1.2.0f - else if (chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() && !message_from_log && chat.mSourceType != CHAT_SOURCE_REGION && !chat.mRlvNamesFiltered) + else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() && !message_from_log && chat.mSourceType != CHAT_SOURCE_REGION && !chat.mRlvNamesFiltered) // [/RLVa:KB] { LLStyle::Params link_params(body_message_params); diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp index 7a4ca69729efa3b0adf212c9d313b25c3b7c0645..5ea92cde22ced5cb5febc872072bdc1aea710790 100644 --- a/indra/newview/llconversationmodel.cpp +++ b/indra/newview/llconversationmodel.cpp @@ -36,6 +36,9 @@ #include "llconversationmodel.h" #include "llimview.h" //For LLIMModel #include "lltrans.h" +// [RLVa:KB] - @shownames +#include "rlvactions.h" +// [/RLVa:KB] // // Conversation items : common behaviors @@ -598,8 +601,13 @@ void LLConversationItemParticipant::onAvatarNameCache(const LLAvatarName& av_nam void LLConversationItemParticipant::updateName(const LLAvatarName& av_name) { - mName = av_name.getUserName(); - mDisplayName = av_name.getDisplayName(); +// [RLVa:KB] - @shownames + bool fRlvCanShowName = (!mRlvCheckShowNames) || (RlvActions::canShowName(RlvActions::SNC_DEFAULT, mUUID)); + mName = (fRlvCanShowName) ? av_name.getUserName() : LLStringUtil::null; + mDisplayName = (fRlvCanShowName) ? av_name.getDisplayName() : RlvStrings::getAnonym(av_name); +// [/RLVa:KB] +// mName = av_name.getUserName(); +// mDisplayName = av_name.getDisplayName(); if (mDisplayModeratorLabel) { diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h index 7efe03da21c5eab77ef349a66750fe020ac2bdfc..1e1bece1464613bf68a9921415dbfa2ae3e603d1 100644 --- a/indra/newview/llconversationmodel.h +++ b/indra/newview/llconversationmodel.h @@ -218,6 +218,10 @@ class LLConversationItemParticipant : public LLConversationItem void setModeratorOptionsVisible(bool visible) { mDisplayModeratorOptions = visible; } void setDisplayModeratorRole(bool displayRole); void setGroupBanVisible(bool visible) { mDisplayGroupBanOptions = visible; } +// [RLVa:KB] - @shownames + void setRlvCheckShowNames(bool fRlvCheckShowNames) { mRlvCheckShowNames = fRlvCheckShowNames; } +// [/RLVa:KB] + private: void onAvatarNameCache(const LLAvatarName& av_name); // callback used by fetchAvatarName @@ -226,6 +230,9 @@ class LLConversationItemParticipant : public LLConversationItem bool mIsModeratorMuted; // default is false bool mIsModerator; // default is false bool mDisplayModeratorLabel; // default is false +// [RLVa:KB] - @shownames + bool mRlvCheckShowNames; +// [/RLVa:KB] std::string mDisplayName; F64 mDistToAgent; // Distance to the agent. A negative (meaningless) value means the distance has not been set. boost::signals2::connection mAvatarNameCacheConnection; diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index c650446412968603eb53cd22beba6101609ff2b8..c55836d99fa2a569decad37baded7ede4238d167 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -1453,6 +1453,23 @@ void LLFloaterIMContainer::doToSelected(const LLSD& userdata) const LLConversationItem * conversationItem = getCurSelectedViewModelItem(); uuid_vec_t selected_uuids; +// [RLVa:KB] - @shownames + // Bulldozer block of all actions but both Catznip and Firestorm have no need for CHUI + if (!RlvActions::canShowName(RlvActions::SNC_DEFAULT)) + { + if (LLConversationItemParticipant* pParticipantItem = dynamic_cast<LLConversationItemParticipant*>(const_cast<LLConversationItem*>(conversationItem))) + { + if (LLConversationItemSession* pParentSession = pParticipantItem->getParentSession()) + { + if ( (pParentSession->getUUID().isNull()) && (selected_uuids.size() != 1 || !RlvActions::canShowName(RlvActions::SNC_DEFAULT, selected_uuids.front())) ) + { + return; + } + } + } + } +// [/RLVa:KB] + if(conversationItem != NULL) { getParticipantUUIDs(selected_uuids); @@ -1619,7 +1636,14 @@ bool LLFloaterIMContainer::enableContextMenuItem(const std::string& item, uuid_v } // Handle all other options - if (("can_invite" == item) +// [RLVa:KB] - @pay + if ("can_pay" == item) + { + return is_single_select && RlvActions::canPayAvatar(single_id); + } + else if (("can_invite" == item) +// [/RLVa:KB] +// if (("can_invite" == item) || ("can_chat_history" == item) || ("can_share" == item) // [RLVa:KB] - @pay @@ -1630,12 +1654,6 @@ bool LLFloaterIMContainer::enableContextMenuItem(const std::string& item, uuid_v // Those menu items are enable only if a single avatar is selected return is_single_select; } -// [RLVa:KB] - @pay - else if ("can_pay" == item) - { - return is_single_select && RlvActions::canPayAvatar(single_id); - } -// [/RLVa:KB] else if ("can_block" == item) { return (is_single_select ? LLAvatarActions::canBlock(single_id) : false); diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h index 1117abb00d8fee58c87854add445781a32d33823..583f41267c6f5b198c9d10d6fe1b1d42530ba3af 100644 --- a/indra/newview/llfloaterimsessiontab.h +++ b/indra/newview/llfloaterimsessiontab.h @@ -37,6 +37,9 @@ #include "llconversationmodel.h" #include "llconversationview.h" #include "lltexteditor.h" +// [RLVa:KB] - @shownames +#include "rlvhelper.h" +// [/RLVa:KB] class LLPanelChatControlPanel; class LLChatEntry; @@ -46,6 +49,10 @@ class LLPanelEmojiComplete; class LLFloaterIMSessionTab : public LLTransientDockableFloater { +// [RLVa:KB] - @shownames + friend struct RlvCommandHandler<RLV_TYPE_ADDREM, RLV_BHVR_SHOWNAMES>; + friend struct RlvCommandHandler<RLV_TYPE_ADDREM, RLV_BHVR_SHOWNEARBY>; +// [/RLVa:KB] using super = LLTransientDockableFloater; public: diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 5678975830cfd834da03044fe29d8a487ca800e6..286556f1dae04d850c7cbed38657bbdcfe4f03f6 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1590,6 +1590,13 @@ void LLFloaterPreference::buildPopupLists() void LLFloaterPreference::refreshEnabledState() { +// [RLVa:KB] - Checked: 2013-05-11 (RLVa-1.4.9) + if (RlvActions::isRlvEnabled()) + { + getChild<LLUICtrl>("do_not_disturb_response")->setEnabled(!RlvActions::hasBehaviour(RLV_BHVR_SENDIM)); + } +// [/RLVa:KB] + // Cannot have floater active until caps have been received getChild<LLButton>("default_creation_permissions")->setEnabled(LLStartUp::getStartupState() < STATE_STARTED ? false : true); diff --git a/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp b/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp index cc7a88475e9cc2a097ed9485f9c6d39c7b05a113..a4db2fd75492151b97f3210970f75b93cfd6e6ff 100644 --- a/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp +++ b/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp @@ -40,6 +40,9 @@ #include "llviewertexturelist.h" #include "llvoavatar.h" #include "pipeline.h" +// [RLVa:KB] - Checked: 2010-03-18 (RLVa-1.2.0a) +#include "rlvactions.h" +// [/RLVa:KB] LLFloaterPreferenceGraphicsAdvanced::LLFloaterPreferenceGraphicsAdvanced(const LLSD& key) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index bc34dc407f4e49fc09a313d4abf05186126d043a..2bf67ae760cf2e3290393d15b733d83896d88454 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -1417,10 +1417,11 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, // [RLVa:KB] - Checked: RLVa-1.4.9 if (rlv_handler_t::isEnabled()) { - if ( ((IM_LURE_USER == dialog) && (!RlvActions::canAcceptTpOffer(from_id))) || - ((IM_TELEPORT_REQUEST == dialog) && (!RlvActions::canAcceptTpRequest(from_id))) ) + bool fBlockTpLure = (IM_LURE_USER == dialog) && (!RlvActions::canAcceptTpOffer(from_id)); + bool fBlockTpRequest = (IM_TELEPORT_REQUEST == dialog) && (!RlvActions::canAcceptTpRequest(from_id)); + if ( fBlockTpLure || fBlockTpRequest ) { - RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RlvStringKeys::Blocked::TpLureRequestRemote)); + RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(fBlockTpLure ? RlvStringKeys::Blocked::TpLureRemote : RlvStringKeys::Blocked::TpRequestRemote)); if (is_do_not_disturb) send_do_not_disturb_message(gMessageSystem, from_id); return; diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index c8ba04708c3032b2564086f472756bd98d0d3b55..09e64c61db4e22dd26f8042593857f3b61ffde09 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -2328,14 +2328,14 @@ void LLInventoryModel::notifyObservers(const LLUUID& transaction_id) mChangedItemIDs.insert(mChangedItemIDsBacklog.begin(), mChangedItemIDsBacklog.end()); mAddedItemIDs.clear(); mAddedItemIDs.insert(mAddedItemIDsBacklog.begin(), mAddedItemIDsBacklog.end()); +// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5 + mTransactionId.setNull(); +// [/SL:KB] mModifyMaskBacklog = LLInventoryObserver::NONE; mChangedItemIDsBacklog.clear(); mAddedItemIDsBacklog.clear(); -// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5 - mTransactionId.setNull(); -// [/SL:KB] mIsNotifyObservers = FALSE; } diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index 4e08427bd6ecbfdcbd582353ae845f3c66e343fb..2f7bf3277343e3690ea2447a3f762133614bac8a 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -608,6 +608,9 @@ class LLInventoryModel U32 mModifyMask; changed_items_t mChangedItemIDs; changed_items_t mAddedItemIDs; +// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5 + LLUUID mTransactionId; +// [/SL:KB] // Fallback when notifyObservers is in progress U32 mModifyMaskBacklog; changed_items_t mChangedItemIDsBacklog; @@ -616,9 +619,6 @@ class LLInventoryModel broken_links_t mPossiblyBrockenLinks; // there can be multiple links per item changed_items_t mLinksRebuildList; boost::signals2::connection mBulkFecthCallbackSlot; -// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5 - LLUUID mTransactionId; -// [/SL:KB] //-------------------------------------------------------------------- diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index 62f206495118cf77cbfb1a0f2bddbdfa4a45c480..c26daec7b7eb74ca88e052719628ec0cffea6a94 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -854,7 +854,7 @@ BOOL LLNetMap::handleToolTip(S32 x, S32 y, MASK mask) // If the cursor is near an avatar on the minimap, a mini-inspector will be // shown for the avatar, instead of the normal map tooltip. -// if (handleToolTipAgent(mClosestAgentToCursor)) +// if (handleToolTipAgent(mClosestAgentToCursor)) // [RLVa:KB] - Checked: RLVa-1.2.2 bool fRlvCanShowName = (mClosestAgentToCursor.notNull()) && (RlvActions::canShowName(RlvActions::SNC_DEFAULT, mClosestAgentToCursor)); if ( (fRlvCanShowName) && (handleToolTipAgent(mClosestAgentToCursor)) ) @@ -863,11 +863,6 @@ BOOL LLNetMap::handleToolTip(S32 x, S32 y, MASK mask) return true; } -// [RLVa:KB] - Checked: RLVa-1.2.2 - LLStringUtil::format_map_t args; LLAvatarName avName; - args["[AGENT]"] = ( (!fRlvCanShowName) && (mClosestAgentToCursor.notNull()) && (LLAvatarNameCache::get(mClosestAgentToCursor, &avName)) ) ? RlvStrings::getAnonym(avName) + "\n" : ""; -// [/RLVa:KB] - // The popup menu uses the hover parcel when it is open and the mouse is on // top of it, with some additional tolerance. Returning early here prevents // fighting over that hover parcel when getting tooltip info in the @@ -895,7 +890,7 @@ BOOL LLNetMap::handleToolTip(S32 x, S32 y, MASK mask) { // std::string region_name = region->getName(); // [RLVa:KB] - Checked: RLVa-1.2.2 - std::string region_name = (RlvActions::canShowLocation()) ? region->getName() : RlvStrings::getString(RlvStringKeys::Hidden::Region); + std::string region_name = (RlvActions::canShowLocation()) ? region->getName() : RlvStrings::getString(RlvStringKeys::Hidden::Region); // [/RLVa:KB] if (!region_name.empty()) { @@ -967,13 +962,17 @@ BOOL LLNetMap::handleToolTip(S32 x, S32 y, MASK mask) tool_tip_hint_msg = mToolTipHintMsg; } - // LLStringUtil::format_map_t args; + LLStringUtil::format_map_t args; args["[PARCEL_NAME_MSG]"] = parcel_name_msg.empty() ? "" : parcel_name_msg + '\n'; args["[PARCEL_SALE_PRICE_MSG]"] = parcel_sale_price_msg.empty() ? "" : parcel_sale_price_msg + '\n'; args["[PARCEL_SALE_AREA_MSG]"] = parcel_sale_area_msg.empty() ? "" : parcel_sale_area_msg + '\n'; args["[PARCEL_OWNER_MSG]"] = parcel_owner_msg.empty() ? "" : parcel_owner_msg + '\n'; args["[REGION_NAME_MSG]"] = region_name_msg.empty() ? "" : region_name_msg + '\n'; args["[TOOL_TIP_HINT_MSG]"] = tool_tip_hint_msg.empty() ? "" : tool_tip_hint_msg + '\n'; +// [RLVa:KB] - Checked: RLVa-1.2.2 + LLAvatarName avName; + args["[AGENT]"] = ( (!fRlvCanShowName) && (mClosestAgentToCursor.notNull()) && (LLAvatarNameCache::get(mClosestAgentToCursor, &avName)) ) ? RlvStrings::getAnonym(avName) + "\n" : ""; +// [/RLVa:KB] std::string msg = mToolTipMsg; LLStringUtil::format(msg, args); diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index ae89a8dbffae263e407e6434509da66355559bf6..764cd51eb4b4aa680152d2654cede788694ab58b 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -104,6 +104,19 @@ void LLParticipantList::setValidateSpeakerCallback(validate_speaker_callback_t c mValidateSpeakerCallback = cb; } +// [RLVa:KB] - @shownames +void LLParticipantList::refreshNames() +{ + for (LLFolderViewModelItem* pChildItem : mChildren) + { + if (LLConversationItemParticipant* pConversationItem = dynamic_cast<LLConversationItemParticipant*>(pChildItem)) + { + pConversationItem->updateName(); + } + } +} +// [/RLVa:KB] + void LLParticipantList::update() { mSpeakerMgr->update(true); @@ -215,6 +228,9 @@ void LLParticipantList::addAvatarIDExceptAgent(const LLUUID& avatar_id) // Create a participant view model instance participant = new LLConversationItemParticipant(display_name.empty() ? LLTrans::getString("AvatarNameWaiting") : display_name, avatar_id, mRootViewModel); } +// [RLVa:KB] - @shownames + participant->setRlvCheckShowNames(mSpeakerMgr->getSessionID().isNull()); +// [/RLVa:KB] // *TODO : Need to update the online/offline status of the participant // Hack for this: LLAvatarTracker::instance().isBuddyOnline(avatar_id)) diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h index f58a593d4f5824a5583559002db426abda63bf35..df3c1e8d28722421de485704e04a6d20e9319c60 100644 --- a/indra/newview/llparticipantlist.h +++ b/indra/newview/llparticipantlist.h @@ -50,6 +50,13 @@ class LLParticipantList : public LLConversationItemSession */ void addAvatarIDExceptAgent(const LLUUID& avatar_id); +// [RLVa:KB] - @shownames + /** + * Refreshes the name of each (avatar) participant + */ + void refreshNames(); +// [/RLVa:KB] + /** * Refreshes the participant list. */ diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index b3db10764b61ec68f0431591a23f5d396de48686..323aa3e1614da01e5fdc9d49f600614dbc927cb5 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -771,9 +771,6 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderDeferredNoise", handleReleaseGLBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderDebugPipeline", handleRenderDebugPipelineChanged); setting_setup_signal_listener(gSavedSettings, "RenderResolutionDivisor", handleRenderResolutionDivisorChanged); -// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4 - setting_setup_signal_listener(gSavedSettings, "RenderResolutionMultiplier", handleRenderResolutionDivisorChanged); -// [/SL:KB] setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeLevel", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeDetail", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderReflectionsEnabled", handleReflectionProbeDetailChanged); @@ -781,6 +778,9 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderShaderCacheEnabled", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderShadowDetail", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderDeferredSSAO", handleSetShaderChanged); +// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4 + setting_setup_signal_listener(gSavedSettings, "RenderResolutionMultiplier", handleRenderResolutionDivisorChanged); +// [/SL:KB] setting_setup_signal_listener(gSavedSettings, "RenderPerformanceTest", handleRenderPerfTestChanged); setting_setup_signal_listener(gSavedSettings, "ChatFontName", handleChatFontSizeChanged); setting_setup_signal_listener(gSavedSettings, "ChatFontSize", handleChatFontSizeChanged); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 6f9e07c3ff228602e08253fbb450c184e55ad3b0..3dc1c3b4986f3d8a6641f94ffaafa0ad7a84435f 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -3015,7 +3015,7 @@ LLViewerMediaTexture* LLViewerMediaImpl::updateMediaImage() llassert(!gCubeSnapshot); // if (!mMediaSource) // [SL:KB] - Patch: Render-TextureToggle (Catznip-4.0) - if ( (!mMediaSource) || ((LLViewerFetchedTexture::sDefaultDiffuseImagep.notNull()) && (LLViewerFetchedTexture::sDefaultDiffuseImagep->getID() == mTextureId))) + if ( (!mMediaSource) || ((LLViewerFetchedTexture::sDefaultDiffuseImagep.notNull()) && (LLViewerFetchedTexture::sDefaultDiffuseImagep->getID() == mTextureId)) ) // [/SL:KB] { return nullptr; // not ready for updating diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index f588320d359ed3b5549c458665c91351794cbf20..7c1ad3e0c499e6245b30a5ad6f99e22446b17114 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -4479,10 +4479,12 @@ class LLLandSit : public view_listener_t if ( (rlv_handler_t::isEnabled()) && ((!RlvActions::canStand()) || (gRlvHandler.hasBehaviour(RLV_BHVR_SIT))) ) return true; // [/RLVa:KB] + if (gAgent.isSitting()) { gAgent.standUp(); } + LLVector3d posGlobal = LLToolPie::getInstance()->getPick().mPosGlobal; LLQuaternion target_rot; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 126ffa0b45a10b2bdeec9ca480f0c245a93e3857..bdf2bd39246ecf0235dfa59c4514642146086dd8 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -3258,6 +3258,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) const F32 time_visible = mTimeVisible.getElapsedTimeF32(); static const LLCachedControl<F32> NAME_SHOW_TIME(gSavedSettings, "RenderNameShowTime"); // seconds static const LLCachedControl<F32> FADE_DURATION(gSavedSettings, "RenderNameFadeDuration"); // seconds + static LLCachedControl<bool> use_chat_bubbles(gSavedSettings, "UseChatBubbles"); // [RLVa:KB] - Checked: RLVa-2.0.1 bool fRlvShowAvTag = true, fRlvShowAvName = true; if (RlvActions::isRlvEnabled()) @@ -3266,14 +3267,15 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) fRlvShowAvName = (fRlvShowAvTag) && (RlvActions::canShowName(RlvActions::SNC_DEFAULT, getID())); } // [/RLVa:KB] - static const LLCachedControl<bool> use_chat_bubble(gSavedSettings, "UseChatBubbles"); - bool visible_chat = use_chat_bubble && (mChats.size() || mTyping); + bool visible_chat = use_chat_bubbles && (mChats.size() || mTyping); bool render_name = visible_chat || // [RLVa:KB] - Checked: RLVa-2.0.1 - ((fRlvShowAvTag) && + ((fRlvShowAvTag) && + ((sRenderName == RENDER_NAME_ALWAYS) || + (sRenderName == RENDER_NAME_FADE && time_visible < NAME_SHOW_TIME))); // [/RLVa:KB] - ((sRenderName == RENDER_NAME_ALWAYS) || - (sRenderName == RENDER_NAME_FADE && time_visible < NAME_SHOW_TIME))); +// (((sRenderName == RENDER_NAME_ALWAYS) || +// (sRenderName == RENDER_NAME_FADE && time_visible < NAME_SHOW_TIME))); // If it's your own avatar, don't draw in mouselook, and don't // draw if we're specifically hiding our own name. if (isSelf()) diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 6b1e5cdd3c8528fa05e7e95e84308169c3005bea..b7f698d1281c9ef4191ce411210f9b47b864c0de 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -1552,35 +1552,6 @@ void LLWorld::getAvatars(region_gpos_map_t* umap, const LLVector3d& relative_to, } } -// [RLVa:KB] - Checked: RLVa-2.0.1 -bool LLWorld::getAvatar(const LLUUID& idAvatar, LLVector3d& posAvatar) const -{ - for (const LLCharacter* pCharacter : LLCharacter::sInstances) - { - const LLVOAvatar* pAvatar = static_cast<const LLVOAvatar*>(pCharacter); - if ( (!pAvatar->isDead()) && (!pAvatar->mIsDummy) && (!pAvatar->isOrphaned()) && (idAvatar == pAvatar->getID()) ) - { - posAvatar = pAvatar->getPositionGlobal(); - return true; - } - } - - for (const LLViewerRegion* pRegion : getRegionList()) - { - for (S32 idxAgent = 0, cntAgent = pRegion->mMapAvatarIDs.size(); idxAgent < cntAgent; ++idxAgent) - { - if (idAvatar == pRegion->mMapAvatarIDs[idxAgent]) - { - posAvatar = unpackLocalToGlobalPosition(pRegion->mMapAvatars[idxAgent], pRegion->getOriginGlobal(), pRegion->getWidthScaleFactor()); - return true; - } - } - } - - return false; -} -// [/RLVa:KB] - F32 LLWorld::getNearbyAvatarsAndMaxGPUTime(std::vector<LLCharacter*> &valid_nearby_avs) { static LLCachedControl<F32> render_far_clip(gSavedSettings, "RenderFarClip", 64); @@ -1611,6 +1582,35 @@ F32 LLWorld::getNearbyAvatarsAndMaxGPUTime(std::vector<LLCharacter*> &valid_near return nearby_max_complexity; } +// [RLVa:KB] - Checked: RLVa-2.0.1 +bool LLWorld::getAvatar(const LLUUID& idAvatar, LLVector3d& posAvatar) const +{ + for (const LLCharacter* pCharacter : LLCharacter::sInstances) + { + const LLVOAvatar* pAvatar = static_cast<const LLVOAvatar*>(pCharacter); + if ( (!pAvatar->isDead()) && (!pAvatar->mIsDummy) && (!pAvatar->isOrphaned()) && (idAvatar == pAvatar->getID()) ) + { + posAvatar = pAvatar->getPositionGlobal(); + return true; + } + } + + for (const LLViewerRegion* pRegion : LLWorld::getInstance()->getRegionList()) + { + for (S32 idxAgent = 0, cntAgent = pRegion->mMapAvatarIDs.size(); idxAgent < cntAgent; ++idxAgent) + { + if (idAvatar == pRegion->mMapAvatarIDs[idxAgent]) + { + posAvatar = unpackLocalToGlobalPosition(pRegion->mMapAvatars[idxAgent], pRegion->getOriginGlobal()); + return true; + } + } + } + + return false; +} +// [/RLVa:KB] + bool LLWorld::isRegionListed(const LLViewerRegion* region) const { region_list_t::const_iterator it = find(mRegionList.begin(), mRegionList.end(), region); diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp index a7ba58f900aebda10851e2ce99d097b20ebd57fc..70b30b744fd546074cbb8ec267db77ca6f21b32f 100644 --- a/indra/newview/rlvcommon.cpp +++ b/indra/newview/rlvcommon.cpp @@ -283,6 +283,23 @@ void RlvStrings::initClass() } } +// Used to provide fallback behaviour whenever we rename/split/join customizable string values +LLSD& RlvStrings::cleanStringValues(LLSD& sdStringValues) +{ + LLSD sdValues(sdStringValues); + for (LLSD::map_const_iterator itString = sdValues.beginMap(); itString != sdValues.endMap(); ++itString) + { + if (itString->first == "blocked_tplurerequest_remote") + { + sdStringValues.erase("blocked_tplurerequest_remote"); + sdStringValues[RlvStringKeys::Blocked::TpLureRemote] = itString->second; + sdStringValues[RlvStringKeys::Blocked::TpRequestRemote] = itString->second; + } + } + + return sdStringValues; +} + // Checked: 2011-11-08 (RLVa-1.5.0) void RlvStrings::loadFromFile(const std::string& strFilePath, bool fUserOverride) { @@ -293,7 +310,7 @@ void RlvStrings::loadFromFile(const std::string& strFilePath, bool fUserOverride if (sdFileData.has("strings")) { - const LLSD& sdStrings = sdFileData["strings"]; + const LLSD sdStrings = (!fUserOverride) ? sdFileData["strings"] : cleanStringValues(sdFileData["strings"]); for (LLSD::map_const_iterator itString = sdStrings.beginMap(); itString != sdStrings.endMap(); ++itString) { if ( (!itString->second.has("value")) || ((fUserOverride) && (!hasString(itString->first))) ) diff --git a/indra/newview/rlvcommon.h b/indra/newview/rlvcommon.h index 0d0313548a0a992879e4257d9ab6f8fc289098e9..97ec4a41489dc5efa9ebc82246ea39f6f8b51c56 100644 --- a/indra/newview/rlvcommon.h +++ b/indra/newview/rlvcommon.h @@ -133,6 +133,7 @@ class RlvStrings { public: static void initClass(); + static LLSD& cleanStringValues(LLSD& sdValues); static void loadFromFile(const std::string& strFilePath, bool fDefault); static void saveToFile(const std::string& strFilePath); diff --git a/indra/newview/rlvdefines.h b/indra/newview/rlvdefines.h index 2a6285fc66d6fccecb11c388463a2d58b02da8fb..98c2a8eefe77bfcba75fba1aa869523a701348ce 100644 --- a/indra/newview/rlvdefines.h +++ b/indra/newview/rlvdefines.h @@ -34,8 +34,8 @@ const S32 RLV_VERSION_BUILD_COMPAT = 0; // Implementation version const S32 RLVa_VERSION_MAJOR = 2; -const S32 RLVa_VERSION_MINOR = 4; -const S32 RLVa_VERSION_PATCH = 2; +const S32 RLVa_VERSION_MINOR = 5; +const S32 RLVa_VERSION_PATCH = 0; const S32 RLVa_IMPL_ID = 13; // Uncomment before a final release @@ -441,7 +441,8 @@ namespace RlvStringKeys inline constexpr std::string_view StartIm = "blocked_startim"sv; inline constexpr std::string_view Teleport = "blocked_teleport"sv; inline constexpr std::string_view TeleportOffer = "blocked_teleport_offer"sv; - inline constexpr std::string_view TpLureRequestRemote = "blocked_tplurerequest_remote"sv; + inline constexpr std::string_view TpLureRemote = "blocked_tplure_remote"sv; + inline constexpr std::string_view TpRequestRemote = "blocked_tprequest_remote"sv; inline constexpr std::string_view ViewXxx = "blocked_viewxxx"sv; inline constexpr std::string_view Wireframe = "blocked_wireframe"sv; } diff --git a/indra/newview/rlvfloaters.cpp b/indra/newview/rlvfloaters.cpp index d9733274f1420e63a2534d121355281b23e55698..af6a3bd5799ca76c7a031f34555f1841a58dc5e3 100644 --- a/indra/newview/rlvfloaters.cpp +++ b/indra/newview/rlvfloaters.cpp @@ -45,7 +45,7 @@ std::string rlvGetItemName(const LLViewerInventoryItem* pItem) { if ( (pItem) && ((LLAssetType::AT_BODYPART == pItem->getType()) || (LLAssetType::AT_CLOTHING == pItem->getType())) ) { - return llformat("%s (%s)", pItem->getName().c_str(), LLWearableType::getInstance()->getTypeName(pItem->getWearableType()).c_str()); + return llformat("%s (%s)", pItem->getName().c_str(), LLWearableType::instance().getTypeName(pItem->getWearableType()).c_str()); } else if ( (pItem) && (LLAssetType::AT_OBJECT == pItem->getType()) && (isAgentAvatarValid()) ) { @@ -192,7 +192,7 @@ std::string rlvFolderLockSourceToTarget(RlvFolderLocks::folderlock_source_t lock } case RlvFolderLocks::ST_WEARABLETYPE: { - const std::string& strTypeName = LLWearableType::getInstance()->getTypeName(boost::get<LLWearableType::EType>(lockSource.second)); + const std::string& strTypeName = LLWearableType::instance().getTypeName(boost::get<LLWearableType::EType>(lockSource.second)); return llformat("Wearable type (%s)", strTypeName.c_str()); } default: @@ -531,7 +531,7 @@ void RlvFloaterLocks::refreshAll() for (RlvWearableLocks::rlv_wearabletypelock_map_t::const_iterator itWearableType = wearableTypeAdd.begin(); itWearableType != wearableTypeAdd.end(); ++itWearableType) { - sdColumns[2]["value"] = LLWearableType::getInstance()->getTypeLabel(itWearableType->first); + sdColumns[2]["value"] = LLWearableType::instance().getTypeLabel(itWearableType->first); sdColumns[3]["value"] = rlvGetItemNameFromObjID(itWearableType->second); pLockList->addElement(sdRow, ADD_BOTTOM); @@ -542,7 +542,7 @@ void RlvFloaterLocks::refreshAll() for (RlvWearableLocks::rlv_wearabletypelock_map_t::const_iterator itWearableType = wearableTypeRem.begin(); itWearableType != wearableTypeRem.end(); ++itWearableType) { - sdColumns[2]["value"] = LLWearableType::getInstance()->getTypeName(itWearableType->first); + sdColumns[2]["value"] = LLWearableType::instance().getTypeName(itWearableType->first); sdColumns[3]["value"] = rlvGetItemNameFromObjID(itWearableType->second); pLockList->addElement(sdRow, ADD_BOTTOM); diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index df3518f67aa45085b5aac2d88f3534bb4f6c2b78..f147230af3049fe814034298e682773f97a55da7 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -38,6 +38,7 @@ #include "llavatarnamecache.h" // @shownames #include "llavatarlist.h" // @shownames #include "llfloatercamera.h" // @setcam family +#include "llfloaterimnearbychat.h" // @shownames #include "llfloatersidepanelcontainer.h"// @shownames #include "llnotifications.h" // @list IM query #include "llnotificationsutil.h" @@ -45,6 +46,7 @@ #include "llpaneloutfitsinventory.h" // @showinv - "Appearance" floater #include "llpanelpeople.h" // @shownames #include "llpanelwearing.h" // @showinv - "Appearance / Current Outfit" panel +#include "llparticipantlist.h" // @shownames #include "llregionhandle.h" // @tpto #include "llsidepanelappearance.h" // @showinv - "Appearance / Edit appearance" panel #include "lltabcontainer.h" // @showinv - Tab container control for inventory tabs @@ -1555,6 +1557,16 @@ bool RlvHandler::setEnabled(bool fEnable) // Reset to show assertions if the viewer version changed if (gSavedSettings.getString("LastRunVersion") != gLastRunVersion) gSavedSettings.set<bool>(RlvSettingNames::ShowAssertionFail, TRUE); + + // Set up camera debug controls + { + LLControlVariable* pCameraOffsetRLVaView = gSavedSettings.declareVec3("CameraOffsetRLVaView", LLVector3::zero, "Declared in code", LLControlVariable::PERSIST_NO); + pCameraOffsetRLVaView->setHiddenFromSettingsEditor(true); + LLControlVariable* pCameraOffsetScaleRLVa = gSavedSettings.declareF32("CameraOffsetScaleRLVa", 0.0f, "Declared in code", LLControlVariable::PERSIST_NO); + pCameraOffsetScaleRLVa->setHiddenFromSettingsEditor(true); + LLControlVariable* pFocusOffsetRLVaView = gSavedSettings.declareVec3d("FocusOffsetRLVaView", LLVector3d::zero, "Declared in code", LLControlVariable::PERSIST_NO); + pFocusOffsetRLVaView->setHiddenFromSettingsEditor(true); + } } return m_fEnabled; @@ -2597,6 +2609,15 @@ void RlvBehaviourToggleHandler<RLV_BHVR_SHOWNAMES>::onCommandToggle(ERlvBehaviou pPeoplePanel->getNearbyList()->updateAvatarNames(); } + // Refresh the nearby participant list + if (LLFloaterIMNearbyChat* pNearbyChatFloater = LLFloaterReg::findTypedInstance<LLFloaterIMNearbyChat>("nearby_chat")) + { + if (LLParticipantList* pParticipantList = pNearbyChatFloater->getParticipantList()) + { + pParticipantList->refreshNames(); + } + } + // 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 (fHasBhvr) { @@ -2689,6 +2710,17 @@ void RlvBehaviourToggleHandler<RLV_BHVR_SHOWNEARBY>::onCommandToggle(ERlvBehavio pPeoplePanel->updateNearbyList(); } + // Refresh the nearby participant list + if (LLFloaterIMNearbyChat* pNearbyChatFloater = LLFloaterReg::findTypedInstance<LLFloaterIMNearbyChat>("nearby_chat")) + { +#ifdef CATZNIP + pNearbyChatFloater->updateShowParticipantList(); + pNearbyChatFloater->updateExpandCollapseBtn(); +#else + // *TODO - Solution for CHUI +#endif // CATZNIP + } + // Refresh that avatar's name tag and all HUD text LLHUDText::refreshAllObjectText(); } @@ -3839,7 +3871,7 @@ ERlvCmdRet RlvHandler::onGetOutfit(const RlvCommand& rlvCmd, std::string& strRep // (Compatibility: RLV-1.16.1 will execute @getoutfit=<channel> if <layer> is invalid while we just return failure) LLWearableType::EType wtType = LLWearableType::WT_INVALID; - if ( (rlvCmd.hasOption()) && ((wtType = LLWearableType::getInstance()->typeNameToType(rlvCmd.getOption())) == LLWearableType::WT_INVALID) ) + if ( (rlvCmd.hasOption()) && ((wtType = LLWearableType::instance().typeNameToType(rlvCmd.getOption())) == LLWearableType::WT_INVALID) ) return RLV_RET_FAILED_OPTION; const LLWearableType::EType wtRlvTypes[] = @@ -3859,7 +3891,7 @@ ERlvCmdRet RlvHandler::onGetOutfit(const RlvCommand& rlvCmd, std::string& strRep // (nor do we hide a layer if the issuing object is the only one that has this layer locked) bool fWorn = (gAgentWearables.getWearableCount(wtRlvTypes[idxType]) > 0) && ( (!RlvSettings::getHideLockedLayers()) || - (LLAssetType::AT_BODYPART == LLWearableType::getInstance()->getAssetType(wtRlvTypes[idxType])) || + (LLAssetType::AT_BODYPART == LLWearableType::instance().getAssetType(wtRlvTypes[idxType])) || (RlvForceWear::isForceRemovable(wtRlvTypes[idxType], true, rlvCmd.getObjectID())) ); strReply.push_back( (fWorn) ? '1' : '0' ); } @@ -3900,7 +3932,7 @@ ERlvCmdRet RlvHandler::onGetOutfitNames(const RlvCommand& rlvCmd, std::string& s { if (!strReply.empty()) strReply.push_back(','); - strReply.append(LLWearableType::getInstance()->getTypeName(wtType)); + strReply.append(LLWearableType::instance().getTypeName(wtType)); } } return RLV_RET_SUCCESS; diff --git a/indra/newview/rlvhelper.cpp b/indra/newview/rlvhelper.cpp index 55064629b62c22c6ff4786ec1354476fc4ffd9ca..19181b659b982c4c29c2443980435b24d6810c85 100644 --- a/indra/newview/rlvhelper.cpp +++ b/indra/newview/rlvhelper.cpp @@ -866,7 +866,7 @@ bool RlvCommandOptionHelper::parseOption<float>(const std::string& strOption, fl template<> bool RlvCommandOptionHelper::parseOption<LLWearableType::EType>(const std::string& strOption, LLWearableType::EType& wtOption) { - wtOption = LLWearableType::getInstance()->typeNameToType(strOption); + wtOption = LLWearableType::instance().typeNameToType(strOption); return (LLWearableType::WT_INVALID != wtOption) && (LLWearableType::WT_NONE != wtOption); } @@ -1909,13 +1909,13 @@ void RlvBehaviourNotifyHandler::sendNotification(const std::string& strText, con // Checked: 2011-03-31 (RLVa-1.3.0f) | Added: RLVa-1.3.0f void RlvBehaviourNotifyHandler::onWear(LLWearableType::EType eType, bool fAllowed) { - sendNotification(llformat("worn %s %s", (fAllowed) ? "legally" : "illegally", LLWearableType::getInstance()->getTypeName(eType).c_str())); + sendNotification(llformat("worn %s %s", (fAllowed) ? "legally" : "illegally", LLWearableType::instance().getTypeName(eType).c_str())); } // Checked: 2011-03-31 (RLVa-1.3.0f) | Added: RLVa-1.3.0f void RlvBehaviourNotifyHandler::onTakeOff(LLWearableType::EType eType, bool fAllowed) { - sendNotification(llformat("unworn %s %s", (fAllowed) ? "legally" : "illegally", LLWearableType::getInstance()->getTypeName(eType).c_str())); + sendNotification(llformat("unworn %s %s", (fAllowed) ? "legally" : "illegally", LLWearableType::instance().getTypeName(eType).c_str())); } // Checked: 2011-03-31 (RLVa-1.3.0f) | Added: RLVa-1.3.0f diff --git a/indra/newview/skins/default/xui/en/rlva_strings.xml b/indra/newview/skins/default/xui/en/rlva_strings.xml index 654cf2b96b2944cdaace9a579e8a46e18476d494..f97767ba66880edfdf7aef6205476cff784c208e 100644 --- a/indra/newview/skins/default/xui/en/rlva_strings.xml +++ b/indra/newview/skins/default/xui/en/rlva_strings.xml @@ -199,14 +199,25 @@ <key>customizable</key> <boolean>1</boolean> </map> - <key>blocked_tplurerequest_remote</key> + <key>blocked_tplure_remote</key> <map> <key>value</key> <string>The Resident is currently prevented from accepting. Please try again later.</string> <key>description</key> - <string>Sent to the remote party when their teleport offer or request was blocked</string> + <string>Sent to the remote party when their teleport offer was blocked</string> <key>label</key> - <string>Blocked teleport offer/request (remote)</string> + <string>Blocked teleport offer (remote)</string> + <key>customizable</key> + <boolean>1</boolean> + </map> + <key>blocked_tprequest_remote</key> + <map> + <key>value</key> + <string>The Resident is currently prevented from accepting. Please try again later.</string> + <key>description</key> + <string>Sent to the remote party when their teleport request was blocked</string> + <key>label</key> + <string>Blocked teleport request (remote)</string> <key>customizable</key> <boolean>1</boolean> </map> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 94448b98bdb3290f18c8f8baf8128dc26f172ca6..e4ff0fb5fa3e78f4e512de38fbb407f69ebf2f12 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -4488,7 +4488,7 @@ and report the problem. <string name="MinimapToolTipMsg"> - [PARCEL_NAME_MSG][PARCEL_SALE_PRICE_MSG][PARCEL_SALE_AREA_MSG][PARCEL_OWNER_MSG][REGION_NAME_MSG][TOOL_TIP_HINT_MSG] + [AGENT][PARCEL_NAME_MSG][PARCEL_SALE_PRICE_MSG][PARCEL_SALE_AREA_MSG][PARCEL_OWNER_MSG][REGION_NAME_MSG][TOOL_TIP_HINT_MSG] </string> <string name="MinimapParcelNameMsg">