diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 67b991607..923565008 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2851,6 +2851,14 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action) restoreItem(); return; } + // Move displaced inventory to lost and found + else if ("move_to_lost_and_found" == action) + { + gInventory.changeCategoryParent(getCategory(), gInventory.findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND), TRUE); + gInventory.addChangedMask(LLInventoryObserver::REBUILD, mUUID); + gInventory.notifyObservers(); + } + // #ifdef DELETE_SYSTEM_FOLDERS else if ("delete_system_folder" == action) { @@ -3365,6 +3373,14 @@ void LLFolderBridge::buildContextMenuBaseOptions(U32 flags) mWearables=TRUE; } } + // Move displaced inventory to lost and found + else if (!isAgentInventory()) + { + const LLUUID& library(gInventory.getLibraryRootFolderID()); + if (library == mUUID || gInventory.isObjectDescendentOf(mUUID, library)) + mItems.push_back(std::string("Move to Lost And Found")); + } + // // Preemptively disable system folder removal if more than one item selected. if ((flags & FIRST_SELECTED_ITEM) == 0) diff --git a/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/indra/newview/skins/default/xui/en-us/menu_inventory.xml index a248c26de..6f0f02133 100644 --- a/indra/newview/skins/default/xui/en-us/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en-us/menu_inventory.xml @@ -227,6 +227,9 @@ name="Delete" width="128"> + + +