summaryrefslogtreecommitdiff
path: root/indra/newview/lltexturectrl.cpp
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2022-04-15 22:14:38 +0300
committerMnikolenko Productengine <mnikolenko@productengine.com>2022-04-15 22:14:38 +0300
commitbbdbd6c2dd79adc4749e24c88c9f04755a4b12a1 (patch)
tree4f27b7f1f8edf304227e4d3d1c0755ef342cb61e /indra/newview/lltexturectrl.cpp
parent7f315b1552dd01e0ee2ff58e84f1fc87fa675cdf (diff)
SL-17204 FIXED The texture with full permissions is settled on the prim after copying texture from the object with texture with no transfer permission
Diffstat (limited to 'indra/newview/lltexturectrl.cpp')
-rw-r--r--indra/newview/lltexturectrl.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index cc912758e2..51ee5b6157 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -95,7 +95,7 @@ bool get_is_predefined_texture(LLUUID asset_id)
return false;
}
-LLUUID get_copy_free_item_by_asset_id(LLUUID asset_id)
+LLUUID get_copy_free_item_by_asset_id(LLUUID asset_id, bool no_trans_perm)
{
LLViewerInventoryCategory::cat_array_t cats;
LLViewerInventoryItem::item_array_t items;
@@ -105,6 +105,8 @@ LLUUID get_copy_free_item_by_asset_id(LLUUID asset_id)
items,
LLInventoryModel::INCLUDE_TRASH,
asset_id_matches);
+
+ LLUUID res;
if (items.size())
{
for (S32 i = 0; i < items.size(); i++)
@@ -117,12 +119,17 @@ LLUUID get_copy_free_item_by_asset_id(LLUUID asset_id)
gAgent.getID(),
gAgent.getGroupID()))
{
- return itemp->getUUID();
+ bool allow_trans = item_permissions.allowOperationBy(PERM_TRANSFER, gAgent.getID(), gAgent.getGroupID());
+ if (allow_trans != no_trans_perm)
+ {
+ return itemp->getUUID();
+ }
+ res = itemp->getUUID();
}
}
}
}
- return LLUUID::null;
+ return res;
}
bool get_can_copy_texture(LLUUID asset_id)