diff options
| -rwxr-xr-x | indra/newview/llpreviewnotecard.cpp | 6 | ||||
| -rwxr-xr-x | indra/newview/llpreviewtexture.cpp | 38 | 
2 files changed, 30 insertions, 14 deletions
| diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index 20c43bc432..ba9845ef04 100755 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -94,7 +94,8 @@ BOOL LLPreviewNotecard::postBuild()  	if (item)  	{  		getChild<LLUICtrl>("desc")->setValue(item->getDescription()); -		getChildView("Delete")->setEnabled(true); +		BOOL source_library = mObjectUUID.isNull() && gInventory.isObjectDescendentOf(item->getUUID(), gInventory.getLibraryRootFolderID()); +		getChildView("Delete")->setEnabled(!source_library);  	}  	getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe); @@ -219,6 +220,7 @@ void LLPreviewNotecard::loadAsset()  		BOOL is_owner = gAgent.allowOperation(PERM_OWNER, perm, GP_OBJECT_MANIPULATE);  		BOOL allow_copy = gAgent.allowOperation(PERM_COPY, perm, GP_OBJECT_MANIPULATE);  		BOOL allow_modify = canModify(mObjectUUID, item); +		BOOL source_library = mObjectUUID.isNull() && gInventory.isObjectDescendentOf(mItemUUID, gInventory.getLibraryRootFolderID());  		if (allow_copy || gAgent.isGodlike())  		{ @@ -288,7 +290,7 @@ void LLPreviewNotecard::loadAsset()  			getChildView("lock")->setVisible( TRUE);  		} -		if(allow_modify || is_owner) +		if((allow_modify || is_owner) && !source_library)  		{  			getChildView("Delete")->setEnabled(TRUE);  		} diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 2a2c51be40..645a77e42a 100755 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -38,6 +38,7 @@  #include "llimagetga.h"  #include "llimagepng.h"  #include "llinventory.h" +#include "llinventorymodel.h"  #include "llnotificationsutil.h"  #include "llresmgr.h"  #include "lltrans.h" @@ -120,18 +121,22 @@ BOOL LLPreviewTexture::postBuild()  	childSetAction("save_tex_btn", LLPreviewTexture::onSaveAsBtn, this);  	getChildView("save_tex_btn")->setVisible( true);  	getChildView("save_tex_btn")->setEnabled(canSaveAs()); -	 -	if (!mCopyToInv)  -	{ -		const LLInventoryItem* item = getItem(); -		 -		if (item) -		{ -			childSetCommitCallback("desc", LLPreview::onText, this); -			getChild<LLUICtrl>("desc")->setValue(item->getDescription()); -			getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe); -		} -	} + +    const LLInventoryItem* item = getItem(); +    if (item) +    { +        if (!mCopyToInv) +        { +            childSetCommitCallback("desc", LLPreview::onText, this); +            getChild<LLUICtrl>("desc")->setValue(item->getDescription()); +            getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe); +        } +        BOOL source_library = mObjectUUID.isNull() && gInventory.isObjectDescendentOf(item->getUUID(), gInventory.getLibraryRootFolderID()); +        if (source_library) +        { +            getChildView("Discard")->setEnabled(false); +        } +    }  	// Fill in ratios list with common aspect ratio values  	mRatiosList.clear(); @@ -526,6 +531,15 @@ void LLPreviewTexture::loadAsset()  		// check that we can copy inworld items into inventory  		getChildView("Keep")->setEnabled(mIsCopyable);  	} +	else +	{ +		// check that we can remove item +		BOOL source_library = gInventory.isObjectDescendentOf(mItemUUID, gInventory.getLibraryRootFolderID()); +		if (source_library) +		{ +			getChildView("Discard")->setEnabled(false); +		} +	}  }  LLPreview::EAssetStatus LLPreviewTexture::getAssetStatus() | 
