Allow Name UI to be marked rlv_sensitive (via xui)
This allows these parts of UI to be hidden when they need to be
This commit is contained in:
@@ -79,6 +79,7 @@ void LLNameBox::initFromXML(LLXMLNodePtr node, LLView* parent)
|
|||||||
LLTextBox::initFromXML(node, parent);
|
LLTextBox::initFromXML(node, parent);
|
||||||
node->getAttributeString("initial_value", mInitialValue);
|
node->getAttributeString("initial_value", mInitialValue);
|
||||||
setText(mInitialValue);
|
setText(mInitialValue);
|
||||||
|
node->getAttribute_bool("rlv_sensitive", mRLVSensitive);
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
|||||||
@@ -43,9 +43,10 @@ LLNameEditor::LLNameEditor(const std::string& name, const LLRect& rect,
|
|||||||
const LLUUID& name_id,
|
const LLUUID& name_id,
|
||||||
bool is_group,
|
bool is_group,
|
||||||
const std::string& loading,
|
const std::string& loading,
|
||||||
|
bool rlv_sensitive,
|
||||||
const LLFontGL* glfont,
|
const LLFontGL* glfont,
|
||||||
S32 max_text_length)
|
S32 max_text_length)
|
||||||
: LLNameUI(loading, name_id, is_group)
|
: LLNameUI(loading, rlv_sensitive, name_id, is_group)
|
||||||
, LLLineEditor(name, rect, LLStringUtil::null, glfont, max_text_length)
|
, LLLineEditor(name, rect, LLStringUtil::null, glfont, max_text_length)
|
||||||
{
|
{
|
||||||
if (!name_id.isNull())
|
if (!name_id.isNull())
|
||||||
@@ -115,10 +116,12 @@ LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
|
|||||||
node->getAttributeUUID("id", id);
|
node->getAttributeUUID("id", id);
|
||||||
std::string loading;
|
std::string loading;
|
||||||
node->getAttributeString("label", loading);
|
node->getAttributeString("label", loading);
|
||||||
|
bool rlv_sensitive = false;
|
||||||
|
node->getAttribute_bool("rlv_sensitive", rlv_sensitive);
|
||||||
|
|
||||||
LLNameEditor* line_editor = new LLNameEditor("name_editor",
|
LLNameEditor* line_editor = new LLNameEditor("name_editor",
|
||||||
rect,
|
rect,
|
||||||
id, is_group, loading,
|
id, is_group, loading, rlv_sensitive,
|
||||||
LLView::selectFont(node),
|
LLView::selectFont(node),
|
||||||
max_text_length);
|
max_text_length);
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ public:
|
|||||||
const LLUUID& name_id = LLUUID::null,
|
const LLUUID& name_id = LLUUID::null,
|
||||||
bool is_group = false,
|
bool is_group = false,
|
||||||
const std::string& loading = LLStringUtil::null,
|
const std::string& loading = LLStringUtil::null,
|
||||||
|
bool rlv_sensitive = false,
|
||||||
const LLFontGL* glfont = nullptr,
|
const LLFontGL* glfont = nullptr,
|
||||||
S32 max_text_length = 254);
|
S32 max_text_length = 254);
|
||||||
|
|
||||||
|
|||||||
@@ -33,13 +33,16 @@
|
|||||||
#include "llviewerprecompiledheaders.h"
|
#include "llviewerprecompiledheaders.h"
|
||||||
|
|
||||||
#include "llnameui.h"
|
#include "llnameui.h"
|
||||||
|
#include "llagentdata.h"
|
||||||
#include "lltrans.h"
|
#include "lltrans.h"
|
||||||
|
|
||||||
|
#include "rlvhandler.h"
|
||||||
|
|
||||||
// statics
|
// statics
|
||||||
std::set<LLNameUI*> LLNameUI::sInstances;
|
std::set<LLNameUI*> LLNameUI::sInstances;
|
||||||
|
|
||||||
LLNameUI::LLNameUI(const std::string& loading, const LLUUID& id, bool is_group)
|
LLNameUI::LLNameUI(const std::string& loading, bool rlv_sensitive, const LLUUID& id, bool is_group)
|
||||||
: mNameID(id), mIsGroup(is_group), mAllowInteract(false)
|
: mNameID(id), mRLVSensitive(rlv_sensitive), mIsGroup(is_group), mAllowInteract(false)
|
||||||
, mInitialValue(!loading.empty() ? loading : LLTrans::getString("LoadingData"))
|
, mInitialValue(!loading.empty() ? loading : LLTrans::getString("LoadingData"))
|
||||||
{
|
{
|
||||||
sInstances.insert(this);
|
sInstances.insert(this);
|
||||||
@@ -69,6 +72,16 @@ void LLNameUI::setNameText()
|
|||||||
got_name = gCacheName->getFullName(mNameID, name);
|
got_name = gCacheName->getFullName(mNameID, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!mIsGroup && got_name && mRLVSensitive) // Filter if needed
|
||||||
|
{
|
||||||
|
if ((gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES) || gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS))
|
||||||
|
&& mNameID.notNull() && mNameID != gAgentID && RlvUtil::isNearbyAgent(mNameID))
|
||||||
|
{
|
||||||
|
mAllowInteract = false;
|
||||||
|
name = RlvStrings::getAnonym(name);
|
||||||
|
}
|
||||||
|
else mAllowInteract = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Got the name already? Set it.
|
// Got the name already? Set it.
|
||||||
// Otherwise it will be set later in refresh().
|
// Otherwise it will be set later in refresh().
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
struct LLNameUI : public LFIDBearer
|
struct LLNameUI : public LFIDBearer
|
||||||
{
|
{
|
||||||
LLNameUI(const std::string& loading = LLStringUtil::null, const LLUUID& id = LLUUID::null, bool is_group = false);
|
LLNameUI(const std::string& loading = LLStringUtil::null, bool rlv_sensitive = false, const LLUUID& id = LLUUID::null, bool is_group = false);
|
||||||
virtual ~LLNameUI() { sInstances.erase(this); }
|
virtual ~LLNameUI() { sInstances.erase(this); }
|
||||||
|
|
||||||
LLUUID getStringUUIDSelectedItem() const override final { return mNameID; }
|
LLUUID getStringUUIDSelectedItem() const override final { return mNameID; }
|
||||||
@@ -57,6 +57,7 @@ private:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
LLUUID mNameID;
|
LLUUID mNameID;
|
||||||
|
bool mRLVSensitive; // Whether or not we're doing RLV filtering
|
||||||
bool mIsGroup;
|
bool mIsGroup;
|
||||||
bool mAllowInteract;
|
bool mAllowInteract;
|
||||||
std::string mInitialValue;
|
std::string mInitialValue;
|
||||||
|
|||||||
Reference in New Issue
Block a user