summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorybridge.cpp
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2010-03-01 18:09:04 -0800
committerRoxie Linden <roxie@lindenlab.com>2010-03-01 18:09:04 -0800
commit1147cb1afbc21e1251614895844e95bca9b6b5bc (patch)
treeda01f6c0e6b61a7c0637a371c946ea69b46f9dff /indra/newview/llinventorybridge.cpp
parentb11a625e6ff89470d25273fa426ed13f7abc4a6a (diff)
parent0600083891ab5b2c6a79097f65945bcb2d049bed (diff)
Automated merge from trunk
Diffstat (limited to 'indra/newview/llinventorybridge.cpp')
-rw-r--r--indra/newview/llinventorybridge.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index d0513c35ce..27a40c6ba0 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -31,6 +31,9 @@
*/
#include "llviewerprecompiledheaders.h"
+// external projects
+#include "lltransfersourceasset.h"
+
#include "llinventorybridge.h"
#include "llagent.h"
@@ -583,7 +586,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"));
@@ -1065,9 +1077,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);
@@ -1107,7 +1119,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();
@@ -1116,7 +1128,7 @@ void LLItemBridge::selectItem()
void LLItemBridge::restoreItem()
{
- LLViewerInventoryItem* item = (LLViewerInventoryItem*)getItem();
+ LLViewerInventoryItem* item = static_cast<LLViewerInventoryItem*>(getItem());
if(item)
{
LLInventoryModel* model = getInventoryModel();
@@ -1131,7 +1143,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;
@@ -1424,11 +1436,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;
}