From f5bd2109c27b098dd73a9578f1f032b6ff9e4c2d Mon Sep 17 00:00:00 2001
From: "simon@lindenlab.com" <simon@lindenlab.com>
Date: Thu, 7 Jul 2011 17:42:54 -0700
Subject: [PATCH] Revert code fo ER-1016 - "Remove ability for anyone to edit
 terrain" and muck with the "About Land" Options tab one more time.

---
 indra/newview/llfloaterland.cpp               | 15 ++++--
 indra/newview/llfloaterland.h                 |  1 +
 .../default/xui/en/floater_about_land.xml     | 47 +++++++++++--------
 3 files changed, 41 insertions(+), 22 deletions(-)

diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 45d215664e..b373a6afa0 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -1804,6 +1804,7 @@ LLPanelLandOptions::LLPanelLandOptions(LLParcelSelectionHandle& parcel)
 	mCheckEditGroupObjects(NULL),
 	mCheckAllObjectEntry(NULL),
 	mCheckGroupObjectEntry(NULL),
+	mCheckEditLand(NULL),
 	mCheckSafe(NULL),
 	mCheckFly(NULL),
 	mCheckGroupScripts(NULL),
@@ -1837,8 +1838,8 @@ BOOL LLPanelLandOptions::postBuild()
 	mCheckGroupObjectEntry = getChild<LLCheckBoxCtrl>( "group object entry check");
 	childSetCommitCallback("group object entry check", onCommitAny, this);
 	
-//	mCheckEditLand = getChild<LLCheckBoxCtrl>( "edit land check");
-//	childSetCommitCallback("edit land check", onCommitAny, this);
+	mCheckEditLand = getChild<LLCheckBoxCtrl>( "edit land check");
+	childSetCommitCallback("edit land check", onCommitAny, this);
 
 	
 	mCheckGroupScripts = getChild<LLCheckBoxCtrl>( "check group scripts");
@@ -1953,6 +1954,9 @@ void LLPanelLandOptions::refresh()
 		mCheckGroupObjectEntry	->set(FALSE);
 		mCheckGroupObjectEntry	->setEnabled(FALSE);
 
+		mCheckEditLand		->set(FALSE);
+		mCheckEditLand		->setEnabled(FALSE);
+		
 		mCheckSafe			->set(FALSE);
 		mCheckSafe			->setEnabled(FALSE);
 
@@ -2001,6 +2005,10 @@ void LLPanelLandOptions::refresh()
 		mCheckGroupObjectEntry	->set( parcel->getAllowGroupObjectEntry() ||  parcel->getAllowAllObjectEntry());
 		mCheckGroupObjectEntry	->setEnabled( can_change_options && !parcel->getAllowAllObjectEntry() );
 
+		BOOL can_change_terraform = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_EDIT);
+		mCheckEditLand		->set( parcel->getAllowTerraform() );
+		mCheckEditLand		->setEnabled( can_change_terraform );
+		
 		mCheckSafe			->set( !parcel->getAllowDamage() );
 		mCheckSafe			->setEnabled( can_change_options );
 
@@ -2225,6 +2233,7 @@ void LLPanelLandOptions::onCommitAny(LLUICtrl *ctrl, void *userdata)
 	BOOL create_group_objects	= self->mCheckEditGroupObjects->get() || self->mCheckEditObjects->get();
 	BOOL all_object_entry		= self->mCheckAllObjectEntry->get();
 	BOOL group_object_entry	= self->mCheckGroupObjectEntry->get() || self->mCheckAllObjectEntry->get();
+	BOOL allow_terraform	= self->mCheckEditLand->get();
 	BOOL allow_damage		= !self->mCheckSafe->get();
 	BOOL allow_fly			= self->mCheckFly->get();
 	BOOL allow_landmark		= TRUE; // cannot restrict landmark creation
@@ -2254,7 +2263,7 @@ void LLPanelLandOptions::onCommitAny(LLUICtrl *ctrl, void *userdata)
 	parcel->setParcelFlag(PF_CREATE_GROUP_OBJECTS, create_group_objects);
 	parcel->setParcelFlag(PF_ALLOW_ALL_OBJECT_ENTRY, all_object_entry);
 	parcel->setParcelFlag(PF_ALLOW_GROUP_OBJECT_ENTRY, group_object_entry);
-	parcel->setParcelFlag(PF_ALLOW_TERRAFORM, FALSE);		// was allow_terraform
+	parcel->setParcelFlag(PF_ALLOW_TERRAFORM, allow_terraform);
 	parcel->setParcelFlag(PF_ALLOW_DAMAGE, allow_damage);
 	parcel->setParcelFlag(PF_ALLOW_FLY, allow_fly);
 	parcel->setParcelFlag(PF_ALLOW_LANDMARK, allow_landmark);
diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h
index 4f1c10274a..6fceca1acd 100644
--- a/indra/newview/llfloaterland.h
+++ b/indra/newview/llfloaterland.h
@@ -330,6 +330,7 @@ private:
 	LLCheckBoxCtrl*	mCheckEditGroupObjects;
 	LLCheckBoxCtrl*	mCheckAllObjectEntry;
 	LLCheckBoxCtrl*	mCheckGroupObjectEntry;
+	LLCheckBoxCtrl*	mCheckEditLand;
 	LLCheckBoxCtrl*	mCheckSafe;
 	LLCheckBoxCtrl*	mCheckFly;
 	LLCheckBoxCtrl*	mCheckGroupScripts;
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 ac186d7737..df6a9d82e2 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -1206,7 +1206,8 @@ Only large parcels can be listed in search.
             </panel.string>
             <panel.string
              name="see_avs_text">
-                See and chat with avatars on this parcel
+                 Allow avatars on other parcels to see
+ and chat with avatars on this parcel
             </panel.string>
             <text
              type="string"
@@ -1218,9 +1219,18 @@ Only large parcels can be listed in search.
              left="10"
              name="allow_label"
              top="10"
-             width="270">
+             width="278">
                 Allow other Residents to:
             </text>
+            <check_box
+             height="16"
+             label="Edit Terrain"
+             layout="topleft"
+             left="14"
+             name="edit land check"
+             tool_tip="If checked, anyone can terraform your land. It is best to leave this unchecked, as you can always edit your own land."
+             top_pad="4"
+             width="147i" />
             <check_box
              height="16"
              label="Fly"
@@ -1228,7 +1238,7 @@ Only large parcels can be listed in search.
              name="check fly"
              tool_tip="If checked, Residents can fly on your land. If unchecked, they can only fly into and over your land."
              left_pad="4"
-             width="128" />
+             width="150" />
             <text
              type="string"
              length="1"
@@ -1308,15 +1318,6 @@ Only large parcels can be listed in search.
              name="check group scripts"
              top_delta="0"
              width="70" />
-          <check_box
-             height="16"
-             label="See Avatars"
-             layout="topleft"
-             left="14"
-             name="SeeAvatarsCheck"
-             tool_tip="Allow avatars on other parcels to see and chat with avatars on this parcel."
-             top_pad="5"
-             width="119" />
            <text
              type="string"
              text_color="white"
@@ -1337,7 +1338,7 @@ Only large parcels can be listed in search.
              name="check safe"
              tool_tip="If checked, sets the land to Safe, disabling damage combat. If cleared, damage combat is enabled."
              top_pad="5"
-             width="280" />
+             width="200" />
             <check_box
              height="16"
              label="No Pushing"
@@ -1354,7 +1355,7 @@ Only large parcels can be listed in search.
              left="14"
              name="ShowDirectoryCheck"
              tool_tip="Let people see this parcel in search results"
-             width="280" />
+             width="430" />
             <combo_box
              enabled="false"
              height="23"
@@ -1514,14 +1515,23 @@ Only large parcels can be listed in search.
              fallback_image="default_land_picture.j2c" 
              tool_tip="Click to choose a picture"
              width="195" />
+            <check_box
+             height="32"
+             label="See Avatars"
+             layout="topleft"
+             left="230"
+             top="164"
+             name="SeeAvatarsCheck"
+             tool_tip="Allows avatars on other parcels to see and chat with avatars on this parcel, and you to see and chat with them."
+             width="120" />
             <text
              type="string"
              length="1"
              follows="left|top"
              height="16"
              layout="topleft"
-             left="220"
-             top="180"
+             left="230"
+             top="230"
              text_color="white"
              name="landing_point"
              word_wrap="true"
@@ -1535,7 +1545,7 @@ Only large parcels can be listed in search.
              label_selected="Set"
              layout="topleft"
              name="Set"
-             right="-68"
+             left="230"
              tool_tip="Sets the landing point where visitors arrive. Sets to your avatar&apos;s location inside this parcel."
              width="50" />
             <button
@@ -1547,7 +1557,6 @@ Only large parcels can be listed in search.
              left_pad="5"
              name="Clear"
              tool_tip="Clear the landing point"
-             right="-10"
              width="55" />
             <text
              type="string"
@@ -1556,7 +1565,7 @@ Only large parcels can be listed in search.
              follows="left|top"
              height="16"
              layout="topleft"
-             left="220"
+             left="230"
              top_pad="10"
              name="Teleport Routing: "
              width="200">
-- 
GitLab