summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2010-02-03 12:48:40 -0800
committerJames Cook <james@lindenlab.com>2010-02-03 12:48:40 -0800
commitd489216b6ef41f0d22f3a9062ba6daacc67bc038 (patch)
tree6888acece9d8cbdc358170a4ab69478e09c545d9
parent146e9d5e4d9a9a4f33d9ccd47a901980972b7ab9 (diff)
Moved LLUrlEntryAgent back into llui library in prep for merge
-rw-r--r--indra/llui/llurlentry.cpp127
-rw-r--r--indra/llui/llurlentry.h12
-rw-r--r--indra/llui/llurlregistry.cpp2
-rw-r--r--indra/llui/tests/llurlentry_test.cpp36
-rw-r--r--indra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/llstartup.cpp5
-rw-r--r--indra/newview/llurlentryagent.cpp146
-rw-r--r--indra/newview/llurlentryagent.h52
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