summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorybridge.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventorybridge.cpp')
-rw-r--r--indra/newview/llinventorybridge.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 2e0ac3863b..734e1767ac 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -31,6 +31,8 @@
*/
#include "llviewerprecompiledheaders.h"
+// external projects
+#include "lltransfersourceasset.h"
#include "llinventorybridge.h"
@@ -586,7 +588,16 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
if (show_asset_id)
{
items.push_back(std::string("Copy Asset UUID"));
- if ( (! ( isItemPermissive() || gAgent.isGodlike() ) )
+
+ bool is_asset_knowable = false;
+
+ LLViewerInventoryItem* inv_item = gInventory.getItem(mUUID);
+ if (inv_item)
+ {
+ is_asset_knowable = is_asset_id_knowable(inv_item->getType());
+ }
+ if ( !is_asset_knowable // disable menu item for Inventory items with unknown asset. EXT-5308
+ || (! ( isItemPermissive() || gAgent.isGodlike() ) )
|| (flags & FIRST_SELECTED_ITEM) == 0)
{
disabled_items.push_back(std::string("Copy Asset UUID"));
@@ -1068,9 +1079,9 @@ void LLItemBridge::performAction(LLFolderView* folder, LLInventoryModel* model,
else if ("copy_uuid" == action)
{
// Single item only
- LLInventoryItem* item = model->getItem(mUUID);
+ LLViewerInventoryItem* item = static_cast<LLViewerInventoryItem*>(getItem());
if(!item) return;
- LLUUID asset_id = item->getAssetUUID();
+ LLUUID asset_id = item->getProtectedAssetUUID();
std::string buffer;
asset_id.toString(buffer);
@@ -1110,7 +1121,7 @@ void LLItemBridge::performAction(LLFolderView* folder, LLInventoryModel* model,
void LLItemBridge::selectItem()
{
- LLViewerInventoryItem* item = (LLViewerInventoryItem*)getItem();
+ LLViewerInventoryItem* item = static_cast<LLViewerInventoryItem*>(getItem());
if(item && !item->isComplete())
{
item->fetchFromServer();
@@ -1119,7 +1130,7 @@ void LLItemBridge::selectItem()
void LLItemBridge::restoreItem()
{
- LLViewerInventoryItem* item = (LLViewerInventoryItem*)getItem();
+ LLViewerInventoryItem* item = static_cast<LLViewerInventoryItem*>(getItem());
if(item)
{
LLInventoryModel* model = getInventoryModel();
@@ -1134,7 +1145,7 @@ void LLItemBridge::restoreToWorld()
//Similar functionality to the drag and drop rez logic
bool remove_from_inventory = false;
- LLViewerInventoryItem* itemp = (LLViewerInventoryItem*)getItem();
+ LLViewerInventoryItem* itemp = static_cast<LLViewerInventoryItem*>(getItem());
if (itemp)
{
LLMessageSystem* msg = gMessageSystem;
@@ -1427,11 +1438,7 @@ BOOL LLItemBridge::isItemPermissive() const
LLViewerInventoryItem* item = getItem();
if(item)
{
- U32 mask = item->getPermissions().getMaskBase();
- if((mask & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED)
- {
- return TRUE;
- }
+ return item->getIsFullPerm();
}
return FALSE;
}
@@ -1928,7 +1935,7 @@ bool LLFindCOFValidItems::operator()(LLInventoryCategory* cat,
// - links to attachments
// - links to gestures
// - links to ensemble folders
- LLViewerInventoryItem *linked_item = ((LLViewerInventoryItem*)item)->getLinkedItem(); // BAP - safe?
+ LLViewerInventoryItem *linked_item = ((LLViewerInventoryItem*)item)->getLinkedItem();
if (linked_item)
{
LLAssetType::EType type = linked_item->getType();
@@ -1939,7 +1946,7 @@ bool LLFindCOFValidItems::operator()(LLInventoryCategory* cat,
}
else
{
- LLViewerInventoryCategory *linked_category = ((LLViewerInventoryItem*)item)->getLinkedCategory(); // BAP - safe?
+ LLViewerInventoryCategory *linked_category = ((LLViewerInventoryItem*)item)->getLinkedCategory();
// BAP remove AT_NONE support after ensembles are fully working?
return (linked_category &&
((linked_category->getPreferredType() == LLFolderType::FT_NONE) ||
@@ -2965,8 +2972,6 @@ void LLFolderBridge::modifyOutfit(BOOL append)
LLViewerInventoryCategory* cat = getCategory();
if(!cat) return;
- // BAP - was:
- // wear_inventory_category_on_avatar( cat, append );
LLAppearanceManager::instance().wearInventoryCategory( cat, FALSE, append );
}