From 126f9c3e1a96ed6664048dba7a39bdad14148664 Mon Sep 17 00:00:00 2001
From: maxim_productengine <mnikolenko@productengine.com>
Date: Mon, 21 May 2018 18:41:33 +0300
Subject: [PATCH] SL-857 Remove "Create Auction" functionality from viewer

---
 indra/newview/CMakeLists.txt                  |   2 -
 indra/newview/llfloaterauction.cpp            | 552 ------------------
 indra/newview/llfloaterauction.h              |  86 ---
 indra/newview/llfloaterland.cpp               |  25 +-
 indra/newview/llviewerfloaterreg.cpp          |   2 -
 .../default/xui/en/floater_about_land.xml     |   2 +-
 .../skins/default/xui/en/floater_auction.xml  |  96 ---
 7 files changed, 4 insertions(+), 761 deletions(-)
 delete mode 100644 indra/newview/llfloaterauction.cpp
 delete mode 100644 indra/newview/llfloaterauction.h
 delete mode 100644 indra/newview/skins/default/xui/en/floater_auction.xml

diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 23337ddbfb2..923def78204 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -201,7 +201,6 @@ set(viewer_SOURCE_FILES
     llflickrconnect.cpp
     llfloaterabout.cpp
     llfloaterbvhpreview.cpp
-    llfloaterauction.cpp
     llfloaterautoreplacesettings.cpp
     llfloateravatar.cpp
     llfloateravatarpicker.cpp
@@ -822,7 +821,6 @@ set(viewer_HEADER_FILES
     llflickrconnect.h
     llfloaterabout.h
     llfloaterbvhpreview.h
-    llfloaterauction.h
     llfloaterautoreplacesettings.h
     llfloateravatar.h
     llfloateravatarpicker.h
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
deleted file mode 100644
index 56619e818af..00000000000
--- a/indra/newview/llfloaterauction.cpp
+++ /dev/null
@@ -1,552 +0,0 @@
-/** 
- * @file llfloaterauction.cpp
- * @author James Cook, Ian Wilkes
- * @brief Implementation of the auction floater.
- *
- * $LicenseInfo:firstyear=2004&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-#include "llfloaterauction.h"
-
-#include "llgl.h"
-#include "llimagej2c.h"
-#include "llimagetga.h"
-#include "llparcel.h"
-#include "llvfile.h"
-#include "llvfs.h"
-#include "llwindow.h"
-#include "message.h"
-
-#include "llagent.h"
-#include "llassetstorage.h"
-#include "llcombobox.h"
-#include "llestateinfomodel.h"
-#include "llmimetypes.h"
-#include "llnotifications.h"
-#include "llnotificationsutil.h"
-#include "llsavedsettingsglue.h"
-#include "llviewertexturelist.h"
-#include "llviewerparcelmgr.h"
-#include "llviewerregion.h"
-#include "lluictrlfactory.h"
-#include "llviewerwindow.h"
-#include "llviewerdisplay.h"
-#include "llviewercontrol.h"
-#include "llui.h"
-#include "llrender.h"
-#include "llsdutil.h"
-#include "llsdutil_math.h"
-#include "lltrans.h"
-#include "llcorehttputil.h"
-
-///----------------------------------------------------------------------------
-/// Local function declarations, constants, enums, and typedefs
-///----------------------------------------------------------------------------
-
-void auction_j2c_upload_done(const LLUUID& asset_id,
-							   void* user_data, S32 status, LLExtStat ext_status);
-void auction_tga_upload_done(const LLUUID& asset_id,
-							   void* user_data, S32 status, LLExtStat ext_status);
-
-///----------------------------------------------------------------------------
-/// Class llfloaterauction
-///----------------------------------------------------------------------------
-
-// Default constructor
-LLFloaterAuction::LLFloaterAuction(const LLSD& key)
-  : LLFloater(key),
-	mParcelID(-1)
-{
-	mCommitCallbackRegistrar.add("ClickSnapshot",	boost::bind(&LLFloaterAuction::onClickSnapshot, this));
-	mCommitCallbackRegistrar.add("ClickSellToAnyone",		boost::bind(&LLFloaterAuction::onClickSellToAnyone, this));
-	mCommitCallbackRegistrar.add("ClickStartAuction",		boost::bind(&LLFloaterAuction::onClickStartAuction, this));
-	mCommitCallbackRegistrar.add("ClickResetParcel",		boost::bind(&LLFloaterAuction::onClickResetParcel, this));
-}
-
-// Destroys the object
-LLFloaterAuction::~LLFloaterAuction()
-{
-}
-
-BOOL LLFloaterAuction::postBuild()
-{
-	return TRUE;
-}
-
-void LLFloaterAuction::onOpen(const LLSD& key)
-{
-	initialize();
-}
-
-void LLFloaterAuction::initialize()
-{
-	mParcelUpdateCapUrl.clear();
-
-	mParcelp = LLViewerParcelMgr::getInstance()->getParcelSelection();
-	LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
-	LLParcel* parcelp = mParcelp->getParcel();
-	if(parcelp && region && !parcelp->getForSale())
-	{
-		mParcelHost = region->getHost();
-		mParcelID = parcelp->getLocalID();
-		mParcelUpdateCapUrl = region->getCapability("ParcelPropertiesUpdate");
-
-		getChild<LLUICtrl>("parcel_text")->setValue(parcelp->getName());
-		getChildView("snapshot_btn")->setEnabled(TRUE);
-		getChildView("reset_parcel_btn")->setEnabled(TRUE);
-		getChildView("start_auction_btn")->setEnabled(TRUE);
-
-		U32 estate_id = LLEstateInfoModel::instance().getID();
-		// Only enable "Sell to Anyone" on Teen grid or if we don't know the ID yet
-		getChildView("sell_to_anyone_btn")->setEnabled(estate_id == ESTATE_TEEN || estate_id == 0);
-	}
-	else
-	{
-		mParcelHost.invalidate();
-		if(parcelp && parcelp->getForSale())
-		{
-			getChild<LLUICtrl>("parcel_text")->setValue(getString("already for sale"));
-		}
-		else
-		{
-			getChild<LLUICtrl>("parcel_text")->setValue(LLStringUtil::null);
-		}
-		mParcelID = -1;
-		getChildView("snapshot_btn")->setEnabled(false);
-		getChildView("reset_parcel_btn")->setEnabled(false);
-		getChildView("sell_to_anyone_btn")->setEnabled(false);
-		getChildView("start_auction_btn")->setEnabled(false);
-	}
-
-	mImageID.setNull();
-	mImage = NULL;
-}
-
-void LLFloaterAuction::draw()
-{
-	LLFloater::draw();
-
-	if(!isMinimized() && mImage.notNull()) 
-	{
-		LLView* snapshot_icon = findChildView("snapshot_icon");
-		if (snapshot_icon)
-		{
-			LLRect rect = snapshot_icon->getRect();
-			{
-				gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
-				gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f));
-				rect.stretch(-1);
-			}
-			{
-				LLGLSUIDefault gls_ui;
-				gGL.color3f(1.f, 1.f, 1.f);
-				gl_draw_scaled_image(rect.mLeft,
-									 rect.mBottom,
-									 rect.getWidth(),
-									 rect.getHeight(),
-									 mImage);
-			}
-		}
-	}
-}
-
-
-// static
-void LLFloaterAuction::onClickSnapshot(void* data)
-{
-	LLFloaterAuction* self = (LLFloaterAuction*)(data);
-
-	LLPointer<LLImageRaw> raw = new LLImageRaw;
-
-	gForceRenderLandFence = self->getChild<LLUICtrl>("fence_check")->getValue().asBoolean();
-	BOOL success = gViewerWindow->rawSnapshot(raw,
-											  gViewerWindow->getWindowWidthScaled(),
-											  gViewerWindow->getWindowHeightScaled(),
-											  TRUE, FALSE,
-											  FALSE, FALSE);
-	gForceRenderLandFence = FALSE;
-
-	if (success)
-	{
-		self->mTransactionID.generate();
-		self->mImageID = self->mTransactionID.makeAssetID(gAgent.getSecureSessionID());
-
-		if(!gSavedSettings.getBOOL("QuietSnapshotsToDisk"))
-		{
-			gViewerWindow->playSnapshotAnimAndSound();
-		}
-		LL_INFOS() << "Writing TGA..." << LL_ENDL;
-
-		LLPointer<LLImageTGA> tga = new LLImageTGA;
-		tga->encode(raw);
-		LLVFile::writeFile(tga->getData(), tga->getDataSize(), gVFS, self->mImageID, LLAssetType::AT_IMAGE_TGA);
-		
-		raw->biasedScaleToPowerOfTwo(LLViewerTexture::MAX_IMAGE_SIZE_DEFAULT);
-
-		LL_INFOS() << "Writing J2C..." << LL_ENDL;
-
-		LLPointer<LLImageJ2C> j2c = new LLImageJ2C;
-		j2c->encode(raw, 0.0f);
-		LLVFile::writeFile(j2c->getData(), j2c->getDataSize(), gVFS, self->mImageID, LLAssetType::AT_TEXTURE);
-
-		self->mImage = LLViewerTextureManager::getLocalTexture((LLImageRaw*)raw, FALSE);
-		gGL.getTexUnit(0)->bind(self->mImage);
-		self->mImage->setAddressMode(LLTexUnit::TAM_CLAMP);
-	}
-	else
-	{
-		LL_WARNS() << "Unable to take snapshot" << LL_ENDL;
-	}
-}
-
-// static
-void LLFloaterAuction::onClickStartAuction(void* data)
-{
-	LLFloaterAuction* self = (LLFloaterAuction*)(data);
-
-	if(self->mImageID.notNull())
-	{
-		LLSD parcel_name = self->getChild<LLUICtrl>("parcel_text")->getValue();
-
-	// create the asset
-		std::string* name = new std::string(parcel_name.asString());
-		gAssetStorage->storeAssetData(self->mTransactionID, LLAssetType::AT_IMAGE_TGA,
-									&auction_tga_upload_done,
-									(void*)name,
-									FALSE);
-		self->getWindow()->incBusyCount();
-
-		std::string* j2c_name = new std::string(parcel_name.asString());
-		gAssetStorage->storeAssetData(self->mTransactionID, LLAssetType::AT_TEXTURE,
-								   &auction_j2c_upload_done,
-								   (void*)j2c_name,
-								   FALSE);
-		self->getWindow()->incBusyCount();
-
-		LLNotificationsUtil::add("UploadingAuctionSnapshot");
-
-	}
-	LLMessageSystem* msg = gMessageSystem;
-
-	msg->newMessage("ViewerStartAuction");
-
-	msg->nextBlock("AgentData");
-	msg->addUUID("AgentID", gAgent.getID());
-	msg->addUUID("SessionID", gAgent.getSessionID());
-	msg->nextBlock("ParcelData");
-	msg->addS32("LocalID", self->mParcelID);
-	msg->addUUID("SnapshotID", self->mImageID);
-	msg->sendReliable(self->mParcelHost);
-
-	// clean up floater, and get out
-	self->cleanupAndClose();
-}
-
-
-void LLFloaterAuction::cleanupAndClose()
-{
-	mImageID.setNull();
-	mImage = NULL;
-	mParcelID = -1;
-	mParcelHost.invalidate();
-	closeFloater();
-}
-
-
-
-// static glue
-void LLFloaterAuction::onClickResetParcel(void* data)
-{
-	LLFloaterAuction* self = (LLFloaterAuction*)(data);
-	if (self)
-	{
-		self->doResetParcel();
-	}
-}
-
-
-// Reset all the values for the parcel in preparation for a sale
-void LLFloaterAuction::doResetParcel()
-{
-	LLParcel* parcelp = mParcelp->getParcel();
-	LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
-
-	if (parcelp
-		&& region
-		&& !mParcelUpdateCapUrl.empty())
-	{
-		LLSD body;
-		std::string empty;
-
-		// request new properties update from simulator
-		U32 message_flags = 0x01;
-		body["flags"] = ll_sd_from_U32(message_flags);
-
-		// Set all the default parcel properties for auction
-		body["local_id"] = parcelp->getLocalID();
-
-		U32 parcel_flags = PF_ALLOW_LANDMARK |
-						   PF_ALLOW_FLY	|
-						   PF_CREATE_GROUP_OBJECTS |
-						   PF_ALLOW_ALL_OBJECT_ENTRY |
-						   PF_ALLOW_GROUP_OBJECT_ENTRY |
-						   PF_ALLOW_GROUP_SCRIPTS |
-						   PF_RESTRICT_PUSHOBJECT |
-						   PF_SOUND_LOCAL |
-						   PF_ALLOW_VOICE_CHAT |
-						   PF_USE_ESTATE_VOICE_CHAN;
-
-		body["parcel_flags"] = ll_sd_from_U32(parcel_flags);
-		
-		// Build a parcel name like "Ahern (128,128) PG 4032m"
-		std::ostringstream parcel_name;
-		LLVector3 center_point( parcelp->getCenterpoint() );
-		center_point.snap(0);		// Get rid of fractions
-		parcel_name << region->getName() 
-					<< " ("
-					<< (S32) center_point.mV[VX]
-					<< ","
-					<< (S32) center_point.mV[VY]						
-					<< ") "
-					<< region->getSimAccessString()
-					<< " "
-					<< parcelp->getArea()
-					<< "m";
-
-		std::string new_name(parcel_name.str().c_str());
-		body["name"] = new_name;
-		getChild<LLUICtrl>("parcel_text")->setValue(new_name);	// Set name in dialog as well, since it won't get updated otherwise
-
-		body["sale_price"] = (S32) 0;
-		body["description"] = empty;
-		body["music_url"] = empty;
-		body["media_url"] = empty;
-		body["media_desc"] = empty;
-		body["media_type"] = LLMIMETypes::getDefaultMimeType();
-		body["media_width"] = (S32) 0;
-		body["media_height"] = (S32) 0;
-		body["auto_scale"] = (S32) 0;
-		body["media_loop"] = (S32) 0;
-		body["obscure_media"] = (S32) 0; // OBSOLETE - no longer used
-		body["obscure_music"] = (S32) 0; // OBSOLETE - no longer used
-		body["media_id"] = LLUUID::null;
-		body["group_id"] = MAINTENANCE_GROUP_ID;	// Use maintenance group
-		body["pass_price"] = (S32) 10;		// Defaults to $10
-		body["pass_hours"] = 0.0f;
-		body["category"] = (U8) LLParcel::C_NONE;
-		body["auth_buyer_id"] = LLUUID::null;
-		body["snapshot_id"] = LLUUID::null;
-		body["user_location"] = ll_sd_from_vector3( LLVector3::zero );
-		body["user_look_at"] = ll_sd_from_vector3( LLVector3::zero );
-		body["landing_type"] = (U8) LLParcel::L_DIRECT;
-
-		LL_INFOS() << "Sending parcel update to reset for auction via capability to: "
-			<< mParcelUpdateCapUrl << LL_ENDL;
-
-        LLCoreHttpUtil::HttpCoroutineAdapter::messageHttpPost(mParcelUpdateCapUrl, body,
-            "Parcel reset for auction",
-            "Parcel not set for auction.");
-
-		// Send a message to clear the object return time
-		LLMessageSystem *msg = gMessageSystem;
-		msg->newMessageFast(_PREHASH_ParcelSetOtherCleanTime);
-		msg->nextBlockFast(_PREHASH_AgentData);
-		msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
-		msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
-		msg->nextBlockFast(_PREHASH_ParcelData);
-		msg->addS32Fast(_PREHASH_LocalID, parcelp->getLocalID());
-		msg->addS32Fast(_PREHASH_OtherCleanTime, 5);			// 5 minute object auto-return
-
-		msg->sendReliable(region->getHost());
-
-		// Clear the access lists
-		clearParcelAccessList(parcelp, region, AL_ACCESS);
-		clearParcelAccessList(parcelp, region, AL_BAN);
-		clearParcelAccessList(parcelp, region, AL_ALLOW_EXPERIENCE);
-		clearParcelAccessList(parcelp, region, AL_BLOCK_EXPERIENCE);
-	}
-}
-
-
-
-void LLFloaterAuction::clearParcelAccessList(LLParcel* parcel, LLViewerRegion* region, U32 list)
-{
-	if (!region || !parcel) return;
-
-	LLUUID transactionUUID;
-	transactionUUID.generate();
-
-	LLMessageSystem* msg = gMessageSystem;
-
-	msg->newMessageFast(_PREHASH_ParcelAccessListUpdate);
-	msg->nextBlockFast(_PREHASH_AgentData);
-	msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
-	msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
-	msg->nextBlockFast(_PREHASH_Data);
-	msg->addU32Fast(_PREHASH_Flags, list);
-	msg->addS32(_PREHASH_LocalID, parcel->getLocalID() );
-	msg->addUUIDFast(_PREHASH_TransactionID, transactionUUID);
-	msg->addS32Fast(_PREHASH_SequenceID, 1);			// sequence_id
-	msg->addS32Fast(_PREHASH_Sections, 0);				// num_sections
-
-	// pack an empty block since there will be no data
-	msg->nextBlockFast(_PREHASH_List);
-	msg->addUUIDFast(_PREHASH_ID,  LLUUID::null );
-	msg->addS32Fast(_PREHASH_Time, 0 );
-	msg->addU32Fast(_PREHASH_Flags,	0 );
-
-	msg->sendReliable( region->getHost() );
-}
-
-
-
-// static - 'Sell to Anyone' clicked, throw up a confirmation dialog
-void LLFloaterAuction::onClickSellToAnyone(void* data)
-{
-	LLFloaterAuction* self = (LLFloaterAuction*)(data);
-	if (self)
-	{
-		LLParcel* parcelp = self->mParcelp->getParcel();
-
-		// Do a confirmation
-		S32 sale_price = parcelp->getArea();	// Selling for L$1 per meter
-		S32 area = parcelp->getArea();
-
-		LLSD args;
-		args["LAND_SIZE"] = llformat("%d", area);
-		args["SALE_PRICE"] = llformat("%d", sale_price);
-		args["NAME"] = LLTrans::getString("Anyone");
-
-		LLNotification::Params params("ConfirmLandSaleChange");	// Re-use existing dialog
-		params.substitutions(args)
-			.functor.function(boost::bind(&LLFloaterAuction::onSellToAnyoneConfirmed, self, _1, _2));
-
-		params.name("ConfirmLandSaleToAnyoneChange");
-		
-		// ask away
-		LLNotifications::instance().add(params);
-	}
-}
-
-
-// Sell confirmation clicked
-bool LLFloaterAuction::onSellToAnyoneConfirmed(const LLSD& notification, const LLSD& response)	
-{
-	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
-	if (option == 0)
-	{
-		doSellToAnyone();
-	}
-
-	return false;
-}
-
-
-
-// Reset all the values for the parcel in preparation for a sale
-void LLFloaterAuction::doSellToAnyone()
-{
-	LLParcel* parcelp = mParcelp->getParcel();
-	LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
-
-	if (parcelp
-		&& region
-		&& !mParcelUpdateCapUrl.empty())
-	{
-		LLSD body;
-		std::string empty;
-
-		// request new properties update from simulator
-		U32 message_flags = 0x01;
-		body["flags"] = ll_sd_from_U32(message_flags);
-
-		// Set all the default parcel properties for auction
-		body["local_id"] = parcelp->getLocalID();
-
-		// Set 'for sale' flag
-		U32 parcel_flags = parcelp->getParcelFlags() | PF_FOR_SALE;
-		// Ensure objects not included
-		parcel_flags &= ~PF_FOR_SALE_OBJECTS;
-		body["parcel_flags"] = ll_sd_from_U32(parcel_flags);
-		
-		body["sale_price"] = parcelp->getArea();	// Sell for L$1 per square meter
-		body["auth_buyer_id"] = LLUUID::null;		// To anyone
-
-		LL_INFOS() << "Sending parcel update to sell to anyone for L$1 via capability to: "
-			<< mParcelUpdateCapUrl << LL_ENDL;
-
-        LLCoreHttpUtil::HttpCoroutineAdapter::messageHttpPost(mParcelUpdateCapUrl, body,
-            "Parcel set as sell to everyone.",
-            "Parcel sell to everyone failed.");
-
-		// clean up floater, and get out
-		cleanupAndClose();
-	}
-}
-
-
-///----------------------------------------------------------------------------
-/// Local function definitions
-///----------------------------------------------------------------------------
-
-void auction_tga_upload_done(const LLUUID& asset_id, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
-{
-	std::string* name = (std::string*)(user_data);
-	LL_INFOS() << "Upload of asset '" << *name << "' " << asset_id
-			<< " returned " << status << LL_ENDL;
-	delete name;
-
-	gViewerWindow->getWindow()->decBusyCount();
-
-	if (0 == status)
-	{
-		LLNotificationsUtil::add("UploadWebSnapshotDone");
-	}
-	else
-	{
-		LLSD args;
-		args["REASON"] = std::string(LLAssetStorage::getErrorString(status));
-		LLNotificationsUtil::add("UploadAuctionSnapshotFail", args);
-	}
-}
-
-void auction_j2c_upload_done(const LLUUID& asset_id, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
-{
-	std::string* name = (std::string*)(user_data);
-	LL_INFOS() << "Upload of asset '" << *name << "' " << asset_id
-			<< " returned " << status << LL_ENDL;
-	delete name;
-
-	gViewerWindow->getWindow()->decBusyCount();
-
-	if (0 == status)
-	{
-		LLNotificationsUtil::add("UploadSnapshotDone");
-	}
-	else
-	{
-		LLSD args;
-		args["REASON"] = std::string(LLAssetStorage::getErrorString(status));
-		LLNotificationsUtil::add("UploadAuctionSnapshotFail", args);
-	}
-}
diff --git a/indra/newview/llfloaterauction.h b/indra/newview/llfloaterauction.h
deleted file mode 100644
index c83a11ba8b9..00000000000
--- a/indra/newview/llfloaterauction.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/** 
- * @file llfloaterauction.h
- * @author James Cook, Ian Wilkes
- * @brief llfloaterauction class header file
- *
- * $LicenseInfo:firstyear=2004&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLFLOATERAUCTION_H
-#define LL_LLFLOATERAUCTION_H
-
-#include "llfloater.h"
-#include "lluuid.h"
-#include "llpointer.h"
-#include "llviewertexture.h"
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// Class LLFloaterAuction
-//
-// Class which holds the functionality to start auctions.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLParcelSelection;
-class LLParcel;
-class LLViewerRegion;
-
-class LLFloaterAuction : public LLFloater
-{
-	friend class LLFloaterReg;
-public:
-	// LLFloater interface
-	/*virtual*/ void onOpen(const LLSD& key);
-	/*virtual*/ void draw();
-
-private:
-	
-	LLFloaterAuction(const LLSD& key);
-	~LLFloaterAuction();
-	
-	void initialize();
-
-	static void onClickSnapshot(void* data);
-	static void onClickResetParcel(void* data);
-	static void onClickSellToAnyone(void* data);		// Sell to anyone clicked
-	bool onSellToAnyoneConfirmed(const LLSD& notification, const LLSD& response);	// Sell confirmation clicked
-	static void onClickStartAuction(void* data);
-
-	/*virtual*/ BOOL postBuild();
-
-	void doResetParcel();
-	void doSellToAnyone();
-	void clearParcelAccessList( LLParcel* parcel, LLViewerRegion* region, U32 list);
-	void cleanupAndClose();
-
-private:
-
-	LLTransactionID mTransactionID;
-	LLAssetID mImageID;
-	LLPointer<LLViewerTexture> mImage;
-	LLSafeHandle<LLParcelSelection> mParcelp;
-	S32 mParcelID;
-	LLHost mParcelHost;
-
-	std::string mParcelUpdateCapUrl;	// "ParcelPropertiesUpdate" capability
-};
-
-
-#endif // LL_LLFLOATERAUCTION_H
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 88b3fb7b968..596b04c31cb 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -45,7 +45,6 @@
 #include "llcombobox.h"
 #include "llfloaterreg.h"
 #include "llfloateravatarpicker.h"
-#include "llfloaterauction.h"
 #include "llfloatergroups.h"
 #include "llfloaterscriptlimits.h"
 #include "llavataractions.h"
@@ -79,6 +78,7 @@
 #include "llpanelexperiencelisteditor.h"
 #include "llpanelexperiencepicker.h"
 #include "llexperiencecache.h"
+#include "llweb.h"
 
 #include "llgroupactions.h"
 
@@ -542,7 +542,6 @@ void LLPanelLandGeneral::refresh()
 
 	mBtnDeedToGroup->setEnabled(FALSE);
 	mBtnSetGroup->setEnabled(FALSE);
-	mBtnStartAuction->setEnabled(FALSE);
 
 	mCheckDeedToGroup	->set(FALSE);
 	mCheckDeedToGroup	->setEnabled(FALSE);
@@ -640,7 +639,6 @@ void LLPanelLandGeneral::refresh()
 			mTextClaimDate->setEnabled(FALSE);
 			mTextGroup->setText(getString("none_text"));
 			mTextGroup->setEnabled(FALSE);
-			mBtnStartAuction->setEnabled(FALSE);
 		}
 		else
 		{
@@ -692,11 +690,6 @@ void LLPanelLandGeneral::refresh()
 			LLStringUtil::format (claim_date_str, substitution);
 			mTextClaimDate->setText(claim_date_str);
 			mTextClaimDate->setEnabled(is_leased);
-
-			BOOL enable_auction = (gAgent.getGodLevel() >= GOD_LIAISON)
-								  && (owner_id == GOVERNOR_LINDEN_ID)
-								  && (parcel->getAuctionID() == 0);
-			mBtnStartAuction->setEnabled(enable_auction);
 		}
 
 		// Display options
