diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp index 2f4a266198589eee65b46582dfced718ca421cb2..d4340178049d67fa7b2b63a75d65f8a222160d12 100644 --- a/indra/newview/llnamebox.cpp +++ b/indra/newview/llnamebox.cpp @@ -52,6 +52,7 @@ LLNameBox::LLNameBox(const Params& p) : LLTextBox(p) { mNameID = LLUUID::null; + mLink = p.link; LLNameBox::sInstances.insert(this); setText(LLStringUtil::null); } @@ -76,7 +77,7 @@ void LLNameBox::setNameID(const LLUUID& name_id, BOOL is_group) gCacheName->getGroupName(name_id, name); } - setText(name); + setName(name, is_group); } void LLNameBox::refresh(const LLUUID& id, const std::string& firstname, @@ -93,7 +94,7 @@ void LLNameBox::refresh(const LLUUID& id, const std::string& firstname, { name = firstname; } - setText(name); + setName(name, is_group); } } @@ -109,3 +110,22 @@ void LLNameBox::refreshAll(const LLUUID& id, const std::string& firstname, box->refresh(id, firstname, lastname, is_group); } } + +void LLNameBox::setName(const std::string& name, BOOL is_group) +{ + if (mLink) + { + std::string url; + + if (is_group) + url = "[secondlife:///app/group/" + LLURI::escape(name) + "/about " + name + "]"; + else + url = "[secondlife:///app/agent/" + mNameID.asString() + "/about " + name + "]"; + + setText(url); + } + else + { + setText(name); + } +} diff --git a/indra/newview/llnamebox.h b/indra/newview/llnamebox.h index 3edb36883f9fec4a403b65e50509a16a189f99a7..0109525e85628101f515a1c3678de6973d86fa61 100644 --- a/indra/newview/llnamebox.h +++ b/indra/newview/llnamebox.h @@ -47,9 +47,11 @@ class LLNameBox struct Params : public LLInitParam::Block<Params, LLTextBox::Params> { Optional<bool> is_group; + Optional<bool> link; Params() : is_group("is_group", false) + , link("link", false) {} }; @@ -67,10 +69,13 @@ class LLNameBox friend class LLUICtrlFactory; private: + void setName(const std::string& name, BOOL is_group); + static std::set<LLNameBox*> sInstances; private: LLUUID mNameID; + BOOL mLink; }; diff --git a/indra/newview/skins/default/xui/en/panel_my_profile.xml b/indra/newview/skins/default/xui/en/panel_my_profile.xml index 038d48cdd609b98b141f6e510641724ff70f4d82..a9ff9362a073381bb57ad9aa1d2e53fa8f7fda68 100644 --- a/indra/newview/skins/default/xui/en/panel_my_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_my_profile.xml @@ -269,6 +269,7 @@ height="10" layout="topleft" left="0" + link="true" name="partner_text" top="0" width="300" diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index ec697838f68ac4889941e08b66c1ae0a1a5948c9..2cd8940014580b094cb802f905e1f64d6e33a15d 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -249,6 +249,7 @@ height="10" layout="topleft" left="0" + link="true" name="partner_text" top="0" width="300"