// virtual bool LLOutfitsList::isActionEnabled(const LLSD& userdata) { if (mSelectedOutfitUUID.isNull()) return false; const std::string command_name = userdata.asString(); if (command_name == "delete") { return !mItemSelected && LLAppearanceMgr::instance().getCanRemoveOutfit(mSelectedOutfitUUID); } if (command_name == "rename") { return get_is_category_renameable(&gInventory, mSelectedOutfitUUID); } if (command_name == "save_outfit") { bool outfit_locked = LLAppearanceMgr::getInstance()->isOutfitLocked(); bool outfit_dirty = LLAppearanceMgr::getInstance()->isOutfitDirty(); // allow save only if outfit isn't locked and is dirty return !outfit_locked && outfit_dirty; } if (command_name == "wear") { if (gAgentWearables.isCOFChangeInProgress()) { return false; } if (hasItemSelected()) { return canWearSelected(); } // outfit selected return LLAppearanceMgr::getCanAddToCOF(mSelectedOutfitUUID); } if (command_name == "take_off") { // Enable "Take Off" if any of selected items can be taken off // or the selected outfit contains items that can be taken off. return ( hasItemSelected() && canTakeOffSelected() ) || ( !hasItemSelected() && LLAppearanceMgr::getCanRemoveFromCOF(mSelectedOutfitUUID) ); } if (command_name == "wear_add") { // *TODO: do we ever get here? if (gAgentWearables.isCOFChangeInProgress()) { return false; } return LLAppearanceMgr::getCanAddToCOF(mSelectedOutfitUUID); } return false; }
// virtual bool LLPanelWearing::isActionEnabled(const LLSD& userdata) { const std::string command_name = userdata.asString(); if (command_name == "save_outfit") { bool outfit_locked = LLAppearanceMgr::getInstance()->isOutfitLocked(); bool outfit_dirty = LLAppearanceMgr::getInstance()->isOutfitDirty(); // allow save only if outfit isn't locked and is dirty return !outfit_locked && outfit_dirty; } if (command_name == "take_off") { return hasItemSelected() && canTakeOffSelected(); } return false; }