// static void LLPreview::onDiscardBtn(void* data) { LLPreview* self = (LLPreview*)data; const LLInventoryItem* item = self->getItem(); if (!item) return; self->mForceClose = TRUE; self->closeFloater(); // Move the item to the trash const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); if (item->getParentUUID() != trash_id) { LLInventoryModel::update_list_t update; LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1); update.push_back(old_folder); LLInventoryModel::LLCategoryUpdate new_folder(trash_id, 1); update.push_back(new_folder); gInventory.accountForUpdate(update); LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); new_item->setParent(trash_id); // no need to restamp it though it's a move into trash because // it's a brand new item already. new_item->updateParentOnServer(FALSE); gInventory.updateItem(new_item); gInventory.notifyObservers(); } }
// static void LLPreview::onBtnCopyToInv(void* userdata) { LLPreview* self = (LLPreview*) userdata; LLInventoryItem *item = self->mAuxItem; if(item && item->getUUID().notNull()) { // Copy to inventory if (self->mNotecardInventoryID.notNull()) { copy_inventory_from_notecard(self->mNotecardObjectID, self->mNotecardInventoryID, item); } else { LLPointer<LLInventoryCallback> cb = NULL; copy_inventory_item( gAgent.getID(), item->getPermissions().getOwner(), item->getUUID(), LLUUID::null, std::string(), cb); } } self->closeFloater(); }
// static void LLPreview::hide(const LLUUID& item_uuid, BOOL no_saving /* = FALSE */ ) { LLFloater* floater = LLFloaterReg::findInstance("preview", LLSD(item_uuid)); if (!floater) floater = LLFloaterReg::findInstance("preview_avatar", LLSD(item_uuid)); LLPreview* preview = dynamic_cast<LLPreview*>(floater); if (preview) { if ( no_saving ) { preview->mForceClose = TRUE; } preview->closeFloater(); } }
// static void LLPreview::onBtnCopyToInv(void* userdata) { LLPreview* self = (LLPreview*) userdata; LLInventoryItem *item = self->mAuxItem; if(item && item->getUUID().notNull()) { // Copy to inventory if (self->mNotecardInventoryID.notNull()) { copy_inventory_from_notecard(LLUUID::null, self->mNotecardObjectID, self->mNotecardInventoryID, item); } else if (self->mObjectUUID.notNull()) { // item is in in-world inventory LLViewerObject* object = gObjectList.findObject(self->mObjectUUID); LLPermissions perm(item->getPermissions()); if(object &&(perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID()) && perm.allowTransferTo(gAgent.getID()))) { // copy to default folder set_dad_inventory_item(item, LLUUID::null); object->moveInventory(LLUUID::null, item->getUUID()); } } else { LLPointer<LLInventoryCallback> cb = NULL; copy_inventory_item( gAgent.getID(), item->getPermissions().getOwner(), item->getUUID(), LLUUID::null, std::string(), cb); } } self->closeFloater(); }
// static void LLPreview::hide(const LLUUID& item_uuid, BOOL no_saving /* = FALSE */ ) { // <FS:Ansariel> FIRE-14195: Deleting item from inventory doesn't close preview //LLFloater* floater = LLFloaterReg::findInstance("preview", LLSD(item_uuid)); LLFloater* floater = LLFloaterReg::findInstance("preview_anim", LLSD(item_uuid)); if (!floater) floater = LLFloaterReg::findInstance("preview_gesture", LLSD(item_uuid)); if (!floater) floater = LLFloaterReg::findInstance("preview_notecard", LLSD(item_uuid)); if (!floater) floater = LLFloaterReg::findInstance("preview_script", LLSD(item_uuid)); if (!floater) floater = LLFloaterReg::findInstance("preview_sound", LLSD(item_uuid)); if (!floater) floater = LLFloaterReg::findInstance("preview_texture", LLSD(item_uuid)); // </FS:Ansariel> if (!floater) floater = LLFloaterReg::findInstance("preview_avatar", LLSD(item_uuid)); LLPreview* preview = dynamic_cast<LLPreview*>(floater); if (preview) { if ( no_saving ) { preview->mForceClose = TRUE; } preview->closeFloater(); } }
// static void LLPreview::onKeepBtn(void* data) { LLPreview* self = (LLPreview*)data; self->closeFloater(); }