diff options
author | mberezhnoy <mberezhnoy@productengine.com> | 2013-06-20 12:45:22 +0300 |
---|---|---|
committer | mberezhnoy <mberezhnoy@productengine.com> | 2013-06-20 12:45:22 +0300 |
commit | 2b8beeeff1485682e2b47f330dc8b3c24e966961 (patch) | |
tree | 245cbf45e7cac4ceebb4b6f30d43cde20d6e039d /indra/llui/llurlaction.cpp | |
parent | db803e193efee4a54fc0ca3a7fe1a6d4e089c06a (diff) |
CHUI-809 (Right-click menu on user name in compat chat mode doesn't have "IM")
Fixed "Add friend" option always being greyed out, add ability to block object via context menu in compact chat mode.
Diffstat (limited to 'indra/llui/llurlaction.cpp')
-rwxr-xr-x | indra/llui/llurlaction.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/indra/llui/llurlaction.cpp b/indra/llui/llurlaction.cpp index cf707d87dc..d006209284 100755 --- a/indra/llui/llurlaction.cpp +++ b/indra/llui/llurlaction.cpp @@ -170,6 +170,30 @@ std::string LLUrlAction::getUserID(std::string url) return id_str; } +std::string LLUrlAction::getObjectId(std::string url) +{ + LLURI uri(url); + LLSD path_array = uri.pathArray(); + std::string id_str; + if (path_array.size() >= 3) + { + id_str = path_array.get(2).asString(); + } + return id_str; +} + +std::string LLUrlAction::getObjectName(std::string url) +{ + LLURI uri(url); + LLSD query_map = uri.queryMap(); + std::string name; + if (query_map.has("name")) + { + name = query_map["name"]; + } + return name; +} + void LLUrlAction::sendIM(std::string url) { std::string id_str = getUserID(url); @@ -196,3 +220,13 @@ void LLUrlAction::removeFriend(std::string url) executeSLURL("secondlife:///app/agent/" + id_str + "/removefriend"); } } + +void LLUrlAction::blockObject(std::string url) +{ + std::string object_id = getObjectId(url); + std::string object_name = getObjectName(url); + if (LLUUID::validate(object_id)) + { + executeSLURL("secondlife:///app/agent/" + object_id + "/block/" + object_name); + } +} |