From 3ccb8d6a561c692da7a0001467c3192dd298c1fd Mon Sep 17 00:00:00 2001
From: andreykproductengine <akleshchev@productengine.com>
Date: Wed, 26 Nov 2014 19:22:31 +0200
Subject: MAINT-1861 FIXED Texture doesn't appear in Inventory after using
 'Copy to inventory' button

---
 indra/newview/llpanelobjectinventory.cpp |  1 +
 indra/newview/llpreview.cpp              | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index 1f16505f71..db944827cd 100755
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -909,6 +909,7 @@ void LLTaskTextureBridge::openItem()
 	LLPreviewTexture* preview = LLFloaterReg::showTypedInstance<LLPreviewTexture>("preview_texture", LLSD(mUUID), TAKE_FOCUS_YES);
 	if(preview)
 	{
+		preview->setAuxItem(findItem());
 		preview->setObjectID(mPanel->getTaskUUID());
 	}
 }
diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp
index cab7eff0dc..bf2652cb49 100755
--- a/indra/newview/llpreview.cpp
+++ b/indra/newview/llpreview.cpp
@@ -39,6 +39,7 @@
 #include "llradiogroup.h"
 #include "llassetstorage.h"
 #include "llviewerassettype.h"
+#include "llviewermessage.h"
 #include "llviewerobject.h"
 #include "llviewerobjectlist.h"
 #include "lldbstrings.h"
@@ -369,6 +370,20 @@ void LLPreview::onBtnCopyToInv(void* userdata)
 										 self->mNotecardInventoryID,
 										 item);
 		}
+		else if (self->mObjectUUID.notNull())
+		{
+			// item is in in-world inventory
+			LLViewerObject* object = gObjectList.findObject(self->mObjectUUID);
+			LLPermissions perm(item->getPermissions());
+			if(object
+				&&(perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID())
+				&& perm.allowTransferTo(gAgent.getID())))
+			{
+				// copy to default folder
+				set_dad_inventory_item(item, LLUUID::null);
+				object->moveInventory(LLUUID::null, item->getUUID());
+			}
+		}
 		else
 		{
 			LLPointer<LLInventoryCallback> cb = NULL;
-- 
cgit v1.2.3