From af8d113557105075af0e010c560ba9846d812aa0 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 3 Aug 2012 15:23:08 -0700 Subject: CHUI-271 FIX Items that are cut and then removed from the clipboard without paste do not show in Trash until relog --- indra/newview/llinventorypanel.cpp | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'indra/newview/llinventorypanel.cpp') diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index d6a685541f..49bc3aae0b 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -600,6 +600,18 @@ void LLInventoryPanel::onIdle(void *userdata) } } +struct DirtyFilterFunctor : public LLFolderViewFunctor +{ + /*virtual*/ void doFolder(LLFolderViewFolder* folder) + { + folder->getViewModelItem()->dirtyFilter(); + } + /*virtual*/ void doItem(LLFolderViewItem* item) + { + item->getViewModelItem()->dirtyFilter(); + } +}; + void LLInventoryPanel::idle(void* user_data) { LLInventoryPanel* panel = (LLInventoryPanel*)user_data; @@ -607,25 +619,13 @@ void LLInventoryPanel::idle(void* user_data) if (panel->mClipboardState != LLClipboard::instance().getGeneration()) { panel->mClipboardState = LLClipboard::instance().getGeneration(); - if (LLClipboard::instance().isCutMode()) + const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); + LLFolderViewFolder* trash_folder = panel->getFolderByID(trash_id); + if (trash_folder) { - LLDynamicArray objects; - LLClipboard::instance().pasteFromClipboard(objects); - - for (LLDynamicArray::iterator it = objects.begin(), end_it = objects.end(); - it != end_it; - ++it) - { - LLFolderViewItem* item = panel->getItemByID(*it); - if (item) - { - item->getViewModelItem()->dirtyFilter(); - } - } - /*panel->getFilter().setModified(LLClipboard::instance().isCutMode() - ? LLInventoryFilter::FILTER_MORE_RESTRICTIVE - : LLInventoryFilter::FILTER_LESS_RESTRICTIVE);*/ + trash_folder->applyFunctorToChildren(DirtyFilterFunctor()); } + } panel->mFolderRoot->update(); -- cgit v1.2.3