diff options
Diffstat (limited to 'indra/newview/llinventorypanel.cpp')
-rw-r--r-- | indra/newview/llinventorypanel.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
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<LLUUID> objects; - LLClipboard::instance().pasteFromClipboard(objects); - - for (LLDynamicArray<LLUUID>::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(); |