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 /indra/newview | |
| 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.
Diffstat (limited to 'indra/newview')
| -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)  	{  | 
