From 3c96173fceeb882416a465dd015462f48ffc76d9 Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Fri, 11 Dec 2009 11:29:10 +0000 Subject: 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. --- indra/newview/llfloaterparcel.cpp | 6 +++++- indra/newview/llpanelplaces.cpp | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'indra') 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) { -- cgit v1.2.3