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 | |
parent | 146e9d5e4d9a9a4f33d9ccd47a901980972b7ab9 (diff) |
Moved LLUrlEntryAgent back into llui library in prep for merge
-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 |