diff options
author | Aimee Linden <aimee@lindenlab.com> | 2010-07-19 13:23:19 +0100 |
---|---|---|
committer | Aimee Linden <aimee@lindenlab.com> | 2010-07-19 13:23:19 +0100 |
commit | e48e1e32d8543fb930f45b7eb98e28ce17cd29b8 (patch) | |
tree | 8504a16dfc803ba8673737076a46d7fc5d15c981 | |
parent | bfdfff3f0743550a8f8b42e8959df909c200a073 (diff) |
Bury the dead code day: Removed LLFloaterParcelInfo, LLFloaterURLDisplay and LLPanelPlace
Moved LLParcelHandler from now defunct llfloaterparcel.cpp to llpanelplaces.cpp
-rw-r--r-- | indra/newview/CMakeLists.txt | 6 | ||||
-rw-r--r-- | indra/newview/llfloaterparcel.cpp | 128 | ||||
-rw-r--r-- | indra/newview/llfloaterparcel.h | 59 | ||||
-rw-r--r-- | indra/newview/llfloaterurldisplay.cpp | 109 | ||||
-rw-r--r-- | indra/newview/llfloaterurldisplay.h | 64 | ||||
-rw-r--r-- | indra/newview/llpanelplace.cpp | 424 | ||||
-rw-r--r-- | indra/newview/llpanelplace.h | 120 | ||||
-rw-r--r-- | indra/newview/llpanelplaces.cpp | 37 | ||||
-rw-r--r-- | indra/newview/llremoteparcelrequest.cpp | 1 | ||||
-rw-r--r-- | indra/newview/llstartup.cpp | 1 | ||||
-rw-r--r-- | indra/newview/llurldispatcher.cpp | 20 | ||||
-rw-r--r-- | indra/newview/llviewerfloaterreg.cpp | 4 |
12 files changed, 37 insertions, 936 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 4e87dd9225..64bcf12b06 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -190,7 +190,6 @@ set(viewer_SOURCE_FILES llfloaternamedesc.cpp llfloaternotificationsconsole.cpp llfloateropenobject.cpp - llfloaterparcel.cpp llfloaterpay.cpp llfloaterperms.cpp llfloaterpostcard.cpp @@ -212,7 +211,6 @@ set(viewer_SOURCE_FILES llfloatertopobjects.cpp llfloatertos.cpp llfloateruipreview.cpp - llfloaterurldisplay.cpp llfloaterurlentry.cpp llfloatervoicedevicesettings.cpp llfloatervoiceeffect.cpp @@ -349,7 +347,6 @@ set(viewer_SOURCE_FILES llpanelpermissions.cpp llpanelpick.cpp llpanelpicks.cpp - llpanelplace.cpp llpanelplaceinfo.cpp llpanelplaceprofile.cpp llpanelplaces.cpp @@ -717,7 +714,6 @@ set(viewer_HEADER_FILES llfloaternamedesc.h llfloaternotificationsconsole.h llfloateropenobject.h - llfloaterparcel.h llfloaterpay.h llfloaterperms.h llfloaterpostcard.h @@ -739,7 +735,6 @@ set(viewer_HEADER_FILES llfloatertopobjects.h llfloatertos.h llfloateruipreview.h - llfloaterurldisplay.h llfloaterurlentry.h llfloatervoicedevicesettings.h llfloatervoiceeffect.h @@ -872,7 +867,6 @@ set(viewer_HEADER_FILES llpanelpermissions.h llpanelpick.h llpanelpicks.h - llpanelplace.h llpanelplaceinfo.h llpanelplaceprofile.h llpanelplaces.h diff --git a/indra/newview/llfloaterparcel.cpp b/indra/newview/llfloaterparcel.cpp deleted file mode 100644 index e2be784116..0000000000 --- a/indra/newview/llfloaterparcel.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/** - * @file llfloaterparcel.cpp - * @brief LLFloaterParcel class implementation - * Parcel information as shown in a floating window from secondlife:// command - * handler. - * - * $LicenseInfo:firstyear=2007&license=viewergpl$ - * - * Copyright (c) 2007-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ -#include "llviewerprecompiledheaders.h" - -#include "llfloaterparcel.h" - -#include "llfloaterreg.h" - -// viewer project includes -#include "llcommandhandler.h" -#include "llpanelplace.h" -#include "llsidetray.h" - -// linden library includes -#include "lluuid.h" -#include "lluictrlfactory.h" - -//----------------------------------------------------------------------------- -// Globals -//----------------------------------------------------------------------------- - -class LLParcelHandler : public LLCommandHandler -{ -public: - // requires trusted browser to trigger - LLParcelHandler() : LLCommandHandler("parcel", UNTRUSTED_THROTTLE) { } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) - { - if (params.size() < 2) - { - return false; - } - LLUUID parcel_id; - if (!parcel_id.set(params[0], FALSE)) - { - return false; - } - if (params[1].asString() == "about") - { - if (parcel_id.notNull()) - { - LLSD key; - key["type"] = "remote_place"; - key["id"] = parcel_id; - LLSideTray::getInstance()->showPanel("panel_places", key); - return true; - } - } - return false; - } -}; -LLParcelHandler gParcelHandler; - -//----------------------------------------------------------------------------- -// Member functions -//----------------------------------------------------------------------------- - -//---------------------------------------------------------------------------- - -void* LLFloaterParcelInfo::createPanelPlace(void* data) -{ - LLFloaterParcelInfo* self = (LLFloaterParcelInfo*)data; - self->mPanelParcelp = new LLPanelPlace(); // allow edit self - LLUICtrlFactory::getInstance()->buildPanel(self->mPanelParcelp, "panel_place.xml"); - return self->mPanelParcelp; -} - -//---------------------------------------------------------------------------- - - -LLFloaterParcelInfo::LLFloaterParcelInfo(const LLSD& parcel_id) -: LLFloater(parcel_id), - mParcelID( parcel_id.asUUID() ), - mPanelParcelp(NULL) -{ - mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterParcelInfo::createPanelPlace, this); -// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_url.xml"); -} - -// virtual -LLFloaterParcelInfo::~LLFloaterParcelInfo() -{ - -} - -BOOL LLFloaterParcelInfo::postBuild() -{ - if (mPanelParcelp) - { - mPanelParcelp->setParcelID(mParcelID); - } - center(); - return LLFloater::postBuild(); -} - - diff --git a/indra/newview/llfloaterparcel.h b/indra/newview/llfloaterparcel.h deleted file mode 100644 index 386acb3fd5..0000000000 --- a/indra/newview/llfloaterparcel.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @file llfloaterparcel.h - * @brief Parcel information as shown in a floating window from a sl-url. - * Just a wrapper for LLPanelPlace, shared with the Find directory. - * - * $LicenseInfo:firstyear=2007&license=viewergpl$ - * - * Copyright (c) 2007-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ -#ifndef LL_FLOATERPARCELINFO_H -#define LL_FLOATERPARCELINFO_H - -#include "llfloater.h" - -class LLPanelPlace; - -class LLFloaterParcelInfo -: public LLFloater -{ -public: - static void* createPanelPlace(void* data); - - LLFloaterParcelInfo( const LLSD& parcel_id ); - /*virtual*/ ~LLFloaterParcelInfo(); - - /*virtual*/ BOOL postBuild(); - - void displayParcelInfo(const LLUUID& parcel_id); - -private: - LLUUID mParcelID; // for which parcel is this window? - LLPanelPlace* mPanelParcelp; -}; - - -#endif diff --git a/indra/newview/llfloaterurldisplay.cpp b/indra/newview/llfloaterurldisplay.cpp deleted file mode 100644 index 4b67cbb308..0000000000 --- a/indra/newview/llfloaterurldisplay.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/** - * @file llfloaterurldisplay.h - * @brief Probably should be called LLFloaterTeleport, or LLFloaterLandmark - * as it gives you a preview of a potential teleport location. - * - * $LicenseInfo:firstyear=2007&license=viewergpl$ - * - * Copyright (c) 2007-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llregionhandle.h" -#include "v3dmath.h" - -#include "llfloaterurldisplay.h" - -#include "llpanelplace.h" -#include "lluictrlfactory.h" - -//////////////////////////////////////////////////////////////////////////// -// LLFloaterURLDisplay - - -LLFloaterURLDisplay::LLFloaterURLDisplay(const LLSD& sd) - : LLFloater(sd) -{ - mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterURLDisplay::createPlaceDetail, this); -// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_url.xml"); - - // If positioned at 0,0 the teleport button is behind the toolbar. - LLRect r = getRect(); - if (r.mBottom == 0 && r.mLeft == 0) - { - // first use, center it - center(); - } - else - { - gFloaterView->adjustToFitScreen(this, FALSE); - } -} - -LLFloaterURLDisplay::~LLFloaterURLDisplay() -{ -} - -void LLFloaterURLDisplay::displayParcelInfo(U64 region_handle, const LLVector3& pos_local) -{ - mRegionHandle = region_handle; - mRegionPosition = pos_local; - LLVector3d pos_global = from_region_handle(region_handle); - pos_global += (LLVector3d)pos_local; - - LLUUID region_id; // don't know this - LLUUID landmark_asset_id; // don't know this either - mPlacePanel->displayParcelInfo(pos_local, landmark_asset_id, region_id, pos_global); - - this->setVisible(true); - this->setFrontmost(true); -} - -void LLFloaterURLDisplay::setSnapshotDisplay(const LLUUID& snapshot_id) -{ - mPlacePanel->setSnapshot(snapshot_id); -} - -void LLFloaterURLDisplay::setName(const std::string& name) -{ // Set the name and also clear description - mPlacePanel->resetName(name); -} - -void LLFloaterURLDisplay::setLocationString(const std::string& name) -{ - mPlacePanel->setLocationString(name); -} - -// static -void* LLFloaterURLDisplay::createPlaceDetail(void* userdata) -{ - LLFloaterURLDisplay *self = (LLFloaterURLDisplay*)userdata; - self->mPlacePanel = new LLPanelPlace(); - LLUICtrlFactory::getInstance()->buildPanel(self->mPlacePanel, "panel_place.xml"); - - return self->mPlacePanel; -} diff --git a/indra/newview/llfloaterurldisplay.h b/indra/newview/llfloaterurldisplay.h deleted file mode 100644 index 22f5a95ad0..0000000000 --- a/indra/newview/llfloaterurldisplay.h +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file llfloaterurldisplay.h - * @brief LLFloaterURLDisplay class implementation - * - * $LicenseInfo:firstyear=2006&license=viewergpl$ - * - * Copyright (c) 2006-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#ifndef LL_LLFLOATERURLDISPLAY_H -#define LL_LLFLOATERURLDISPLAY_H - -#include "llfloater.h" -#include "v3math.h" - -class LLPanelPlace; -class LLSD; -class LLUUID; - -class LLFloaterURLDisplay : public LLFloater -{ - friend class LLFloaterReg; -public: - - void displayParcelInfo(U64 region_handle, const LLVector3& pos); - void setSnapshotDisplay(const LLUUID& snapshot_id); - void setName(const std::string& name); - void setLocationString(const std::string& name); - - static void* createPlaceDetail(void* userdata); - -private: - LLFloaterURLDisplay(const LLSD& sd); - virtual ~LLFloaterURLDisplay(); - - LLVector3 mRegionPosition; - U64 mRegionHandle; - LLPanelPlace* mPlacePanel; -}; - -#endif // LL_LLFLOATERURLDISPLAY_H diff --git a/indra/newview/llpanelplace.cpp b/indra/newview/llpanelplace.cpp deleted file mode 100644 index 1446088c4f..0000000000 --- a/indra/newview/llpanelplace.cpp +++ /dev/null @@ -1,424 +0,0 @@ -/** - * @file llpanelplace.cpp - * @brief Display of a place in the Find directory. - * - * $LicenseInfo:firstyear=2004&license=viewergpl$ - * - * Copyright (c) 2004-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llpanelplace.h" - -#include "llviewercontrol.h" -#include "llqueryflags.h" -#include "llui.h" -#include "llsecondlifeurls.h" -#include "llfloater.h" -#include "llfloaterreg.h" -#include "llregionhandle.h" - -#include "llagent.h" -#include "llviewerwindow.h" -#include "llbutton.h" -#include "llfloaterworldmap.h" -#include "lllineeditor.h" -#include "llnotificationsutil.h" -#include "lluiconstants.h" -#include "lltextbox.h" -#include "lltexteditor.h" -#include "lltexturectrl.h" -#include "lltrans.h" -#include "llworldmap.h" -#include "llviewerregion.h" -#include "llvoavatarself.h" -#include "lluictrlfactory.h" -//#include "llviewermenu.h" // create_landmark() -#include "llweb.h" -#include "llsdutil.h" -#include "llsdutil_math.h" - -LLPanelPlace::LLPanelPlace() -: LLPanel(), - mParcelID(), - mRequestedID(), - mRegionID(), - mPosGlobal(), - mPosRegion(), - mAuctionID(0), - mLandmarkAssetID() -{} - -LLPanelPlace::~LLPanelPlace() -{ - if (mParcelID.notNull()) - { - LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelID, this); - } -} - -BOOL LLPanelPlace::postBuild() -{ - // Since this is only used in the directory browser, always - // disable the snapshot control. Otherwise clicking on it will - // open a texture picker. - mSnapshotCtrl = getChild<LLTextureCtrl>("snapshot_ctrl"); - mSnapshotCtrl->setEnabled(FALSE); - - mNameEditor = getChild<LLTextBox>("name_editor"); - // Text boxes appear to have a " " in them by default. This breaks the - // emptiness test for filling in data from the network. Slam to empty. - mNameEditor->setText( LLStringUtil::null ); - - mDescEditor = getChild<LLTextEditor>("desc_editor"); - - mInfoEditor = getChild<LLTextBox>("info_editor"); - mLandTypeEditor = getChild<LLTextBox>("land_type_display"); - - mLocationDisplay = getChild<LLTextBox>("location_editor"); - - mTeleportBtn = getChild<LLButton>( "teleport_btn"); - mTeleportBtn->setClickedCallback(onClickTeleport, this); - - mMapBtn = getChild<LLButton>( "map_btn"); - mMapBtn->setClickedCallback(onClickMap, this); - - //mLandmarkBtn = getChild<LLButton>( "landmark_btn"); - //mLandmarkBtn->setClickedCallback(onClickLandmark, this); - - mAuctionBtn = getChild<LLButton>( "auction_btn"); - mAuctionBtn->setClickedCallback(onClickAuction, this); - - // Default to no auction button. We'll show it if we get an auction id - mAuctionBtn->setVisible(FALSE); - - // Temporary text to explain why the description panel is blank. - // mDescEditor->setText("Parcel information not available without server update"); - - return TRUE; -} - -void LLPanelPlace::displayItemInfo(const LLInventoryItem* pItem) -{ - if (pItem) - { - mNameEditor->setText(pItem->getName()); - mDescEditor->setText(pItem->getDescription()); - } -} - -// Use this for search directory clicks, because we are totally -// recycling the panel and don't need to use what's there. -// -// For SLURL clicks, don't call this, because we need to cache -// the location info from the user. -void LLPanelPlace::resetLocation() -{ - mParcelID.setNull(); - mRequestedID.setNull(); - mRegionID.setNull(); - mLandmarkAssetID.setNull(); - mPosGlobal.clearVec(); - mPosRegion.clearVec(); - mAuctionID = 0; - mNameEditor->setText( LLStringUtil::null ); - mDescEditor->setText( LLStringUtil::null ); - mInfoEditor->setText( LLStringUtil::null ); - mLandTypeEditor->setText( LLStringUtil::null ); - mLocationDisplay->setText( LLStringUtil::null ); -} - - -// Set the name and clear other bits of info. Used for SLURL clicks -void LLPanelPlace::resetName(const std::string& name) -{ - setName(name); - if(mDescEditor) - { - mDescEditor->setText( LLStringUtil::null ); - } - if(mNameEditor) - { - llinfos << "Clearing place name" << llendl; - mNameEditor->setText( LLStringUtil::null ); - } - if(mInfoEditor) - { - mInfoEditor->setText( LLStringUtil::null ); - } - if(mLandTypeEditor) - { - mLandTypeEditor->setText( LLStringUtil::null ); - } -} - -//virtual -void LLPanelPlace::setParcelID(const LLUUID& parcel_id) -{ - mParcelID = parcel_id; - sendParcelInfoRequest(); -} - -void LLPanelPlace::setSnapshot(const LLUUID& snapshot_id) -{ - mSnapshotCtrl->setImageAssetID(snapshot_id); -} - -void LLPanelPlace::setLocationString(const std::string& location) -{ - mLocationDisplay->setText(location); -} - -void LLPanelPlace::setLandTypeString(const std::string& land_type) -{ - mLandTypeEditor->setText(land_type); -} - -void LLPanelPlace::sendParcelInfoRequest() -{ - if (mParcelID != mRequestedID) - { - LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelID, this); - LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelID); - - mRequestedID = mParcelID; - } -} - -//virtual -void LLPanelPlace::setErrorStatus(U32 status, const std::string& reason) -{ - // We only really handle 404 and 499 errors - std::string error_text; - if(status == 404) - { - error_text = getString("server_error_text"); - } - else if(status == 499) - { - error_text = getString("server_forbidden_text"); - } - mDescEditor->setText(error_text); -} - -//virtual -void LLPanelPlace::processParcelInfo(const LLParcelData& parcel_data) -{ - mAuctionID = parcel_data.auction_id; - - if(parcel_data.snapshot_id.notNull()) - { - mSnapshotCtrl->setImageAssetID(parcel_data.snapshot_id); - } - - if( !parcel_data.name.empty() - && mNameEditor && mNameEditor->getText().empty()) - { - mNameEditor->setText(parcel_data.name); - } - - if( !parcel_data.desc.empty() - && mDescEditor && mDescEditor->getText().empty()) - { - mDescEditor->setText(parcel_data.desc); - } - - std::string info_text; - LLUIString traffic = getString("traffic_text"); - traffic.setArg("[TRAFFIC]", llformat("%d ", (int)parcel_data.dwell)); - info_text = traffic; - LLUIString area = getString("area_text"); - area.setArg("[AREA]", llformat("%d", parcel_data.actual_area)); - info_text += area; - if (parcel_data.flags & DFQ_FOR_SALE) - { - LLUIString forsale = getString("forsale_text"); - forsale.setArg("[PRICE]", llformat("%d", parcel_data.sale_price)); - info_text += forsale; - } - if (parcel_data.auction_id != 0) - { - LLUIString auction = getString("auction_text"); - auction.setArg("[ID]", llformat("%010d ", parcel_data.auction_id)); - info_text += auction; - } - if (mInfoEditor) - { - mInfoEditor->setText(info_text); - } - - // HACK: Flag 0x2 == adult region, - // Flag 0x1 == mature region, otherwise assume PG - std::string rating = LLViewerRegion::accessToString(SIM_ACCESS_PG); - if (parcel_data.flags & 0x2) - { - rating = LLViewerRegion::accessToString(SIM_ACCESS_ADULT); - } - else if (parcel_data.flags & 0x1) - { - rating = LLViewerRegion::accessToString(SIM_ACCESS_MATURE); - } - - // Just use given region position for display - S32 region_x = llround(mPosRegion.mV[0]); - S32 region_y = llround(mPosRegion.mV[1]); - S32 region_z = llround(mPosRegion.mV[2]); - - // If the region position is zero, grab position from the global - if(mPosRegion.isExactlyZero()) - { - region_x = llround(parcel_data.global_x) % REGION_WIDTH_UNITS; - region_y = llround(parcel_data.global_y) % REGION_WIDTH_UNITS; - region_z = llround(parcel_data.global_z); - } - - if(mPosGlobal.isExactlyZero()) - { - mPosGlobal.setVec(parcel_data.global_x, parcel_data.global_y, parcel_data.global_z); - } - - std::string location = llformat("%s %d, %d, %d (%s)", - parcel_data.sim_name.c_str(), region_x, region_y, region_z, rating.c_str()); - if (mLocationDisplay) - { - mLocationDisplay->setText(location); - } - - BOOL show_auction = (parcel_data.auction_id > 0); - mAuctionBtn->setVisible(show_auction); -} - - -void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region, - const LLUUID& landmark_asset_id, - const LLUUID& region_id, - const LLVector3d& pos_global) -{ - LLSD body; - mPosRegion = pos_region; - mPosGlobal = pos_global; - mLandmarkAssetID = landmark_asset_id; - std::string url = gAgent.getRegion()->getCapability("RemoteParcelRequest"); - if (!url.empty()) - { - body["location"] = ll_sd_from_vector3(pos_region); - if (!region_id.isNull()) - { - body["region_id"] = region_id; - } - if (!pos_global.isExactlyZero()) - { - U64 region_handle = to_region_handle(pos_global); - body["region_handle"] = ll_sd_from_U64(region_handle); - } - LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(getObserverHandle())); - } - else - { - mDescEditor->setText(getString("server_update_text")); - } - mSnapshotCtrl->setImageAssetID(LLUUID::null); -} - -// static -void LLPanelPlace::onClickTeleport(void* data) -{ - LLPanelPlace* self = (LLPanelPlace*)data; - - LLView* parent_viewp = self->getParent(); - LLFloater* parent_floaterp = dynamic_cast<LLFloater*>(parent_viewp); - if (parent_floaterp) - { - parent_floaterp->closeFloater(); - } - // LLFloater* parent_floaterp = (LLFloater*)self->getParent(); - parent_viewp->setVisible(false); - LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance(); - if(self->mLandmarkAssetID.notNull() && worldmap_instance) - { - gAgent.teleportViaLandmark(self->mLandmarkAssetID); - worldmap_instance->trackLandmark(self->mLandmarkAssetID); - - } - else if (!self->mPosGlobal.isExactlyZero() && worldmap_instance) - { - gAgent.teleportViaLocation(self->mPosGlobal); - worldmap_instance->trackLocation(self->mPosGlobal); - } -} - -// static -void LLPanelPlace::onClickMap(void* data) -{ - LLPanelPlace* self = (LLPanelPlace*)data; - LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance(); - - if (!self->mPosGlobal.isExactlyZero() && worldmap_instance) - { - worldmap_instance->trackLocation(self->mPosGlobal); - LLFloaterReg::showInstance("world_map", "center"); - } -} - -// static -/* -void LLPanelPlace::onClickLandmark(void* data) -{ - LLPanelPlace* self = (LLPanelPlace*)data; - - create_landmark(self->mNameEditor->getText(), "", self->mPosGlobal); -} -*/ - - -// static -void LLPanelPlace::onClickAuction(void* data) -{ - LLPanelPlace* self = (LLPanelPlace*)data; - LLSD args; - args["AUCTION_ID"] = self->mAuctionID; - - LLNotificationsUtil::add("GoToAuctionPage", args); -} -/* -// static -bool LLPanelPlace::callbackAuctionWebPage(const LLSD& notification, const LLSD& response) -{ - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - if (0 == option) - { - std::string url; - url = LLNotifications::instance().getGlobalString("AUCTION_URL") + llformat("%010d", response["auction_id"].asInteger()); - - llinfos << "Loading auction page " << url << llendl; - - LLWeb::loadURL(url); - } - return false; -} -*/ - diff --git a/indra/newview/llpanelplace.h b/indra/newview/llpanelplace.h deleted file mode 100644 index f90a1b0567..0000000000 --- a/indra/newview/llpanelplace.h +++ /dev/null @@ -1,120 +0,0 @@ -/** - * @file llpanelplace.h - * @brief Display of a place in the Find directory. - * - * $LicenseInfo:firstyear=2004&license=viewergpl$ - * - * Copyright (c) 2004-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#ifndef LL_LLPANELPLACE_H -#define LL_LLPANELPLACE_H - -#include "llpanel.h" - -#include "v3dmath.h" -#include "lluuid.h" - -#include "llremoteparcelrequest.h" - -class LLButton; -class LLTextBox; -class LLLineEditor; -class LLTextEditor; -class LLTextureCtrl; -class LLMessageSystem; -class LLInventoryItem; - -class LLPanelPlace : public LLPanel, LLRemoteParcelInfoObserver -{ -public: - LLPanelPlace(); - /*virtual*/ ~LLPanelPlace(); - - /*virtual*/ BOOL postBuild(); - - void resetLocation(); - // Ignore all old location information, useful if you are - // recycling an existing dialog and need to clear it. - - /*virtual*/ void setParcelID(const LLUUID& parcel_id); - // Sends a request for data about the given parcel, which will - // only update the location if there is none already available. - - void displayItemInfo(const LLInventoryItem* pItem); - void setRegionID(const LLUUID& region_id) { mRegionID = region_id; } - void setSnapshot(const LLUUID& snapshot_id); - void setLocationString(const std::string& location); - void setLandTypeString(const std::string& land_type); - /*virtual*/ void setErrorStatus(U32 status, const std::string& reason); - void resetName(const std::string& name); - - void sendParcelInfoRequest(); - void displayParcelInfo(const LLVector3& pos_region, - const LLUUID& landmark_asset_id, - const LLUUID& region_id, - const LLVector3d& pos_global); - /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data); - - LLTextureCtrl *getSnapshotCtrl() const { return mSnapshotCtrl; } - -protected: - static void onClickTeleport(void* data); - static void onClickMap(void* data); - //static void onClickLandmark(void* data); - static void onClickAuction(void* data); - - // Go to auction web page if user clicked OK - static bool callbackAuctionWebPage(const LLSD& notification, const LLSD& response); - -protected: - LLUUID mParcelID; - LLUUID mRequestedID; - LLUUID mRegionID; - LLUUID mLandmarkAssetID; - // Absolute position of the location for teleport, may not - // be available (hence zero) - LLVector3d mPosGlobal; - // Region-local position for teleport, always available. - LLVector3 mPosRegion; - // Zero if this is not an auction - S32 mAuctionID; - - LLTextureCtrl* mSnapshotCtrl; - - LLTextBox* mNameEditor; - LLTextEditor* mDescEditor; - LLTextBox* mInfoEditor; - LLTextBox* mLandTypeEditor; - LLTextBox* mLocationDisplay; //not calling it "editor" because it isn't - - LLButton* mTeleportBtn; - LLButton* mMapBtn; - //LLButton* mLandmarkBtn; - LLButton* mAuctionBtn; -}; - -#endif // LL_LLPANELPLACE_H diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index 705b196ef1..07adb18902 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -54,6 +54,7 @@ #include "llagent.h" #include "llagentpicksinfo.h" #include "llavatarpropertiesprocessor.h" +#include "llcommandhandler.h" #include "llfloaterworldmap.h" #include "llinventorybridge.h" #include "llinventoryobserver.h" @@ -66,6 +67,7 @@ #include "llpanelplaceprofile.h" #include "llpanelteleporthistory.h" #include "llremoteparcelrequest.h" +#include "llsidetray.h" #include "llteleporthistorystorage.h" #include "lltoggleablemenu.h" #include "llviewerinventory.h" @@ -75,6 +77,7 @@ #include "llviewerregion.h" #include "llviewerwindow.h" +// Constants static const S32 LANDMARK_FOLDERS_MENU_WIDTH = 250; static const F32 PLACE_INFO_UPDATE_INTERVAL = 3.0; static const std::string AGENT_INFO_TYPE = "agent"; @@ -83,6 +86,40 @@ static const std::string LANDMARK_INFO_TYPE = "landmark"; static const std::string REMOTE_PLACE_INFO_TYPE = "remote_place"; static const std::string TELEPORT_HISTORY_INFO_TYPE = "teleport_history"; +// Support for secondlife:///app/parcel/{UUID}/about SLapps +class LLParcelHandler : public LLCommandHandler +{ +public: + // requires trusted browser to trigger + LLParcelHandler() : LLCommandHandler("parcel", UNTRUSTED_THROTTLE) { } + bool handle(const LLSD& params, const LLSD& query_map, + LLMediaCtrl* web) + { + if (params.size() < 2) + { + return false; + } + LLUUID parcel_id; + if (!parcel_id.set(params[0], FALSE)) + { + return false; + } + if (params[1].asString() == "about") + { + if (parcel_id.notNull()) + { + LLSD key; + key["type"] = "remote_place"; + key["id"] = parcel_id; + LLSideTray::getInstance()->showPanel("panel_places", key); + return true; + } + } + return false; + } +}; +LLParcelHandler gParcelHandler; + // Helper functions static bool is_agent_in_selected_parcel(LLParcel* parcel); static void onSLURLBuilt(std::string& slurl); diff --git a/indra/newview/llremoteparcelrequest.cpp b/indra/newview/llremoteparcelrequest.cpp index 95e3dd6d78..c28c041d0c 100644 --- a/indra/newview/llremoteparcelrequest.cpp +++ b/indra/newview/llremoteparcelrequest.cpp @@ -36,7 +36,6 @@ #include "message.h" -#include "llpanelplace.h" #include "llpanel.h" #include "llhttpclient.h" #include "llsdserialize.h" diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index e9efc49e27..1ee73034f6 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -128,7 +128,6 @@ #include "llfloaterevent.h" #include "llpanelclassified.h" #include "llpanelpick.h" -#include "llpanelplace.h" #include "llpanelgrouplandmoney.h" #include "llpanelgroupnotices.h" #include "llpreview.h" diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp index cbaa7248a2..ad7969681b 100644 --- a/indra/newview/llurldispatcher.cpp +++ b/indra/newview/llurldispatcher.cpp @@ -37,7 +37,6 @@ #include "llcommandhandler.h" #include "llfloaterhelpbrowser.h" #include "llfloaterreg.h" -#include "llfloaterurldisplay.h" #include "llfloaterworldmap.h" #include "llpanellogin.h" #include "llregionhandle.h" @@ -182,10 +181,6 @@ bool LLURLDispatcherImpl::dispatchRegion(const LLSLURL& slurl, bool right_mouse) return true; } - // LLFloaterURLDisplay functionality moved to LLPanelPlaces in Side Tray. - //LLFloaterURLDisplay* slurl_displayp = LLFloaterReg::getTypedInstance<LLFloaterURLDisplay>("preview_url",LLSD()); - //if(slurl_displayp) slurl_displayp->setName(region_name); - // Request a region handle by name LLWorldMapMessage::getInstance()->sendNamedRegionRequest(slurl.getRegion(), LLURLDispatcherImpl::regionNameCallback, @@ -251,21 +246,6 @@ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL& key["z"] = global_pos.mdV[VZ]; LLSideTray::getInstance()->showPanel("panel_places", key); - - // LLFloaterURLDisplay functionality moved to LLPanelPlaces in Side Tray. - -// // display informational floater, allow user to click teleport btn -// LLFloaterURLDisplay* slurl_displayp = LLFloaterReg::getTypedInstance<LLFloaterURLDisplay>("preview_url",LLSD()); -// if(slurl_displayp) -// { -// url_displayp->displayParcelInfo(region_handle, local_pos); -// if(snapshot_id.notNull()) -// { -// url_displayp->setSnapshotDisplay(snapshot_id); -// } -// std::string locationString = llformat("%s %d, %d, %d", region_name.c_str(), x, y, z); -// url_displayp->setLocationString(locationString); -// } } } diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index efe59744bc..0e3ffe1411 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -81,7 +81,6 @@ #include "llfloaternotificationsconsole.h" #include "llfloateropenobject.h" #include "llfloaterpay.h" -#include "llfloaterparcel.h" #include "llfloaterperms.h" #include "llfloaterpostcard.h" #include "llfloaterpostprocess.h" @@ -101,7 +100,6 @@ #include "llfloatertos.h" #include "llfloatertopobjects.h" #include "llfloateruipreview.h" -#include "llfloaterurldisplay.h" #include "llfloatervoicedevicesettings.h" #include "llfloatervoiceeffect.h" #include "llfloaterwater.h" @@ -202,14 +200,12 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>); LLFloaterReg::add("outgoing_call", "floater_outgoing_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutgoingCallDialog>); - LLFloaterReg::add("parcel_info", "floater_preview_url.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterParcelInfo>); LLFloaterPayUtil::registerFloater(); LLFloaterReg::add("postcard", "floater_postcard.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostcard>); LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>); LLFloaterReg::add("prefs_hardware_settings", "floater_hardware_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHardwareSettings>); LLFloaterReg::add("perm_prefs", "floater_perm_prefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPerms>); - LLFloaterReg::add("preview_url", "floater_preview_url.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterURLDisplay>); LLFloaterReg::add("pref_joystick", "floater_joystick.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterJoystick>); LLFloaterReg::add("pref_voicedevicesettings", "floater_device_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVoiceDeviceSettings>); LLFloaterReg::add("preview_anim", "floater_preview_animation.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewAnim>, "preview"); |