diff options
author | Dessie Linden <dessie@lindenlab.com> | 2010-06-29 07:36:55 -0700 |
---|---|---|
committer | Dessie Linden <dessie@lindenlab.com> | 2010-06-29 07:36:55 -0700 |
commit | 2f5c6456991881ca5a80f021d6d4c94739d16565 (patch) | |
tree | c24f45d25050ea499f41cdac46a06c8539349909 /indra/newview/llinventoryfunctions.cpp | |
parent | b54fd9d6855c8547ce03beacf1ef04eb6396e75e (diff) | |
parent | 4a3710501b1aeae90afbd48c7e3531c86f92517e (diff) |
Merged from viewer-release
Diffstat (limited to 'indra/newview/llinventoryfunctions.cpp')
-rw-r--r-- | indra/newview/llinventoryfunctions.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 7e9a2cb716..7463658003 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -323,7 +323,9 @@ BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id) BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id) { - // This function doesn't check the folder's children. + // NOTE: This function doesn't check the folder's children. + // See LLFolderBridge::isItemRemovable for a function that does + // consider the children. if (!model) { @@ -337,17 +339,29 @@ BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id) if (!isAgentAvatarValid()) return FALSE; - LLInventoryCategory* category = model->getCategory(id); + const LLInventoryCategory* category = model->getCategory(id); if (!category) { return FALSE; } - if (LLFolderType::lookupIsProtectedType(category->getPreferredType())) + const LLFolderType::EType folder_type = category->getPreferredType(); + + if (LLFolderType::lookupIsProtectedType(folder_type)) { return FALSE; } + // Can't delete the outfit that is currently being worn. + if (folder_type == LLFolderType::FT_OUTFIT) + { + const LLViewerInventoryItem *base_outfit_link = LLAppearanceMgr::instance().getBaseOutfitLink(); + if (base_outfit_link && (category == base_outfit_link->getLinkedCategory())) + { + return FALSE; + } + } + return TRUE; } |