diff options
| author | James Cook <james@lindenlab.com> | 2010-02-03 12:48:40 -0800 | 
|---|---|---|
| committer | James Cook <james@lindenlab.com> | 2010-02-03 12:48:40 -0800 | 
| commit | d489216b6ef41f0d22f3a9062ba6daacc67bc038 (patch) | |
| tree | 6888acece9d8cbdc358170a4ab69478e09c545d9 /indra | |
| parent | 146e9d5e4d9a9a4f33d9ccd47a901980972b7ab9 (diff) | |
Moved LLUrlEntryAgent back into llui library in prep for merge
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/llurlentry.cpp | 127 | ||||
| -rw-r--r-- | indra/llui/llurlentry.h | 12 | ||||
| -rw-r--r-- | indra/llui/llurlregistry.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/tests/llurlentry_test.cpp | 36 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llurlentryagent.cpp | 146 | ||||
| -rw-r--r-- | indra/newview/llurlentryagent.h | 52 | 
8 files changed, 155 insertions, 227 deletions
| diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 40f8c27431..7a62ca5098 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -297,7 +297,132 @@ std::string LLUrlEntrySLURL::getLocation(const std::string &url) const  	return url.substr(pos, url.size() - pos);  } -// LLUrlEntryAgent temporarily moved to newview IDEVO +// +// LLUrlEntryAgent Describes a Second Life agent Url, e.g., +// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about +// +LLUrlEntryAgent::LLUrlEntryAgent() +{ +	mPattern = boost::regex("secondlife:///app/agent/[\\da-f-]+/\\w+", +							boost::regex::perl|boost::regex::icase); +	mMenuName = "menu_url_agent.xml"; +	mIcon = "Generic_Person"; +	mColor = LLUIColorTable::instance().getColor("AgentLinkColor"); +} + +// IDEVO demo code +static std::string clean_name(const std::string& full_name) +{ +	std::string displayname; +	if (full_name == "miyazaki23") // IDEVO demo code +	{ +		// miyazaki +		displayname += (char)(0xE5); +		displayname += (char)(0xAE); +		displayname += (char)(0xAE); +		displayname += (char)(0xE5); +		displayname += (char)(0xB4); +		displayname += (char)(0x8E); +		// hayao +		displayname += (char)(0xE9); +		displayname += (char)(0xA7); +		displayname += (char)(0xBF); +		// san +		displayname += (char)(0xE3); +		displayname += (char)(0x81); +		displayname += (char)(0x95); +		displayname += (char)(0xE3); +		displayname += (char)(0x82); +		displayname += (char)(0x93); +	} +	else if (full_name == "Jim Linden") +	{ +		displayname = "Jos"; +		displayname += (char)(0xC3); +		displayname += (char)(0xA9); +		displayname += " Sanchez"; +	} +	else if (full_name == "James Linden") +	{ +		displayname = "James Cook"; +	} +	else if (full_name == "Hamilton Linden") +	{ +		displayname = "Hamilton Hitchings"; +	} +	else if (full_name == "Rome Linden") +	{ +		displayname = "Rome Portlock"; +	} +	else if (full_name == "M Linden") +	{ +		displayname = "Mark Kingdon"; +	} +	else if (full_name == "T Linden") +	{ +		displayname = "Tom Hale"; +	} +	else if (full_name == "Callen Linden") +	{ +		displayname = "Christina Allen"; +	} +	 +	std::string final; +	if (!displayname.empty()) +	{ +		final = displayname + " (" + full_name + ")"; +	} +	else +	{ +		final = full_name; +	} +	return final; +} + +void LLUrlEntryAgent::onNameCache(const LLUUID& id, +								  const std::string& full_name, +								  bool is_group) +{ +	std::string final = clean_name(full_name); +	// received the agent name from the server - tell our observers +	callObservers(id.asString(), final); +} + +std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCallback &cb) +{ +	if (!gCacheName) +	{ +		// probably at the login screen, use short string for layout +		return LLTrans::getString("LoadingData"); +	} +	 +	std::string agent_id_string = getIDStringFromUrl(url); +	if (agent_id_string.empty()) +	{ +		// something went wrong, just give raw url +		return unescapeUrl(url); +	} +	 +	LLUUID agent_id(agent_id_string); +	std::string full_name; +	if (agent_id.isNull()) +	{ +		return LLTrans::getString("AvatarNameNobody"); +	} +	else if (gCacheName->getFullName(agent_id, full_name)) +	{ +		return clean_name(full_name); +	} +	else +	{ +		gCacheName->get(agent_id, false, +						boost::bind(&LLUrlEntryAgent::onNameCache, +									this, _1, _2, _3)); +		addObserver(agent_id_string, url, cb); +		return LLTrans::getString("LoadingData"); +	} +} +  //  // LLUrlEntryGroup Describes a Second Life group Url, e.g., diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index 6d875a40c7..4fc2eb5e05 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -156,7 +156,17 @@ public:  	/*virtual*/ std::string getLocation(const std::string &url) const;  }; -/// IDEVO LLUrlEntryAgent temporarily moved to newview +/// +/// LLUrlEntryAgent Describes a Second Life agent Url, e.g., +/// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about +class LLUrlEntryAgent : public LLUrlEntryBase +{ +public: +	LLUrlEntryAgent(); +	/*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); +private: +	void onNameCache(const LLUUID& id, const std::string& full_name, bool is_group); +};  ///  /// LLUrlEntryGroup Describes a Second Life group Url, e.g., diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index 4fbdae9d38..419d2322f9 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -49,7 +49,7 @@ LLUrlRegistry::LLUrlRegistry()  	registerUrl(new LLUrlEntrySLURL());  	registerUrl(new LLUrlEntryHTTP());  	registerUrl(new LLUrlEntryHTTPLabel()); -	// IDEVO registerUrl(new LLUrlEntryAgent()); +	registerUrl(new LLUrlEntryAgent());  	registerUrl(new LLUrlEntryGroup());  	registerUrl(new LLUrlEntryParcel());  	registerUrl(new LLUrlEntryTeleport()); diff --git a/indra/llui/tests/llurlentry_test.cpp b/indra/llui/tests/llurlentry_test.cpp index 9200708784..30b59859d3 100644 --- a/indra/llui/tests/llurlentry_test.cpp +++ b/indra/llui/tests/llurlentry_test.cpp @@ -266,30 +266,28 @@ namespace tut  		//  		// test LLUrlEntryAgent - secondlife://app/agent Urls  		// -		// IDEVO - moved temporarily into newview, not available for test -		//LLUrlEntryAgent url; -		//boost::regex r = url.getPattern(); - -		//testRegex("Invalid Agent Url", r, -		//		  "secondlife:///app/agent/0e346d8b-4433-4d66-XXXX-fd37083abc4c/about", -		//		  ""); +		LLUrlEntryAgent url; +		boost::regex r = url.getPattern(); -		//testRegex("Agent Url ", r, -		//		  "secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about", -		//		  "secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about"); +		testRegex("Invalid Agent Url", r, +				  "secondlife:///app/agent/0e346d8b-4433-4d66-XXXX-fd37083abc4c/about", +				  ""); -		//testRegex("Agent Url in text", r, -		//		  "XXX secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about XXX", -		//		  "secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about"); +		testRegex("Agent Url ", r, +				  "secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about", +				  "secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about"); -		//testRegex("Agent Url multicase", r, -		//		  "XXX secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/About XXX", -		//		  "secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/About"); +		testRegex("Agent Url in text", r, +				  "XXX secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about XXX", +				  "secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about"); -		//testRegex("Agent Url alternate command", r, -		//		  "XXX secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/foobar", -		//		  "secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/foobar"); +		testRegex("Agent Url multicase", r, +				  "XXX secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/About XXX", +				  "secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/About"); +		testRegex("Agent Url alternate command", r, +				  "XXX secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/foobar", +				  "secondlife:///App/AGENT/0E346D8B-4433-4d66-a6b0-fd37083abc4c/foobar");  	}  	template<> template<> diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index f4bbe7133f..5373556c20 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -445,7 +445,6 @@ set(viewer_SOURCE_FILES      llurl.cpp      llurldispatcher.cpp      llurldispatcherlistener.cpp -    llurlentryagent.cpp      llurlhistory.cpp      llurllineeditorctrl.cpp      llurlsimstring.cpp @@ -953,7 +952,6 @@ set(viewer_HEADER_FILES      llurl.h      llurldispatcher.h      llurldispatcherlistener.h -    llurlentryagent.h      llurlhistory.h      llurllineeditorctrl.h      llurlsimstring.h diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 0ba5fa9866..0f509422ef 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -144,9 +144,7 @@  #include "llui.h"  #include "llurldispatcher.h"  #include "llurlsimstring.h" -#include "llurlentryagent.h"	// IDEVO  #include "llurlhistory.h" -#include "llurlregistry.h"		// IDEVO  #include "llurlwhitelist.h"  #include "llvieweraudio.h"  #include "llviewerassetstorage.h" @@ -1284,9 +1282,6 @@ bool idle_startup()  			gCacheName->LocalizeCacheName("none", LLTrans::getString("GroupNameNone"));  			// Load stored cache if possible              LLAppViewer::instance()->loadNameCache(); - -			// Handle secondlife:///app/agent name lookups IDEVO -			LLUrlRegistry::getInstance()->registerUrl(new LLUrlEntryAgent(), true);  		}  		// *Note: this is where gWorldMap used to be initialized. diff --git a/indra/newview/llurlentryagent.cpp b/indra/newview/llurlentryagent.cpp deleted file mode 100644 index bce64d7140..0000000000 --- a/indra/newview/llurlentryagent.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/**  - * @file llurlentry.cpp - * @author Martin Reddy - * @brief Describes the Url types that can be registered in LLUrlRegistry - * - * $LicenseInfo:firstyear=2009&license=viewergpl$ - *  - * Copyright (c) 2009, Linden Research, Inc. - *  - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab.  Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - *  - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - *  - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - *  - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llurlentryagent.h" - -#include "llcachename.h" -#include "lltrans.h" -#include "lluicolortable.h" - -// -// LLUrlEntryAgent Describes a Second Life agent Url, e.g., -// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about -// -LLUrlEntryAgent::LLUrlEntryAgent() -{ -	mPattern = boost::regex("secondlife:///app/agent/[\\da-f-]+/\\w+", -							boost::regex::perl|boost::regex::icase); -	mMenuName = "menu_url_agent.xml"; -	mIcon = "Generic_Person"; -	mColor = LLUIColorTable::instance().getColor("AgentLinkColor"); -} - -// IDEVO demo code -static std::string clean_name(const std::string& full_name) -{ -	std::string displayname; -	if (full_name == "miyazaki23") // IDEVO demo code -	{ -		// miyazaki -		displayname += (char)(0xE5); -		displayname += (char)(0xAE); -		displayname += (char)(0xAE); -		displayname += (char)(0xE5); -		displayname += (char)(0xB4); -		displayname += (char)(0x8E); -		// hayao -		displayname += (char)(0xE9); -		displayname += (char)(0xA7); -		displayname += (char)(0xBF); -		// san -		displayname += (char)(0xE3); -		displayname += (char)(0x81); -		displayname += (char)(0x95); -		displayname += (char)(0xE3); -		displayname += (char)(0x82); -		displayname += (char)(0x93); -	} -	else if (full_name == "Jim Linden") -	{ -		displayname = "Jos"; -		displayname += (char)(0xC3); -		displayname += (char)(0xA9); -		displayname += " Sanchez"; -	} -	else if (full_name == "James Linden") -	{ -		displayname = "James Cook"; -	} - -	std::string final; -	if (!displayname.empty()) -	{ -		final = displayname + " (" + full_name + ")"; -	} -	else -	{ -		final = full_name; -	} -	return final; -} - -void LLUrlEntryAgent::onNameCache(const LLUUID& id, -								  const std::string& full_name, -								  bool is_group) -{ -	std::string final = clean_name(full_name); -	// received the agent name from the server - tell our observers -	callObservers(id.asString(), final); -} - -std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCallback &cb) -{ -	if (!gCacheName) -	{ -		// probably at the login screen, use short string for layout -		return LLTrans::getString("LoadingData"); -	} - -	std::string agent_id_string = getIDStringFromUrl(url); -	if (agent_id_string.empty()) -	{ -		// something went wrong, just give raw url -		return unescapeUrl(url); -	} - -	LLUUID agent_id(agent_id_string); -	std::string full_name; -	if (agent_id.isNull()) -	{ -		return LLTrans::getString("AvatarNameNobody"); -	} -	else if (gCacheName->getFullName(agent_id, full_name)) -	{ -		return clean_name(full_name); -	} -	else -	{ -		gCacheName->get(agent_id, false, -			boost::bind(&LLUrlEntryAgent::onNameCache, -				this, _1, _2, _3)); -		addObserver(agent_id_string, url, cb); -		return LLTrans::getString("LoadingData"); -	} -} diff --git a/indra/newview/llurlentryagent.h b/indra/newview/llurlentryagent.h deleted file mode 100644 index 76a54dfeb1..0000000000 --- a/indra/newview/llurlentryagent.h +++ /dev/null @@ -1,52 +0,0 @@ -/**  - * @file llurlentryagent.h - * - * $LicenseInfo:firstyear=2009&license=viewergpl$ - *  - * Copyright (c) 2009, Linden Research, Inc. - *  - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab.  Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - *  - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - *  - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - *  - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#ifndef LL_LLURLENTRYAGENT_H -#define LL_LLURLENTRYAGENT_H - -#include "llurlentry.h" - -/// -/// LLUrlEntryAgent Describes a Second Life agent Url, e.g., -/// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about -/// -/// IDEVO Pulled this temporarily into newview for faster compile/link -/// times while iterating on UI. -class LLUrlEntryAgent : public LLUrlEntryBase -{ -public: -	LLUrlEntryAgent(); -	/*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); -private: -	void onNameCache(const LLUUID& id, const std::string& full_name, bool is_group); -}; - -#endif | 
