diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index 7131ec8a3b..355a997e78 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -1010,20 +1010,42 @@ U32 LLInventoryModel::updateItem(const LLViewerInventoryItem* item, U32 mask) LLUUID new_parent_id = item->getParentUUID(); bool update_parent_on_server = false; - // Fix attachments being to Lost&Found during logout + // Fix attachments falsely being moved to Lost&Found //if (new_parent_id.isNull()) + //{ + // // item with null parent will end in random location and then in Lost&Found, + // // either move to default folder as if it is new item or don't move at all + // LL_WARNS(LOG_INV) << "Update attempts to reparent item " << item->getUUID() + // << " to null folder. Moving to Lost&Found. Old item name: " << old_item->getName() + // << ". New name: " << item->getName() + // << "." << LL_ENDL; + // new_parent_id = findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND); + // update_parent_on_server = true; + //} if (new_parent_id.isNull() && !LLApp::isExiting()) - // { - // item with null parent will end in random location and then in Lost&Found, - // either move to default folder as if it is new item or don't move at all - LL_WARNS(LOG_INV) << "Update attempts to reparent item " << item->getUUID() - << " to null folder. Moving to Lost&Found. Old item name: " << old_item->getName() - << ". New name: " << item->getName() - << "." << LL_ENDL; - new_parent_id = findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND); - update_parent_on_server = true; + if (old_parent_id.isNull()) + { + // item with null parent will end in random location and then in Lost&Found, + // either move to default folder as if it is new item or don't move at all + LL_WARNS(LOG_INV) << "Update attempts to reparent item " << item->getUUID() + << " to null folder. Moving to Lost&Found. Old item name: " << old_item->getName() + << ". New name: " << item->getName() + << "." << LL_ENDL; + new_parent_id = findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND); + update_parent_on_server = true; + } + else + { + LL_WARNS(LOG_INV) << "Update attempts to reparent item " << item->getUUID() + << " to null folder. Old parent not null. Moving to old parent. Old item name: " << old_item->getName() + << ". New name: " << item->getName() + << "." << LL_ENDL; + new_parent_id = old_parent_id; + update_parent_on_server = true; + } } + // if(old_parent_id != new_parent_id) {