diff options
| author | Oz Linden <oz@lindenlab.com> | 2013-03-18 14:30:57 -0400 |
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2013-03-18 14:30:57 -0400 |
| commit | ed7785bf97a601448ba2da5fb2f19ea2861454c5 (patch) | |
| tree | 17e8d9ccf28ae30c5029ecea7e0ab8bed0fe3926 /indra/llui/llurlaction.cpp | |
| parent | c8533650b4779040c5e196f9ff156e3454edc9c8 (diff) | |
| parent | bf95c1cae7a84d1a97dacd8ea7f1b6af8be067a9 (diff) | |
merge up to 3.5.0-beta3 (chui)
Diffstat (limited to 'indra/llui/llurlaction.cpp')
| -rw-r--r-- | indra/llui/llurlaction.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/indra/llui/llurlaction.cpp b/indra/llui/llurlaction.cpp index fd9b3d9a6d..f51aeaec13 100644 --- a/indra/llui/llurlaction.cpp +++ b/indra/llui/llurlaction.cpp @@ -24,7 +24,6 @@ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ - #include "linden_common.h" #include "llurlaction.h" @@ -32,6 +31,7 @@ #include "llwindow.h" #include "llurlregistry.h" + // global state for the callback functions LLUrlAction::url_callback_t LLUrlAction::sOpenURLCallback; LLUrlAction::url_callback_t LLUrlAction::sOpenURLInternalCallback; @@ -157,3 +157,34 @@ void LLUrlAction::showProfile(std::string url) } } } + +std::string LLUrlAction::getUserID(std::string url) +{ + LLURI uri(url); + LLSD path_array = uri.pathArray(); + std::string id_str; + if (path_array.size() == 4) + { + id_str = path_array.get(2).asString(); + } + return id_str; +} + +void LLUrlAction::sendIM(std::string url) +{ + std::string id_str = getUserID(url); + if (LLUUID::validate(id_str)) + { + executeSLURL("secondlife:///app/agent/" + id_str + "/im"); + } +} + +void LLUrlAction::addFriend(std::string url) +{ + std::string id_str = getUserID(url); + if (LLUUID::validate(id_str)) + { + executeSLURL("secondlife:///app/agent/" + id_str + "/requestfriend"); + } +} + |