@@ -1024,20 +1017,8 @@ void LLPanelLandGeneral::onClickBuyPass(void* data)
 // static
 void LLPanelLandGeneral::onClickStartAuction(void* data)
 {
-	LLPanelLandGeneral* panelp = (LLPanelLandGeneral*)data;
-	LLParcel* parcelp = panelp->mParcel->getParcel();
-	if(parcelp)
-	{
-		if(parcelp->getForSale())
-		{
-			LLNotificationsUtil::add("CannotStartAuctionAlreadyForSale");
-		}
-		else
-		{
-			//LLFloaterAuction::showInstance();
-			LLFloaterReg::showInstance("auction");
-		}
-	}
+	std::string auction_url = "https://places.[GRID]/auctions/";
+	LLWeb::loadURLExternal(LLWeb::expandURLSubstitutions(auction_url, LLSD()));
 }
 
 // static
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 0ebacddd9b1..55317bdaf59 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -34,7 +34,6 @@
 #include "llcompilequeue.h"
 #include "llfasttimerview.h"
 #include "llfloaterabout.h"
-#include "llfloaterauction.h"
 #include "llfloaterautoreplacesettings.h"
 #include "llfloateravatar.h"
 #include "llfloateravatarpicker.h"
@@ -194,7 +193,6 @@ void LLViewerFloaterReg::registerFloaters()
 	LLFloaterReg::add("about_land", "floater_about_land.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLand>);
 	LLFloaterReg::add("appearance", "floater_my_appearance.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
 	LLFloaterReg::add("associate_listing", "floater_associate_listing.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAssociateListing>);
-	LLFloaterReg::add("auction", "floater_auction.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAuction>);
 	LLFloaterReg::add("avatar", "floater_avatar.xml",  (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatar>);
 	LLFloaterReg::add("avatar_picker", "floater_avatar_picker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarPicker>);
 	LLFloaterReg::add("avatar_render_settings", "floater_avatar_render_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarRenderSettings>);
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 535af317d99..cf843a07a60 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -502,7 +502,7 @@
              name="Buy Land..."
              width="130" />
 			<button
-             enabled="false"
+             enabled="true"
              follows="left|top"
              height="23"
              label="Linden Sale"
diff --git a/indra/newview/skins/default/xui/en/floater_auction.xml b/indra/newview/skins/default/xui/en/floater_auction.xml
deleted file mode 100644
index 9c6d114c4ca..00000000000
--- a/indra/newview/skins/default/xui/en/floater_auction.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_resize="true"
- height="412"
- layout="topleft"
- min_height="412"
- min_width="420"
- name="floater_auction"
- help_topic="floater_auction"
- title="START LINDEN LAND SALE"
- width="420">
-    <floater.string
-     name="already for sale">
-        You cannot auction parcels which are already for sale.
-    </floater.string>
-    <icon
-     bottom="280"
-     follows="left|right|top|bottom"
-     layout="topleft"
-     left="4"
-     name="snapshot_icon"
-     right="-4"
-     top="24" />
-    <text
-     follows="left|right|bottom"
-     height="16"
-     layout="topleft"
-     left_delta="0"
-     name="parcel_text"
-     top_pad="12"
-     width="400" />
-    <check_box
-     control_name="AuctionShowFence" 
-     follows="left|bottom"
-     height="16"
-     initial_value="true"
-     label="Include yellow selection fence"
-     layout="topleft"
-     left_delta="0"
-     name="fence_check"
-     top_pad="12"
-     width="199" />
-    <button
-     follows="left|bottom"
-     height="20"
-     label="Snapshot"
-     label_selected="Snapshot"
-     layout="topleft"
-     left_delta="0"
-     name="snapshot_btn"
-     top_pad="4"
-     width="150">
-      <button.commit_callback
-         function="ClickSnapshot" />
-    </button>
-    <button
-     follows="left|bottom"
-     height="20"
-     label="Sell to Anyone"
-     label_selected="Sell to Anyone"
-     layout="topleft"
-     left_delta="0"
-     name="sell_to_anyone_btn"
-     top_pad="4"
-     width="150">
-      <button.commit_callback
-         function="ClickSellToAnyone" />
-    </button>
-    <button
-     follows="left|bottom"
-     height="20"
-     label="Clear Settings"
-     label_selected="Clear Settings"
-     layout="topleft"
-     left_delta="0"
-     name="reset_parcel_btn"
-     top_pad="4"
-     width="150">
-      <button.commit_callback
-         function="ClickResetParcel" />
-    </button>
-    <button
-     follows="left|bottom"
-     height="20"
-     label="Start Auction"
-     label_selected="Start Auction"
-     layout="topleft"
-     left_pad="4"
-     name="start_auction_btn"
-     top_delta="0"
-     width="150">
-      <button.commit_callback
-          function="ClickStartAuction" />
-    </button>
-</floater>
-- 
GitLab