summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llurlentry.cpp114
-rw-r--r--indra/llui/llurlentry.h14
-rw-r--r--indra/llui/llurlregistry.cpp11
-rw-r--r--indra/llui/llurlregistry.h4
-rw-r--r--indra/llui/tests/llurlentry_test.cpp35
5 files changed, 31 insertions, 147 deletions
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index 326f1cec29..d04cb8c7ff 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -297,119 +297,7 @@ std::string LLUrlEntrySLURL::getLocation(const std::string &url) const
return url.substr(pos, url.size() - pos);
}
-//
-// 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& first, const std::string& last)
-{
- std::string displayname;
- if (first == "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 (first == "Jim")
- {
- displayname = "Jos";
- displayname += (char)(0xC3);
- displayname += (char)(0xA9);
- displayname += " Sanchez";
- }
- else if (first == "James")
- {
- displayname = "James Cook";
- }
-
- std::string fullname = first;
- if (!last.empty())
- {
- fullname += ' ';
- fullname += last;
- }
-
- std::string final;
- if (!displayname.empty())
- {
- final = displayname + " (" + fullname + ")";
- }
- else
- {
- final = fullname;
- }
- return final;
-}
-
-void LLUrlEntryAgent::onAgentNameReceived(const LLUUID& id,
- const std::string& first,
- const std::string& last,
- BOOL is_group)
-{
- std::string final = clean_name(first, last);
- // 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 first, last;
- if (agent_id.isNull())
- {
- return LLTrans::getString("AvatarNameNobody");
- }
- else if (gCacheName->getName(agent_id, first, last))
- {
- return clean_name(first, last);
- }
- else
- {
- gCacheName->get(agent_id, FALSE,
- boost::bind(&LLUrlEntryAgent::onAgentNameReceived,
- this, _1, _2, _3, _4));
- addObserver(agent_id_string, url, cb);
- return LLTrans::getString("LoadingData");
- }
-}
+// LLUrlEntryAgent temporarily moved to newview IDEVO
//
// LLUrlEntryGroup Describes a Second Life group Url, e.g.,
diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h
index 4adffde99c..33ec9d82a9 100644
--- a/indra/llui/llurlentry.h
+++ b/indra/llui/llurlentry.h
@@ -156,19 +156,7 @@ public:
/*virtual*/ std::string getLocation(const std::string &url) const;
};
-///
-/// 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 onAgentNameReceived(const LLUUID& id, const std::string& first,
- const std::string& last, BOOL is_group);
-};
+/// IDEVO LLUrlEntryAgent temporarily moved to newview
///
/// LLUrlEntryGroup Describes a Second Life group Url, e.g.,
diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp
index ad5c0911f8..4fbdae9d38 100644
--- a/indra/llui/llurlregistry.cpp
+++ b/indra/llui/llurlregistry.cpp
@@ -43,11 +43,13 @@ void LLUrlRegistryNullCallback(const std::string &url, const std::string &label)
LLUrlRegistry::LLUrlRegistry()
{
+ mUrlEntry.reserve(16);
+
// Urls are matched in the order that they were registered
registerUrl(new LLUrlEntrySLURL());
registerUrl(new LLUrlEntryHTTP());
registerUrl(new LLUrlEntryHTTPLabel());
- registerUrl(new LLUrlEntryAgent());
+ // IDEVO registerUrl(new LLUrlEntryAgent());
registerUrl(new LLUrlEntryGroup());
registerUrl(new LLUrlEntryParcel());
registerUrl(new LLUrlEntryTeleport());
@@ -73,11 +75,14 @@ LLUrlRegistry::~LLUrlRegistry()
}
}
-void LLUrlRegistry::registerUrl(LLUrlEntryBase *url)
+void LLUrlRegistry::registerUrl(LLUrlEntryBase *url, bool force_front)
{
if (url)
{
- mUrlEntry.push_back(url);
+ if (force_front) // IDEVO
+ mUrlEntry.insert(mUrlEntry.begin(), url);
+ else
+ mUrlEntry.push_back(url);
}
}
diff --git a/indra/llui/llurlregistry.h b/indra/llui/llurlregistry.h
index 399ee0a988..6d47c2c2a2 100644
--- a/indra/llui/llurlregistry.h
+++ b/indra/llui/llurlregistry.h
@@ -70,7 +70,9 @@ public:
~LLUrlRegistry();
/// add a new Url handler to the registry (will be freed on destruction)
- void registerUrl(LLUrlEntryBase *url);
+ /// optionally force it to the front of the list, making it take
+ /// priority over other regular expression matches for URLs
+ void registerUrl(LLUrlEntryBase *url, bool force_front = false);
/// get the next Url in an input string, starting at a given character offset
/// your callback is invoked if the matched Url's label changes in the future
diff --git a/indra/llui/tests/llurlentry_test.cpp b/indra/llui/tests/llurlentry_test.cpp
index 80be8fcbf7..9200708784 100644
--- a/indra/llui/tests/llurlentry_test.cpp
+++ b/indra/llui/tests/llurlentry_test.cpp
@@ -266,28 +266,29 @@ namespace tut
//
// test LLUrlEntryAgent - secondlife://app/agent Urls
//
- LLUrlEntryAgent url;
- boost::regex r = url.getPattern();
+ // 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",
- "");
+ //testRegex("Invalid Agent Url", r,
+ // "secondlife:///app/agent/0e346d8b-4433-4d66-XXXX-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 ", r,
+ // "secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about",
+ // "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 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 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 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");
+ //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");
}