diff options
author | Lynx Linden <lynx@lindenlab.com> | 2009-12-11 11:29:10 +0000 |
---|---|---|
committer | Lynx Linden <lynx@lindenlab.com> | 2009-12-11 11:29:10 +0000 |
commit | 3c96173fceeb882416a465dd015462f48ffc76d9 (patch) | |
tree | 5f88d420e71dbb7ae7225c96aaae2ece74f96d87 | |
parent | 729f3bbd340294b0ef511a341afd5cf899db55c1 (diff) |
EXT-3119 DEV-43503 DEV-43497: Fix secondlife://app/parcel crash.
The handler for secondlife:///app/parcel/{UUID}/about SLurls now opens
the Place side tray and displays the parcel information there.
-rw-r--r-- | indra/newview/llfloaterparcel.cpp | 6 | ||||
-rw-r--r-- | indra/newview/llpanelplaces.cpp | 16 |
2 files changed, 17 insertions, 5 deletions
diff --git a/indra/newview/llfloaterparcel.cpp b/indra/newview/llfloaterparcel.cpp index 88a39a495f..e2be784116 100644 --- a/indra/newview/llfloaterparcel.cpp +++ b/indra/newview/llfloaterparcel.cpp @@ -40,6 +40,7 @@ // viewer project includes #include "llcommandhandler.h" #include "llpanelplace.h" +#include "llsidetray.h" // linden library includes #include "lluuid.h" @@ -70,7 +71,10 @@ public: { if (parcel_id.notNull()) { - LLFloaterReg::showInstance("parcel_info", LLSD(parcel_id)); + LLSD key; + key["type"] = "remote_place"; + key["id"] = parcel_id; + LLSideTray::getInstance()->showPanel("panel_places", key); return true; } } diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index 4a554c1b2c..e21eb01da3 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -278,12 +278,20 @@ void LLPanelPlaces::onOpen(const LLSD& key) } else if (mPlaceInfoType == REMOTE_PLACE_INFO_TYPE) { - mPosGlobal = LLVector3d(key["x"].asReal(), - key["y"].asReal(), - key["z"].asReal()); + if (key.has("id")) + { + LLUUID parcel_id = key["id"].asUUID(); + mPlaceProfile->setParcelID(parcel_id); + } + else + { + mPosGlobal = LLVector3d(key["x"].asReal(), + key["y"].asReal(), + key["z"].asReal()); + mPlaceProfile->displayParcelInfo(LLUUID(), mPosGlobal); + } mPlaceProfile->setInfoType(LLPanelPlaceInfo::PLACE); - mPlaceProfile->displayParcelInfo(LLUUID(), mPosGlobal); } else if (mPlaceInfoType == TELEPORT_HISTORY_INFO_TYPE) { |