summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLynx Linden <lynx@lindenlab.com>2009-12-11 11:29:10 +0000
committerLynx Linden <lynx@lindenlab.com>2009-12-11 11:29:10 +0000
commit3c96173fceeb882416a465dd015462f48ffc76d9 (patch)
tree5f88d420e71dbb7ae7225c96aaae2ece74f96d87
parent729f3bbd340294b0ef511a341afd5cf899db55c1 (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.cpp6
-rw-r--r--indra/newview/llpanelplaces.cpp16
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)
{