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)