diff options
| author | andreykproductengine <akleshchev@productengine.com> | 2014-12-02 19:47:47 +0200 | 
|---|---|---|
| committer | andreykproductengine <akleshchev@productengine.com> | 2014-12-02 19:47:47 +0200 | 
| commit | 4734125659ca7fa5d5f86c306a929a4a12cc80ae (patch) | |
| tree | b9ae0adc24ae12ee6f4bd8693e55d31266719ea7 /indra | |
| parent | 0a32de770d6ec82bb89b86d0d278470602eeb355 (diff) | |
MAINT-4710 FIXED The 'Copy to inventory' button should be disabled in Texture preview floater when permissions forbid it
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/llpreviewtexture.cpp | 13 | ||||
| -rwxr-xr-x | indra/newview/llpreviewtexture.h | 1 | 
2 files changed, 12 insertions, 2 deletions
| diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 5c41c5ad97..fed613543f 100755 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -65,6 +65,7 @@ LLPreviewTexture::LLPreviewTexture(const LLSD& key)  	  mShowKeepDiscard(FALSE),  	  mCopyToInv(FALSE),  	  mIsCopyable(FALSE), +	  mIsFullPerm(FALSE),  	  mUpdateDimensions(TRUE),  	  mLastHeight(0),  	  mLastWidth(0), @@ -269,7 +270,7 @@ void LLPreviewTexture::draw()  // virtual  BOOL LLPreviewTexture::canSaveAs() const  { -	return mIsCopyable && !mLoadingFullImage && mImage.notNull() && !mImage->isMissingAsset(); +	return mIsFullPerm && !mLoadingFullImage && mImage.notNull() && !mImage->isMissingAsset();  } @@ -516,6 +517,11 @@ void LLPreviewTexture::loadAsset()  	mUpdateDimensions = TRUE;  	updateDimensions();  	getChildView("save_tex_btn")->setEnabled(canSaveAs()); +	if (mObjectUUID.notNull()) +	{ +		// check that we can copy inworld items into inventory +		getChildView("Keep")->setEnabled(mIsCopyable); +	}  }  LLPreview::EAssetStatus LLPreviewTexture::getAssetStatus() @@ -580,7 +586,9 @@ void LLPreviewTexture::updateImageID()  		mShowKeepDiscard = TRUE;  		mCopyToInv = FALSE; -		mIsCopyable = item->checkPermissionsSet(PERM_ITEM_UNRESTRICTED); +		LLPermissions perm(item->getPermissions()); +		mIsCopyable = perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID()) && perm.allowTransferTo(gAgent.getID()); +		mIsFullPerm = item->checkPermissionsSet(PERM_ITEM_UNRESTRICTED);  	}  	else // not an item, assume it's an asset id  	{ @@ -588,6 +596,7 @@ void LLPreviewTexture::updateImageID()  		mShowKeepDiscard = FALSE;  		mCopyToInv = TRUE;  		mIsCopyable = TRUE; +		mIsFullPerm = TRUE;  	}  } diff --git a/indra/newview/llpreviewtexture.h b/indra/newview/llpreviewtexture.h index 97e74706cc..b104a91c75 100755 --- a/indra/newview/llpreviewtexture.h +++ b/indra/newview/llpreviewtexture.h @@ -90,6 +90,7 @@ private:  	// This is stored off in a member variable, because the save-as  	// button and drag and drop functionality need to know.  	BOOL mIsCopyable; +	BOOL mIsFullPerm;  	BOOL mUpdateDimensions;  	S32 mLastHeight;  	S32 mLastWidth; | 
