From cc1c8bb9bc2f210d029aa9e056e520ababe2f00e Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 29 Oct 2009 11:19:45 -0400 Subject: EXT-1804: Operations on the current look do not enforce one wearable per type DEV-39346: OUTFITS (Operations) : Restrict one shape per look, and some # of multiwearables per look DEV-38436: OUTFITS : Guarantee every outfit has fully populated links to (one each of) all body parts. Consolidated all paths for replacing or appending to COF, with common enforcement mechanism for counts of body parts, clothing, etc. Several functions are no longer needed after these changes, will clean up in a later pass. --- indra/newview/llappearancemgr.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'indra/newview/llappearancemgr.h') diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 828af32101..ea3ebdf4ea 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -46,6 +46,7 @@ public: static void updateAppearanceFromCOF(); static bool needToSaveCOF(); static void changeOutfit(bool proceed, const LLUUID& category, bool append); + static void updateCOF(const LLUUID& category, bool append = false); static void updateCOFFromCategory(const LLUUID& category, bool append); static void rebuildCOFFromOutfit(const LLUUID& category); static void wearInventoryCategory(LLInventoryCategory* category, bool copy, bool append); @@ -65,9 +66,20 @@ public: static void removeItemLinks(const LLUUID& item_id, bool do_update = true); // For debugging - could be moved elsewhere. - static void dumpCat(const LLUUID& cat_id, std::string str); + static void dumpCat(const LLUUID& cat_id, const std::string& msg); + static void dumpItemArray(const LLInventoryModel::item_array_t& items, const std::string& msg); private: + static void filterWearableItems(LLInventoryModel::item_array_t& items, S32 max_per_type); + static void linkAll(const LLUUID& category, + LLInventoryModel::item_array_t& items, + LLPointer cb); + + static void getDescendentsOfAssetType(const LLUUID& category, + LLInventoryModel::item_array_t& items, + LLAssetType::EType type, + bool follow_folder_links); + static void getCOFValidDescendents(const LLUUID& category, LLInventoryModel::item_array_t& items); @@ -81,6 +93,7 @@ private: static bool isMandatoryWearableType(EWearableType type); static void checkMandatoryWearableTypes(const LLUUID& category, std::set& types_found); static void purgeCOFBeforeRebuild(const LLUUID& category); + static void purgeCategory(const LLUUID& category, bool keep_outfit_links); }; #define SUPPORT_ENSEMBLES 0 -- cgit v1.2.3 From 86b1ee7703bb57c6b1e1c068cda02bfb9ed0721e Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 2 Nov 2009 14:10:56 -0500 Subject: Work in progress on attachment tracking. --- indra/newview/llappearancemgr.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'indra/newview/llappearancemgr.h') diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index ea3ebdf4ea..45c6e23bae 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -68,6 +68,9 @@ public: // For debugging - could be moved elsewhere. static void dumpCat(const LLUUID& cat_id, const std::string& msg); static void dumpItemArray(const LLInventoryModel::item_array_t& items, const std::string& msg); + static void unregisterAttachment(const LLUUID& item_id); + static void registerAttachment(const LLUUID& item_id); + private: static void filterWearableItems(LLInventoryModel::item_array_t& items, S32 max_per_type); @@ -94,6 +97,9 @@ private: static void checkMandatoryWearableTypes(const LLUUID& category, std::set& types_found); static void purgeCOFBeforeRebuild(const LLUUID& category); static void purgeCategory(const LLUUID& category, bool keep_outfit_links); + + static std::set sRegisteredAttachments; + }; #define SUPPORT_ENSEMBLES 0 -- cgit v1.2.3 From 9109809fb18968edfcd8e8f01428309fcc2e7578 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 3 Nov 2009 12:22:31 -0500 Subject: For EXT-1591: Current Outfit Folder contains duplicate attachment items after relog. --HG-- branch : avatar-pipeline --- indra/newview/llappearancemgr.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra/newview/llappearancemgr.h') diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 45c6e23bae..56f54dfc23 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -70,7 +70,7 @@ public: static void dumpItemArray(const LLInventoryModel::item_array_t& items, const std::string& msg); static void unregisterAttachment(const LLUUID& item_id); static void registerAttachment(const LLUUID& item_id); - + static void setAttachmentInvLinkEnable(bool val); private: static void filterWearableItems(LLInventoryModel::item_array_t& items, S32 max_per_type); @@ -99,6 +99,7 @@ private: static void purgeCategory(const LLUUID& category, bool keep_outfit_links); static std::set sRegisteredAttachments; + static bool sAttachmentInvLinkEnabled; }; -- cgit v1.2.3