diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 62e5a3217d..f8ea063f87 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -1423,7 +1423,9 @@ void LLFolderView::cut()
listener->cutToClipboard();
}
}
- LLFolderView::removeCutItems();
+ // FIRE-6714: Don't move objects to trash during cut&paste
+ //LLFolderView::removeCutItems();
+ // FIRE-6714: Don't move objects to trash during cut&paste
}
mSearchString.clear();
}
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index 9826ccfb13..d9aabb1ca6 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -1139,6 +1139,15 @@ void LLFolderViewItem::draw()
//--------------------------------------------------------------------------------//
// Draw the actual label text
//
+ // FIRE-6714: Don't move objects to trash during cut&paste
+ // Don't hide cut items in inventory
+ if (!getRoot()->getFilter()->checkAgainstClipboard(mListener->getUUID()))
+ {
+ // Fade out item color to indicate it's being cut
+ color.mV[VALPHA] *= 0.5f;
+ }
+ // FIRE-6714: Don't move objects to trash during cut&paste
+
font->renderUTF8(mLabel, 0, text_left, y, color,
LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW,
S32_MAX, getRect().getWidth() - (S32) text_left, &right_x, TRUE);
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 708c25bc21..3347eedf70 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -1431,7 +1431,9 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action)
else if ("cut" == action)
{
cutToClipboard();
- LLFolderView::removeCutItems();
+ // FIRE-6714: Don't move objects to trash during cut&paste
+ //LLFolderView::removeCutItems();
+ // FIRE-6714: Don't move objects to trash during cut&paste
return;
}
else if ("copy" == action)
@@ -1439,11 +1441,6 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action)
copyToClipboard();
return;
}
- else if ("cut" == action)
- {
- cutToClipboard();
- return;
- }
else if ("paste" == action)
{
LLInventoryItem* itemp = model->getItem(mUUID);
@@ -2869,7 +2866,9 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
else if ("cut" == action)
{
cutToClipboard();
- LLFolderView::removeCutItems();
+ // FIRE-6714: Don't move objects to trash during cut&paste
+ //LLFolderView::removeCutItems();
+ // FIRE-6714: Don't move objects to trash during cut&paste
return;
}
else if ("copy" == action)
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 86dfabb0d3..bdcf34e443 100644
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -144,8 +144,12 @@ const std::string& LLInventoryFilter::getSearchableTarget(const LLFolderViewItem
BOOL LLInventoryFilter::check(const LLFolderViewItem* item)
{
// Clipboard cut items are *always* filtered so we need this value upfront
- const LLFolderViewEventListener* listener = item->getListener();
- const BOOL passed_clipboard = (listener ? checkAgainstClipboard(listener->getUUID()) : TRUE);
+ // FIRE-6714: Don't move objects to trash during cut&paste
+ // Don't hide cut items in inventory
+ //const LLFolderViewEventListener* listener = item->getListener();
+ //const BOOL passed_clipboard = (listener ? checkAgainstClipboard(listener->getUUID()) : TRUE);
+ const BOOL passed_clipboard = TRUE;
+ // FIRE-6714: Don't move objects to trash during cut&paste
// If it's a folder and we're showing all folders, return automatically.
const BOOL is_folder = (dynamic_cast(item) != NULL);
@@ -204,7 +208,11 @@ bool LLInventoryFilter::check(const LLInventoryItem* item)
const bool passed_filtertype = checkAgainstFilterType(item);
const bool passed_permissions = checkAgainstPermissions(item);
- const BOOL passed_clipboard = checkAgainstClipboard(item->getUUID());
+ // FIRE-6714: Don't move objects to trash during cut&paste
+ // Don't hide cut items in inventory
+ //const BOOL passed_clipboard = checkAgainstClipboard(item->getUUID());
+ const BOOL passed_clipboard = TRUE;
+ // Don't filter cut items
const bool passed = (passed_filtertype &&
passed_permissions &&
passed_clipboard &&
@@ -238,7 +246,11 @@ bool LLInventoryFilter::checkFolder(const LLFolderViewFolder* folder) const
bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const
{
// Always check against the clipboard
- const BOOL passed_clipboard = checkAgainstClipboard(folder_id);
+ // FIRE-6714: Don't move objects to trash during cut&paste
+ // Don't hide cut items in inventory
+ //const BOOL passed_clipboard = checkAgainstClipboard(folder_id);
+ const BOOL passed_clipboard = TRUE;
+ // FIRE-6714: Don't move objects to trash during cut&paste
// we're showing all folders, overriding filter
if (mFilterOps.mShowFolderState == LLInventoryFilter::SHOW_ALL_FOLDERS)