diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llpanelface.cpp | 22 | ||||
| -rw-r--r-- | indra/newview/llselectmgr.cpp | 24 | ||||
| -rw-r--r-- | indra/newview/llselectmgr.h | 4 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 20 | 
4 files changed, 56 insertions, 14 deletions
| diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index 7d6015f557..702a8a82e2 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -520,7 +520,11 @@ void LLPanelFace::sendTexture()  		{  			id = mTextureCtrl->getImageAssetID();  		} -		LLSelectMgr::getInstance()->selectionSetImage(id); +        if (!LLSelectMgr::getInstance()->selectionSetImage(id)) +        { +            // need to refresh value in texture ctrl +            refresh(); +        }  	}  } @@ -3032,7 +3036,11 @@ void LLPanelFace::onCommitPbr(const LLSD& data)          {              id = pbr_ctrl->getImageAssetID();          } -        LLSelectMgr::getInstance()->selectionSetGLTFMaterial(id); +        if (!LLSelectMgr::getInstance()->selectionSetGLTFMaterial(id)) +        { +            // If failed to set material, refresh pbr_ctrl's value +            refresh(); +        }      }  } @@ -3056,8 +3064,14 @@ void LLPanelFace::onSelectPbr(const LLSD& data)          {              id = pbr_ctrl->getImageAssetID();          } -        LLSelectMgr::getInstance()->selectionSetGLTFMaterial(id); -        LLSelectedTEMaterial::setMaterialID(this, id); +        if (LLSelectMgr::getInstance()->selectionSetGLTFMaterial(id)) +        { +            LLSelectedTEMaterial::setMaterialID(this, id); +        } +        else +        { +            refresh(); +        }      }  } diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index dca341e5a2..3b20ed1e00 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -1821,7 +1821,7 @@ void LLObjectSelection::applyNoCopyPbrMaterialToTEs(LLViewerInventoryItem* item)  // selectionSetImage()  //-----------------------------------------------------------------------------  // *TODO: re-arch texture applying out of lltooldraganddrop -void LLSelectMgr::selectionSetImage(const LLUUID& imageid) +bool LLSelectMgr::selectionSetImage(const LLUUID& imageid)  {  	// First for (no copy) textures and multiple object selection  	LLViewerInventoryItem* item = gInventory.getItem(imageid); @@ -1829,9 +1829,11 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)  		&& !item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID())  		&& (mSelectedObjects->getNumNodes() > 1) )  	{ -		LL_WARNS() << "Attempted to apply no-copy texture to multiple objects" -				<< LL_ENDL; -		return; +         LL_DEBUGS() << "Attempted to apply no-copy texture " << imageid +             << " to multiple objects" << LL_ENDL; + +        LLNotificationsUtil::add("FailedToApplyTextureNoCopyToMultiple"); +        return false;  	}  	struct f : public LLSelectedTEFunctor @@ -1896,12 +1898,14 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)  		}  	} sendfunc(item);  	getSelection()->applyToObjects(&sendfunc); + +    return true;  }  //-----------------------------------------------------------------------------  // selectionSetGLTFMaterial()  //----------------------------------------------------------------------------- -void LLSelectMgr::selectionSetGLTFMaterial(const LLUUID& mat_id) +bool LLSelectMgr::selectionSetGLTFMaterial(const LLUUID& mat_id)  {      // First for (no copy) textures and multiple object selection      LLViewerInventoryItem* item = gInventory.getItem(mat_id); @@ -1909,9 +1913,11 @@ void LLSelectMgr::selectionSetGLTFMaterial(const LLUUID& mat_id)          && !item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID())          && (mSelectedObjects->getNumNodes() > 1))      { -        LL_WARNS() << "Attempted to apply no-copy material to multiple objects" -            << LL_ENDL; -        return; +        LL_DEBUGS() << "Attempted to apply no-copy material " << mat_id +            << "to multiple objects" << LL_ENDL; + +        LLNotificationsUtil::add("FailedToApplyGLTFNoCopyToMultiple"); +        return false;      }      struct f : public LLSelectedTEFunctor @@ -1983,6 +1989,8 @@ void LLSelectMgr::selectionSetGLTFMaterial(const LLUUID& mat_id)      getSelection()->applyToObjects(&sendfunc);      LLGLTFMaterialList::flushUpdates(); + +    return true;  }  //----------------------------------------------------------------------------- diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index ca9a32f0db..327134a487 100644 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -634,8 +634,8 @@ public:  	void selectionSetDensity(F32 density);  	void selectionSetRestitution(F32 restitution);  	void selectionSetMaterial(U8 material); -	void selectionSetImage(const LLUUID& imageid); // could be item or asset id -    void selectionSetGLTFMaterial(const LLUUID& mat_id); // could be item or asset id +	bool selectionSetImage(const LLUUID& imageid); // could be item or asset id +    bool selectionSetGLTFMaterial(const LLUUID& mat_id); // could be item or asset id  	void selectionSetColor(const LLColor4 &color);  	void selectionSetColorOnly(const LLColor4 &color); // Set only the RGB channels  	void selectionSetAlphaOnly(const F32 alpha); // Set only the alpha channel diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index f77b235408..c4abd27a01 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -9213,6 +9213,26 @@ Paste failed. [REASON]    <notification     icon="alertmodal.tga" +   name="FailedToApplyTextureNoCopyToMultiple" +   type="alertmodal"> +Failed to apply texture. You can not apply a no-copy texture to multiple objects. +   <usetemplate +    name="okbutton" +    yestext="OK"/> +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="FailedToApplyGLTFNoCopyToMultiple" +   type="alertmodal"> +Failed to apply GLTF material. You can not apply a no-copy material to multiple objects. +   <usetemplate +    name="okbutton" +    yestext="OK"/> +  </notification> + +  <notification +   icon="alertmodal.tga"     name="FacePasteTexturePermissions"     type="alertmodal">      You applied a texture with limited permissions, object will inherit permissions from texture. | 
