Moved LLUrlEntryAgent back into llui library in prep for merge

meow-7.2.2
James Cook 2010-02-03 12:48:40 -08:00
parent 146e9d5e4d
commit d489216b6e
8 changed files with 155 additions and 227 deletions

View File

@ -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.,

View File

@ -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.,

View File

@ -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());

View File

@ -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();
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 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<>

View File

@ -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

View File

@ -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.

View File

@ -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");
}
}

View File

@ -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