void temp_upload_done_callback(const LLUUID& uuid, void* user_data, S32 result, LLExtStat ext_status) // StoreAssetData callback (fixed) { LLResourceData* data = (LLResourceData*)user_data; if(result >= 0) { LLAssetType::EType dest_loc = (data->mPreferredLocation == LLAssetType::AT_NONE) ? data->mAssetInfo.mType : data->mPreferredLocation; LLUUID folder_id(gInventory.findCategoryUUIDForType(dest_loc)); LLUUID item_id; item_id.generate(); LLPermissions perm; perm.init(gAgentID, gAgentID, gAgentID, gAgentID); perm.setMaskBase(PERM_ALL); perm.setMaskOwner(PERM_ALL); perm.setMaskEveryone(PERM_ALL); perm.setMaskGroup(PERM_ALL); LLPointer<LLViewerInventoryItem> item = new LLViewerInventoryItem(item_id, folder_id, perm, data->mAssetInfo.mTransactionID.makeAssetID(gAgent.getSecureSessionID()), data->mAssetInfo.mType, data->mInventoryType, data->mAssetInfo.getName(), "", LLSaleInfo::DEFAULT, LLInventoryItem::II_FLAGS_NONE, time_corrected()); item->updateServer(TRUE); gInventory.updateItem(item); gInventory.notifyObservers(); }else // if(result >= 0) { LLSD args; args["FILE"] = LLInventoryType::lookupHumanReadable(data->mInventoryType); args["REASON"] = std::string(LLAssetStorage::getErrorString(result)); LLNotifications::instance().add("CannotUploadReason", args); } LLUploadDialog::modalUploadFinished(); delete data; }
// Checked: 2010-04-18 (RLVa-1.2.0e) | Added: RLVa-1.2.0e void RlvGiveToRLVTaskOffer::doneIdle() { const LLViewerInventoryCategory* pRlvRoot = RlvInventory::instance().getSharedRoot(); if (pRlvRoot) { for (folder_ref_t::const_iterator itFolder = m_Folders.begin(); itFolder != m_Folders.end(); ++itFolder) { const LLViewerInventoryCategory* pFolder = gInventory.getCategory(*itFolder); if (!pFolder) continue; std::string strFolder = pFolder->getName(); if ( (pRlvRoot->getUUID() == pFolder->getParentUUID() ) && (strFolder.find(RLV_PUTINV_PREFIX) == 0)) { LLPointer<LLViewerInventoryCategory> pNewFolder = new LLViewerInventoryCategory(pFolder); pNewFolder->rename(strFolder.erase(0, strFolder.find(RLV_FOLDER_PREFIX_PUTINV))); pNewFolder->updateServer(FALSE); gInventory.updateCategory(pNewFolder); RlvBehaviourNotifyHandler::instance().sendNotification("accepted_in_rlv inv_offer " + pNewFolder->getName()); gInventory.notifyObservers(); break; } } } delete this; }
// Checked: 2010-04-18 (RLVa-1.1.3a) | Modified: RLVa-1.2.0e void RlvGiveToRLVAgentOffer::doneIdle() { const LLViewerInventoryCategory* pRlvRoot = RlvInventory::instance().getSharedRoot(); const LLViewerInventoryCategory* pFolder = (mComplete.size()) ? gInventory.getCategory(mComplete[0]) : NULL; if ( (pRlvRoot) && (pFolder) ) { std::string strName = pFolder->getName(); if (strName.find(RLV_PUTINV_PREFIX) == 0) { LLInventoryModel::update_list_t update; LLInventoryModel::LLCategoryUpdate updOldParent(pFolder->getParentUUID(), -1); update.push_back(updOldParent); LLInventoryModel::LLCategoryUpdate updNewParent(pRlvRoot->getUUID(), 1); update.push_back(updNewParent); gInventory.accountForUpdate(update); LLPointer<LLViewerInventoryCategory> pNewFolder = new LLViewerInventoryCategory(pFolder); pNewFolder->setParent(pRlvRoot->getUUID()); pNewFolder->updateParentOnServer(FALSE); pNewFolder->rename(strName.erase(0, strName.find(RLV_FOLDER_PREFIX_PUTINV))); pNewFolder->updateServer(FALSE); gInventory.updateCategory(pNewFolder); gInventory.notifyObservers(); } } delete this; }
// <edit> //static void LLFloaterTexturePicker::onBtnCpToInv(void* userdata) { LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata; LLUUID mUUID = self->mImageAssetID; LLAssetType::EType asset_type = LLAssetType::AT_TEXTURE; LLInventoryType::EType inv_type = LLInventoryType::IT_TEXTURE; const LLUUID folder_id = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(asset_type)); if(folder_id.notNull()) { std::string name; std::string desc; name.assign("temp."); desc.assign(mUUID.asString()); name.append(mUUID.asString()); LLUUID item_id; item_id.generate(); LLPermissions perm; perm.init(gAgentID, gAgentID, LLUUID::null, LLUUID::null); U32 next_owner_perm = PERM_MOVE | PERM_TRANSFER; perm.initMasks(PERM_ALL, PERM_ALL, PERM_NONE,PERM_NONE, next_owner_perm); S32 creation_date_now = time_corrected(); LLPointer<LLViewerInventoryItem> item = new LLViewerInventoryItem(item_id, folder_id, perm, mUUID, asset_type, inv_type, name, desc, LLSaleInfo::DEFAULT, LLInventoryItemFlags::II_FLAGS_NONE, creation_date_now); item->updateServer(TRUE); gInventory.updateItem(item); gInventory.notifyObservers(); LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(); if (active_panel) { active_panel->openSelected(); LLFocusableElement* focus = gFocusMgr.getKeyboardFocus(); gFocusMgr.setKeyboardFocus(focus); } } else { llwarns << "Can't find a folder to put it in" << llendl; } }