summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorybridge.cpp
diff options
context:
space:
mode:
authorMaxim Nikolenko <maximnproductengine@lindenlab.com>2023-02-03 16:53:33 +0200
committerMaxim Nikolenko <maximnproductengine@lindenlab.com>2023-02-03 16:53:33 +0200
commit51142d1341bfd5f4f9749fe1aaf23d4f4270fe0e (patch)
tree1ced5dc14755b357886eb9fdf3606f5073ed9aaa /indra/newview/llinventorybridge.cpp
parentdb80fdb55b646164a71c58e9f4751b368afa3b9f (diff)
parent8d21d29bd7fa038db632ff90fb0e1207d0713ca2 (diff)
Merge branch 'main' into DRTVWR-567
# Conflicts: # indra/newview/llappearancemgr.cpp # indra/newview/llpanelmaininventory.cpp
Diffstat (limited to 'indra/newview/llinventorybridge.cpp')
-rw-r--r--indra/newview/llinventorybridge.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index ae1ac6cc1e..5ca5446d23 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -831,6 +831,12 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
{
disabled_items.push_back(std::string("Find Original"));
}
+
+ items.push_back(std::string("Cut"));
+ if (!isItemMovable() || !isItemRemovable())
+ {
+ disabled_items.push_back(std::string("Cut"));
+ }
}
else
{
@@ -2153,6 +2159,7 @@ bool LLItemBridge::isItemCopyable(bool can_copy_as_link) const
static LLCachedControl<bool> inventory_linking(gSavedSettings, "InventoryLinking", true);
return (can_copy_as_link && inventory_linking)
+ || (mIsLink && inventory_linking)
|| item->getPermissions().allowCopyBy(gAgent.getID());
}
@@ -2374,6 +2381,12 @@ BOOL LLFolderBridge::isUpToDate() const
bool LLFolderBridge::isItemCopyable(bool can_copy_as_link) const
{
+ if (can_copy_as_link && !LLFolderType::lookupIsProtectedType(getPreferredType()))
+ {
+ // Can copy and paste unprotected folders as links
+ return true;
+ }
+
// Folders are copyable if items in them are, recursively, copyable.
// Get the content of the folder