NORSPEC-292 fix issues with managing LLNetworkData::PARAMS_LIGHT_IMAGE when demoting spotlights by removing their tex

master
Graham Linden 2013-07-02 13:12:08 -07:00
parent dd31d9941f
commit f1c04467f7
3 changed files with 27 additions and 5 deletions

View File

@ -710,9 +710,20 @@ void LLPanelVolume::onLightCancelColor(const LLSD& data)
void LLPanelVolume::onLightCancelTexture(const LLSD& data)
{
LLTextureCtrl* LightTextureCtrl = getChild<LLTextureCtrl>("light texture control");
if (LightTextureCtrl)
{
LightTextureCtrl->setImageAssetID(mLightSavedTexture);
LightTextureCtrl->setImageAssetID(LLUUID::null);
}
LLVOVolume *volobjp = (LLVOVolume *) mObject.get();
if(volobjp)
{
// Cancel the light texture as requested
// NORSPEC-292
//
volobjp->setLightTextureID(LLUUID::null);
volobjp->setIsLight(TRUE,TRUE);
}
}

View File

@ -133,7 +133,8 @@ public:
PermissionMask getFilterPermMask();
void updateFilterPermMask();
void commitIfImmediateSet();
void commitCancel();
void onFilterEdit(const std::string& search_string );
void setCanApply(bool can_preview, bool can_apply);
@ -706,6 +707,14 @@ void LLFloaterTexturePicker::commitIfImmediateSet()
}
}
void LLFloaterTexturePicker::commitCancel()
{
if (!mNoCopyTextureSelected && mOwner && mCanApply)
{
mOwner->onFloaterCommit(LLTextureCtrl::TEXTURE_CANCEL);
}
}
// static
void LLFloaterTexturePicker::onBtnSetToDefault(void* userdata)
{
@ -733,7 +742,7 @@ void LLFloaterTexturePicker::onBtnNone(void* userdata)
{
LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata;
self->setImageID( LLUUID::null );
self->commitIfImmediateSet();
self->commitCancel();
}
/*

View File

@ -2590,6 +2590,7 @@ void LLVOVolume::setLightTextureID(LLUUID id)
if (hasLightTexture())
{
setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE, FALSE, true);
parameterChanged(LLNetworkData::PARAMS_LIGHT_IMAGE, true);
mLightTexture = NULL;
}
}
@ -2607,7 +2608,8 @@ void LLVOVolume::setSpotLightParams(LLVector3 params)
void LLVOVolume::setIsLight(BOOL is_light)
{
if (is_light != getIsLight())
BOOL was_light = getIsLight();
if (is_light != was_light)
{
if (is_light)
{
@ -2792,7 +2794,7 @@ void LLVOVolume::updateSpotLightPriority()
bool LLVOVolume::isLightSpotlight() const
{
LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE);
if (params)
if (params && getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE))
{
return params->isLightSpotlight();
}