diff options
author | Erik Kundiman <erik@megapahit.org> | 2025-09-09 14:23:24 +0800 |
---|---|---|
committer | Erik Kundiman <erik@megapahit.org> | 2025-09-09 14:23:24 +0800 |
commit | 693137a6487e6ffda9ff15ade62d0e8bfec1bf49 (patch) | |
tree | 12c078a35bebfd139d108f5fb7cd6c7fc4455c70 /indra/llui/llurlaction.cpp | |
parent | b9ab04cd6e253848bad865fc1b5ea993a2a060f3 (diff) | |
parent | 8a9a3dc9d760db37bb963d3e5bfadafdd94ee08d (diff) |
Merge branch '2025.06'
Diffstat (limited to 'indra/llui/llurlaction.cpp')
-rw-r--r-- | indra/llui/llurlaction.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/indra/llui/llurlaction.cpp b/indra/llui/llurlaction.cpp index b6b450c2a1..fdae22cfa1 100644 --- a/indra/llui/llurlaction.cpp +++ b/indra/llui/llurlaction.cpp @@ -30,6 +30,7 @@ #include "llview.h" #include "llwindow.h" #include "llurlregistry.h" +#include "v3dmath.h" // global state for the callback functions @@ -128,6 +129,23 @@ void LLUrlAction::showLocationOnMap(std::string url) } } +void LLUrlAction::showParcelOnMap(std::string url) +{ + LLSD path_array = LLURI(url).pathArray(); + auto path_parts = path_array.size(); + + if (path_parts < 3) // no parcel id + { + LL_WARNS() << "Global coordinates are missing in url: [" << url << "]" << LL_ENDL; + return; + } + + LLVector3d parcel_pos = LLUrlEntryParcel::getParcelPos(LLUUID(LLURI::unescape(path_array[2]))); + std::ostringstream pos; + pos << parcel_pos.mdV[VX] << '/' << parcel_pos.mdV[VY] << '/' << parcel_pos.mdV[VZ]; + executeSLURL("secondlife:///app/worldmap_global/" + pos.str()); +} + void LLUrlAction::copyURLToClipboard(std::string url) { LLView::getWindow()->copyTextToClipboard(utf8str_to_wstring(url)); @@ -142,6 +160,16 @@ void LLUrlAction::copyLabelToClipboard(std::string url) } } +std::string LLUrlAction::getURLLabel(std::string url) +{ + LLUrlMatch match; + if (LLUrlRegistry::instance().findUrl(url, match)) + { + return match.getLabel(); + } + return ""; +} + void LLUrlAction::showProfile(std::string url) { // Get id from 'secondlife:///app/{cmd}/{id}/{action}' |