From 6ad8674a8c5a87f438aa5ad6230396a859ba268e Mon Sep 17 00:00:00 2001
From: Vadim Savchuk <vsavchuk@productengine.com>
Date: Wed, 13 Jan 2010 19:49:51 +0200
Subject: [PATCH] Fixed bug EXT-4210 (Partner in Profile not a Link). Added an
 optional "link" parameter to LLNameBox to display the name as a link.

--HG--
branch : product-engine
---
 indra/newview/llnamebox.cpp                   | 24 +++++++++++++++++--
 indra/newview/llnamebox.h                     |  5 ++++
 .../skins/default/xui/en/panel_my_profile.xml |  1 +
 .../skins/default/xui/en/panel_profile.xml    |  1 +
 4 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp
index 2f4a2661985..d4340178049 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 3edb36883f9..0109525e856 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 038d48cdd60..a9ff9362a07 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 ec697838f68..2cd89400145 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"
-- 
GitLab