MAINT-6082 Value checks for Viewer terrain Elevation Ranges
parent
ec7f17d5b0
commit
ca5026c60d
|
|
@ -8149,6 +8149,17 @@
|
|||
<key>Value</key>
|
||||
<integer>256</integer>
|
||||
</map>
|
||||
<key>RegionCheckTextureHeights</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Don't allow user to set low heights greater than high</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RememberPassword</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -1184,6 +1184,22 @@ BOOL LLPanelRegionTerrainInfo::validateTextureSizes()
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPanelRegionTerrainInfo::validateTextureHeights()
|
||||
{
|
||||
for (S32 i = 0; i < CORNER_COUNT; ++i)
|
||||
{
|
||||
std::string low = llformat("height_start_spin_%d", i);
|
||||
std::string high = llformat("height_range_spin_%d", i);
|
||||
|
||||
if (getChild<LLUICtrl>(low)->getValue().asReal() > getChild<LLUICtrl>(high)->getValue().asReal())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// LLPanelRegionTerrainInfo
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
|
@ -1216,6 +1232,9 @@ BOOL LLPanelRegionTerrainInfo::postBuild()
|
|||
childSetAction("upload_raw_btn", onClickUploadRaw, this);
|
||||
childSetAction("bake_terrain_btn", onClickBakeTerrain, this);
|
||||
|
||||
mAskedTextureHeights = false;
|
||||
mConfirmedTextureHeights = false;
|
||||
|
||||
return LLPanelRegionInfo::postBuild();
|
||||
}
|
||||
|
||||
|
|
@ -1298,6 +1317,21 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate()
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
// Check if terrain Elevation Ranges are correct
|
||||
if (gSavedSettings.getBOOL("RegionCheckTextureHeights") && !validateTextureHeights())
|
||||
{
|
||||
if (!mAskedTextureHeights)
|
||||
{
|
||||
LLNotificationsUtil::add("ConfirmTextureHeights", LLSD(), LLSD(), boost::bind(&LLPanelRegionTerrainInfo::callbackTextureHeights, this, _1, _2));
|
||||
mAskedTextureHeights = true;
|
||||
return FALSE;
|
||||
}
|
||||
else if (!mConfirmedTextureHeights)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
LLTextureCtrl* texture_ctrl;
|
||||
std::string id_str;
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
|
|
@ -1338,6 +1372,29 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate()
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
bool LLPanelRegionTerrainInfo::callbackTextureHeights(const LLSD& notification, const LLSD& response)
|
||||
{
|
||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
if (option == 0) // ok
|
||||
{
|
||||
mConfirmedTextureHeights = true;
|
||||
}
|
||||
else if (option == 1) // cancel
|
||||
{
|
||||
mConfirmedTextureHeights = false;
|
||||
}
|
||||
else if (option == 2) // don't ask
|
||||
{
|
||||
gSavedSettings.setBOOL("RegionCheckTextureHeights", FALSE);
|
||||
mConfirmedTextureHeights = true;
|
||||
}
|
||||
|
||||
onBtnSet();
|
||||
|
||||
mAskedTextureHeights = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPanelRegionTerrainInfo::onClickDownloadRaw(void* data)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ public:
|
|||
void setEnvControls(bool available); // Whether environment settings are available for this region
|
||||
|
||||
BOOL validateTextureSizes();
|
||||
BOOL validateTextureHeights();
|
||||
|
||||
//static void onChangeAnything(LLUICtrl* ctrl, void* userData); // callback for any change, to enable commit button
|
||||
|
||||
|
|
@ -246,6 +247,11 @@ public:
|
|||
static void onClickUploadRaw(void*);
|
||||
static void onClickBakeTerrain(void*);
|
||||
bool callbackBakeTerrain(const LLSD& notification, const LLSD& response);
|
||||
bool callbackTextureHeights(const LLSD& notification, const LLSD& response);
|
||||
|
||||
private:
|
||||
bool mConfirmedTextureHeights;
|
||||
bool mAskedTextureHeights;
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -3578,6 +3578,19 @@ Do you really want to bake the current terrain, make it the center for terrain r
|
|||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="ConfirmTextureHeights"
|
||||
type="alertmodal">
|
||||
You're about to use low values greater than high ones for Elevation Ranges. Proceed?
|
||||
<tag>confirm</tag>
|
||||
<usetemplate
|
||||
name="yesnocancelbuttons"
|
||||
yestext="Ok"
|
||||
notext="Cancel"
|
||||
canceltext="Don't ask"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="MaxAllowedAgentOnRegion"
|
||||
|
|
|
|||
Loading…
Reference in New Issue