From ab37f37b1bca3bf47209a348b67b5fc04a0ef582 Mon Sep 17 00:00:00 2001 From: Kitty Barnett Date: Sun, 15 Jul 2012 19:47:37 +0200 Subject: [PATCH 1/6] Updated patch branch dependencies --HG-- branch : .RLVa --- .hgpatchinfo/.RLVa.dep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.hgpatchinfo/.RLVa.dep b/.hgpatchinfo/.RLVa.dep index 4565db3e96..fa7afda1f5 100644 --- a/.hgpatchinfo/.RLVa.dep +++ b/.hgpatchinfo/.RLVa.dep @@ -1,2 +1,2 @@ -e4644c7c2a66b75d1c29d65f2889ff1fac2529cb -e00966ea48d82be988a82e7402d055e43110edb0 \ No newline at end of file +dbd2168fa6bc933698524aa949509145a6b50211 +f6f76bf8373578158b194092a09022288af8e6bb \ No newline at end of file From faa59cb0eb5cbd4110d01e582835deac2febb901 Mon Sep 17 00:00:00 2001 From: Kitty Barnett Date: Sat, 4 Aug 2012 20:18:16 +0200 Subject: [PATCH 2/6] Updated patch branch dependencies --HG-- branch : .RLVa --- .hgpatchinfo/.RLVa.dep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.hgpatchinfo/.RLVa.dep b/.hgpatchinfo/.RLVa.dep index fa7afda1f5..0fdaf6e7e4 100644 --- a/.hgpatchinfo/.RLVa.dep +++ b/.hgpatchinfo/.RLVa.dep @@ -1,2 +1,2 @@ -dbd2168fa6bc933698524aa949509145a6b50211 -f6f76bf8373578158b194092a09022288af8e6bb \ No newline at end of file +02a5bee1d3810b8534293ced4c940f94964c2594 +d0f6df2a0a91a28f3cfbc9c0637470e920db1ed6 \ No newline at end of file From 49b3b061a2d0623e458a78bd056acdcb031103fb Mon Sep 17 00:00:00 2001 From: Kitty Barnett Date: Mon, 6 Aug 2012 11:21:51 +0200 Subject: [PATCH 3/6] Updated patch branch dependencies --HG-- branch : .RLVa --- .hgpatchinfo/.RLVa.dep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.hgpatchinfo/.RLVa.dep b/.hgpatchinfo/.RLVa.dep index 0fdaf6e7e4..4e9534b1a5 100644 --- a/.hgpatchinfo/.RLVa.dep +++ b/.hgpatchinfo/.RLVa.dep @@ -1,2 +1,2 @@ -02a5bee1d3810b8534293ced4c940f94964c2594 -d0f6df2a0a91a28f3cfbc9c0637470e920db1ed6 \ No newline at end of file +cf65c05e797b607778f1f49f9af677f906b97be8 +00cedbb6265fb1abdf7dfdb9a2cb59b05680865a \ No newline at end of file From c67387480e87e5bc536c4425f0af60a25bb2e851 Mon Sep 17 00:00:00 2001 From: Kitty Barnett Date: Thu, 20 Sep 2012 16:36:34 +0200 Subject: [PATCH 4/6] Updated patch branch dependencies --HG-- branch : .RLVa --- .hgpatchinfo/.RLVa.dep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.hgpatchinfo/.RLVa.dep b/.hgpatchinfo/.RLVa.dep index 4e9534b1a5..bd837bf003 100644 --- a/.hgpatchinfo/.RLVa.dep +++ b/.hgpatchinfo/.RLVa.dep @@ -1,2 +1,2 @@ -cf65c05e797b607778f1f49f9af677f906b97be8 -00cedbb6265fb1abdf7dfdb9a2cb59b05680865a \ No newline at end of file +e8051774675e44cee30899025e3dde3c7b53f56e +74b634a905fe2eb7f25cf8e487fa5b7fbd1f96d7 \ No newline at end of file From bdd663cebb87e046f4489ad14f4907514b6abe60 Mon Sep 17 00:00:00 2001 From: Kitty Barnett Date: Mon, 4 Feb 2013 20:09:37 +0100 Subject: [PATCH 5/6] - internal : reviewed Appearance-Misc patchset for viewer-sunshine --HG-- branch : Appearance-Misc --- .hgpatchinfo/Appearance-Misc.desc | 6 --- indra/llappearance/llwearabletype.cpp | 2 +- indra/newview/llagentwearables.cpp | 14 +++---- indra/newview/llagentwearables.h | 12 +++--- indra/newview/llappearancemgr.cpp | 47 +++++++++++++---------- indra/newview/llappearancemgr.h | 4 +- indra/newview/llinventorybridge.cpp | 10 +++-- indra/newview/lltooldraganddrop.cpp | 6 +-- indra/newview/llviewerattachmenu.cpp | 5 ++- indra/newview/llviewerinventory.cpp | 6 --- indra/newview/llviewerinventory.h | 1 - indra/newview/llviewerjointattachment.cpp | 2 +- indra/newview/llvoavatar.cpp | 2 +- indra/newview/llwearablelist.cpp | 10 ++++- 14 files changed, 67 insertions(+), 60 deletions(-) diff --git a/.hgpatchinfo/Appearance-Misc.desc b/.hgpatchinfo/Appearance-Misc.desc index 3ef1fb03d7..dbc5fa8cae 100644 --- a/.hgpatchinfo/Appearance-Misc.desc +++ b/.hgpatchinfo/Appearance-Misc.desc @@ -5,7 +5,6 @@ - fixed : attachments sometimes detach only to instantly get reattached after logon - fixed : Add to/Replace Outfit removes newly worn attachments on completion -> fix for http://jira.secondlife.com/browse/VWR-18512 -- fixed : LLWearableBridge::removeAllClothesFromAvatar() doesn't remove all clothing from the avatar - fixed : attachments that attach and then instantly detach don't have their COF link removed - fixed : multiple LLWearableHoldingPattern instances lead to "COF corruption" - fixed : get_is_item_worn() shouldn't make the assumption that items in COFs are always worn @@ -16,12 +15,7 @@ - fixed : LLViewerObject::getAttachmentItemID() sometimes returns the NULL UUID for the avatar's own attachments - fixed : LLAppearanceMgr::updateAppearanceFromCOF() doesn't properly filter items collected from folder links -> create an outfit with a folder link + "Replace Outfit" == wearables that exist in both COF and the linked folder will end up worn multiple times -- changed : deprecated removeItemFromAvatar() in favour of having LLAppearanceMgr::removeItemFromAvatar() handle it directly/correctly - -> wearables can't be worn/removed in 2.X without the viewer already having an LLWearable instance for it anyway - changed : enable "Replace Current Outfit" on the base outfit if it's marked dirty - changed : "RenderUnloadedAvatar" no longer affects the user's own avatar -> side-effect of the fix above due to the change to LLVOAvatar::isFullyLoaded() - added : InitialWearablesLoadedSignal signal which is emitted *once* when the initial wearables are loaded -- added : LegacyMultiAttachmentSupport debug setting to route "secondary attachment points" to the primary attachment point - -> maps secondary attachment point range [39,68] onto [1,30] - -> only dislays "secondary attachment points" correctly for *other* avatars (by design) diff --git a/indra/llappearance/llwearabletype.cpp b/indra/llappearance/llwearabletype.cpp index 29a19256b9..65afb0adde 100644 --- a/indra/llappearance/llwearabletype.cpp +++ b/indra/llappearance/llwearabletype.cpp @@ -93,7 +93,7 @@ LLWearableDictionary::LLWearableDictionary() addEntry(LLWearableType::WT_TATTOO, new WearableEntry("tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_TATTOO, FALSE, TRUE)); // addEntry(LLWearableType::WT_PHYSICS, new WearableEntry("physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PHYSICS, TRUE, TRUE)); -// [SL:KB] - Patch: Appearance-Misc | Checked: 2011-05-29 (Catznip-3.2.0a) | Added: Catznip-2.6.0a +// [SL:KB] - Patch: Appearance-Misc | Checked: 2011-05-29 (Catznip-2.6) addEntry(LLWearableType::WT_PHYSICS, new WearableEntry("physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PHYSICS, TRUE, FALSE)); // [/SL:KB] diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 99ea3582c7..ebc1fbf627 100755 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -55,7 +55,7 @@ LLAgentWearables gAgentWearables; BOOL LLAgentWearables::mInitialWearablesUpdateReceived = FALSE; -// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-3.0.0a) | Added: Catznip-2.1.1d +// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.1) bool LLAgentWearables::mInitialWearablesLoaded = false; // [/SL:KB] @@ -1305,7 +1305,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it // Start rendering & update the server mWearablesLoaded = TRUE; checkWearablesLoaded(); -// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-09-22 (Catznip-3.0.0a) | Modified: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-09-22 (Catznip-2.2) if (!mInitialWearablesLoaded) { mInitialWearablesLoaded = true; @@ -1534,8 +1534,8 @@ void LLAgentWearables::userRemoveWearablesOfType(const LLWearableType::EType &ty // Combines userRemoveMulipleAttachments() and userAttachMultipleAttachments() logic to // get attachments into desired state with minimal number of adds/removes. //void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array) -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-3.0.0a) | Added: Catznip-2.2.0a -void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array, bool fAttachOnly) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.2) +void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array, bool attach_only) // [/SL:KB] { // Possible cases: @@ -1602,8 +1602,8 @@ void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj // Remove everything in objects_to_remove // userRemoveMultipleAttachments(objects_to_remove); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-3.0.0a) | Added: Catznip-2.2.0a - if (!fAttachOnly) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.2) + if (!attach_only) { userRemoveMultipleAttachments(objects_to_remove); } @@ -1909,7 +1909,7 @@ bool LLAgentWearables::changeInProgress() const return mCOFChangeInProgress; } -// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-3.0.0a) | Added: Catznip-2.1.1d +// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.1) boost::signals2::connection LLAgentWearables::addInitialWearablesLoadedCallback(loaded_callback_t cb) { return mInitialWearablesLoadedSignal.connect(cb); diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h index f6198aff5c..d883065739 100755 --- a/indra/newview/llagentwearables.h +++ b/indra/newview/llagentwearables.h @@ -76,7 +76,7 @@ public: BOOL isWearableCopyable(LLWearableType::EType type, U32 index /*= 0*/) const; BOOL areWearablesLoaded() const; -// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-3.0.0a) | Added: Catznip-2.1.1d +// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.1) bool areInitalWearablesLoaded() const { return mInitialWearablesLoaded; } // [/SL:KB] bool isCOFChangeInProgress() const { return mCOFChangeInProgress; } @@ -202,9 +202,9 @@ public: typedef std::vector llvo_vec_t; // static void userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.2) // Not the best way to go about this but other attempts changed far too much LL code to be a viable solution - static void userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array, bool fAttachOnly = false); + static void userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array, bool attach_only = false); // [/SL:KB] static void userRemoveMultipleAttachments(llvo_vec_t& llvo_array); static void userAttachMultipleAttachments(LLInventoryModel::item_array_t& obj_item_array); @@ -223,7 +223,7 @@ public: typedef boost::function loaded_callback_t; typedef boost::signals2::signal loaded_signal_t; boost::signals2::connection addLoadedCallback(loaded_callback_t cb); -// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-3.0.0a) | Added: Catznip-2.1.1d +// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.1) boost::signals2::connection addInitialWearablesLoadedCallback(loaded_callback_t cb); // [/SL:KB] @@ -234,7 +234,7 @@ public: private: loading_started_signal_t mLoadingStartedSignal; // should be called before wearables are changed loaded_signal_t mLoadedSignal; // emitted when all agent wearables get loaded -// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-3.0.0a) | Added: Catznip-2.1.1d +// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.1) loaded_signal_t mInitialWearablesLoadedSignal; // emitted once when the initial wearables are loaded // [/SL:KB] @@ -243,7 +243,7 @@ private: //-------------------------------------------------------------------- private: static BOOL mInitialWearablesUpdateReceived; -// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.2) static bool mInitialWearablesLoaded; // [/SL:KB] BOOL mWearablesLoaded; diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index a176ae5e0b..3ffd5bb7bf 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -560,7 +560,7 @@ public: void onWearableAssetFetch(LLViewerWearable *wearable); void onAllComplete(); -// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-3.0.0a) | Added: Catznip-2.0.0a +// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-2.0) bool pollStopped(); // [/SL:KB] @@ -647,7 +647,7 @@ void LLWearableHoldingPattern::eraseTypeToRecover(LLWearableType::EType type) mTypesToRecover.erase(type); } -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-06-19 (Catznip-3.0.0a) | Added: Catznip-2.1.2a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-06-19 (Catznip-2.1) //void LLWearableHoldingPattern::setObjItems(const LLInventoryModel::item_array_t& items) //{ // mObjItems = items; @@ -757,7 +757,7 @@ void LLWearableHoldingPattern::onAllComplete() LL_INFOS("Avatar") << self_av_string() << "Updating agent wearables with " << mResolved << " wearable items " << LL_ENDL; LLAppearanceMgr::instance().updateAgentWearables(this, false); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-03-22 (Catznip-3.0.0a) | Added: Catznip-2.1.2a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-03-22 (Catznip-2.1) // // Update attachments to match those requested. // if (isAgentAvatarValid()) // { @@ -799,7 +799,7 @@ bool LLWearableHoldingPattern::pollFetchCompletion() // runway skip here? llwarns << self_av_string() << "skipping because LLWearableHolding pattern is invalid (superceded by later outfit request)" << llendl; -// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-3.0.0a) | Added: Catznip-2.0.0a +// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-2.0) // If we were signalled to stop then we shouldn't do anything else except poll for when it's safe to delete ourselves doOnIdleRepeating(boost::bind(&LLWearableHoldingPattern::pollStopped, this)); return true; @@ -875,9 +875,9 @@ void recovered_item_cb(const LLUUID& item_id, LLWearableType::EType type, LLView // runway skip here? llwarns << self_av_string() << "skipping because LLWearableHolding pattern is invalid (superceded by later outfit request)" << llendl; -// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-3.0.0a) | Added: Catznip-2.0.0a - // If we were signalled to stop then we shouldn't do anything else except poll for when it's safe to delete ourselves - return; +// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-2.0) + // If we were signalled to stop then we shouldn't do anything else except poll for when it's safe to delete ourselves + return; // [/SL:KB] } @@ -949,7 +949,7 @@ void LLWearableHoldingPattern::clearCOFLinksForMissingWearables() } } -// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-3.0.0a) | Added: Catznip-2.0.0a +// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-2.0) bool LLWearableHoldingPattern::pollStopped() { // We have to keep on polling until we're sure that all callbacks have completed or they'll cause a crash @@ -969,7 +969,7 @@ bool LLWearableHoldingPattern::pollMissingWearables() // runway skip here? llwarns << self_av_string() << "skipping because LLWearableHolding pattern is invalid (superceded by later outfit request)" << llendl; -// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-3.0.0a) | Added: Catznip-2.0.0a +// [SL:KB] - Patch: Appearance-COFCorruption | Checked: 2010-04-14 (Catznip-2.0) // If we were signalled to stop then we shouldn't do anything else except poll for when it's safe to delete ourselves doOnIdleRepeating(boost::bind(&LLWearableHoldingPattern::pollStopped, this)); return true; @@ -1635,7 +1635,7 @@ bool LLAppearanceMgr::getCanReplaceCOF(const LLUUID& outfit_cat_id) // Check whether it's the base outfit. // if (outfit_cat_id.isNull() || outfit_cat_id == getBaseOutfitUUID()) -// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-21 (Catznip-3.0.0a) | Added: Catznip-2.1.2d +// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-21 (Catznip-2.1) if ( (outfit_cat_id.isNull()) || ((outfit_cat_id == getBaseOutfitUUID()) && (!isOutfitDirty())) ) // [/SL:KB] { @@ -1711,9 +1711,8 @@ void LLAppearanceMgr::filterWearableItems( if (size <= 0) continue; // S32 start_index = llmax(0,size-max_per_type); -// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-05-11 (Catznip-3.0.0a) | Added: Catznip-2.0.0h - S32 start_index = - llmax(0, size - ((LLAssetType::AT_BODYPART == LLWearableType::getAssetType((LLWearableType::EType)i)) ? 1 : max_per_type)); +// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-05-11 (Catznip-2.0) + S32 start_index = llmax(0, size - ((LLAssetType::AT_BODYPART == LLWearableType::getAssetType((LLWearableType::EType)i)) ? 1 : max_per_type)); // [/SL:KB[ for (S32 j = start_index; j " << (int) val << llendl; mAttachmentInvLinkEnabled = val; -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-2.2) if (mAttachmentInvLinkEnabled) { linkPendingAttachments(); @@ -3358,7 +3359,7 @@ void dumpAttachmentSet(const std::set& atts, const std::string& msg) void LLAppearanceMgr::registerAttachment(const LLUUID& item_id) { gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-2.2) if (isLinkInCOF(item_id)) { return; @@ -3372,7 +3373,7 @@ void LLAppearanceMgr::registerAttachment(const LLUUID& item_id) // it will trigger gAgentWariables.notifyLoadingFinished() // But it is not acceptable solution. See EXT-7777 // LLAppearanceMgr::addCOFItemLink(item_id, false); // Add COF link for item. -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-3.0.0a) | Modified: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-2.2) LLPointer cb = new LLRegisterAttachmentCallback(); LLAppearanceMgr::addCOFItemLink(item_id, false, cb); // Add COF link for item. // [/SL:KB] @@ -3386,7 +3387,7 @@ void LLAppearanceMgr::registerAttachment(const LLUUID& item_id) void LLAppearanceMgr::unregisterAttachment(const LLUUID& item_id) { gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-2.2) uuid_vec_t::iterator itPendingAttachLink = std::find(mPendingAttachLinks.begin(), mPendingAttachLinks.end(), item_id); if (itPendingAttachLink != mPendingAttachLinks.end()) { @@ -3404,7 +3405,7 @@ void LLAppearanceMgr::unregisterAttachment(const LLUUID& item_id) } } -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-3.0.0a) | Modified: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-2.2) void LLAppearanceMgr::linkPendingAttachments() { LLPointer cb = NULL; @@ -3415,7 +3416,9 @@ void LLAppearanceMgr::linkPendingAttachments() if ( (gAgentAvatarp->isWearingAttachment(idAttachItem)) && (!isLinkInCOF(idAttachItem)) ) { if (!cb) + { cb = new LLRegisterAttachmentCallback(); + } LLAppearanceMgr::addCOFItemLink(idAttachItem, false, cb); } } @@ -3428,11 +3431,15 @@ void LLAppearanceMgr::onRegisterAttachmentComplete(const LLUUID& idItem) // Remove the attachment from the pending list uuid_vec_t::iterator itPendingAttachLink = std::find(mPendingAttachLinks.begin(), mPendingAttachLinks.end(), idItemBase); if (itPendingAttachLink != mPendingAttachLinks.end()) + { mPendingAttachLinks.erase(itPendingAttachLink); + } // It may have been detached already in which case we should remove the COF link if ( (isAgentAvatarValid()) && (!gAgentAvatarp->isWearingAttachment(idItemBase)) ) + { removeCOFItemLinks(idItemBase); + } } // [/SL:KB] diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index c93733bd69..e223563916 100755 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -224,7 +224,7 @@ private: std::auto_ptr mUnlockOutfitTimer; -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-3.0.0a) | Modified: Catznip-2.1.2e +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-2.1) public: void linkPendingAttachments(); void onRegisterAttachmentComplete(const LLUUID& idItem); @@ -258,7 +258,7 @@ private: bool mUpdateBaseOrder; }; -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-08-31 (Catznip-3.0.0a) | Added: Catznip-2.1.2a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-08-31 (Catznip-2.1) class LLRegisterAttachmentCallback : public LLInventoryCallback { public: diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 431f657af1..0804bfbcdb 100755 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -3348,7 +3348,7 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags) // BAP change once we're no longer treating regular categories as ensembles. const bool is_ensemble = (type == LLFolderType::FT_NONE || LLFolderType::lookupIsEnsembleType(type)); -// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-3.0.0a) | Added: Catznip-2.4.0e +// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-2.4) const bool is_outfit = (type == LLFolderType::FT_OUTFIT); // [/SL:KB] @@ -3410,7 +3410,7 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags) mDisabledItems.push_back(std::string("Remove From Outfit")); } // if (!LLAppearanceMgr::instance().getCanReplaceCOF(mUUID)) -// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-3.0.0a) | Added: Catznip-2.4.0e +// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-2.4) if ( ((is_outfit) && (!LLAppearanceMgr::instance().getCanReplaceCOF(mUUID))) || ((!is_outfit) && (gAgentWearables.isCOFChangeInProgress())) ) // [/SL:KB] @@ -5098,7 +5098,11 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action) else if(item && item->isFinished()) { // must be in library. copy it to our inventory and put it on. - LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0)); +// LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0)); +// [SL:KB] - Patch: Appearance-DnDWear | Checked: 2013-02-04 (Catznip-3.4) + // "Wear" from inventory replaces, so library items should too + LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0, true)); +// [/SL;KB] copy_inventory_item( gAgent.getID(), item->getPermissions().getOwner(), diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 862d7d9ef5..1877460fbc 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -1710,9 +1710,9 @@ EAcceptance LLToolDragAndDrop::dad3dRezAttachmentFromInv( if(mSource == SOURCE_LIBRARY) { // LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0)); -// [SL:KB] - Patch: Appearance-DnDWear | Checked: 2010-09-28 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-DnDWear | Checked: 2010-09-28 (Catznip-2.2) // Make this behave consistent with dad3dWearItem - LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0)); + LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0, !(mask & MASK_CONTROL))); // [/SL:KB] copy_inventory_item( gAgent.getID(), @@ -1725,7 +1725,7 @@ EAcceptance LLToolDragAndDrop::dad3dRezAttachmentFromInv( else { // rez_attachment(item, 0); -// [SL:KB] - Patch: Appearance-DnDWear | Checked: 2010-09-28 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-DnDWear | Checked: 2010-09-28 (Catznip-2.2) // Make this behave consistent with dad3dWearItem rez_attachment(item, 0, !(mask & MASK_CONTROL)); // [/SL:KB] diff --git a/indra/newview/llviewerattachmenu.cpp b/indra/newview/llviewerattachmenu.cpp index 3975292ed3..2d015fc8c1 100644 --- a/indra/newview/llviewerattachmenu.cpp +++ b/indra/newview/llviewerattachmenu.cpp @@ -121,7 +121,10 @@ void LLViewerAttachMenu::attachObjects(const uuid_vec_t& items, const std::strin else if(item && item->isFinished()) { // must be in library. copy it to our inventory and put it on. - LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, attachmentp)); +// LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, attachmentp)); +// [SL:KB] - Patch: Appearance-DnDWear | Checked: 2013-02-04 (Catznip-3.4) + LLPointer cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, attachmentp, false)); +// [/SL;KB] copy_inventory_item(gAgent.getID(), item->getPermissions().getOwner(), item->getUUID(), diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 5fff05fcc3..2891613d91 100755 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -955,12 +955,6 @@ void LLInventoryCallbackManager::fire(U32 callback_id, const LLUUID& item_id) //void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp) // [SL:KB] - Patch: Appearance-DnDWear | Checked: 2010-09-28 (Catznip-3.4) -void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp) -{ - // Can't use default params for boost callbacks - rez_attachment_cb(inv_item, attachmentp, false); -} - void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp, bool replace) // [/SL:KB] { diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index 22bf4a2902..f095d1d3ca 100755 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -245,7 +245,6 @@ public: class LLViewerJointAttachment; // [SL:KB] - Patch: Appearance-DnDWear | Checked: 2010-09-28 (Catznip-3.4) -void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp); void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp, bool replace); // [/SL:KB] //void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp); diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp index 46ce4572a6..66a6912721 100644 --- a/indra/newview/llviewerjointattachment.cpp +++ b/indra/newview/llviewerjointattachment.cpp @@ -177,7 +177,7 @@ BOOL LLViewerJointAttachment::addObject(LLViewerObject* object) // re-connect object to the joint correctly } -// [SL:KB] - Patch: Appearance-Misc | Checked: Catznip-3.0.0a (2011-01-13) | Added: Catznip-2.4.0h +// [SL:KB] - Patch: Appearance-Misc | Checked: 2011-01-13 (Catznip-2.4) // LLViewerJointAttachment::removeObject() sets the object's item to the NULL UUID so we need to extract it *after* the block above object->extractAttachmentItemID(); // [/SL:KB] diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 8367531c47..7461a71a7d 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -5764,7 +5764,7 @@ BOOL LLVOAvatar::processFullyLoadedChange(bool loading) BOOL LLVOAvatar::isFullyLoaded() const { // return (mRenderUnloadedAvatar || mFullyLoaded); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-3.0.0a) | Added: Catznip-2.2.0a +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.2) // Changes to LLAppearanceMgr::updateAppearanceFromCOF() expect this function to actually return mFullyLoaded for gAgentAvatarp return (mRenderUnloadedAvatar && !isSelf()) ||(mFullyLoaded); // [/SL:KB] diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp index 06804a9536..4b77385f99 100755 --- a/indra/newview/llwearablelist.cpp +++ b/indra/newview/llwearablelist.cpp @@ -99,18 +99,24 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID BOOL isNewWearable = FALSE; LLWearableArrivedData* data = (LLWearableArrivedData*) userdata; // LLViewerWearable* wearable = NULL; // NULL indicates failure -// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-08-13 (Catznip-3.0.0a) | Added: Catznip-2.1.1d +// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-08-13 (Catznip-2.1) LLViewerWearable* wearable = get_if_there(LLWearableList::instance().mList, uuid, (LLViewerWearable*)NULL); if (wearable) { + LL_DEBUGS("Wearable") << "processGetAssetReply()" << LL_ENDL; + LL_DEBUGS("Wearable") << wearable << LL_ENDL; + if(data->mCallback) + { data->mCallback(wearable, data->mUserdata); + } delete data; + return; } // [/SL:KB] LLAvatarAppearance *avatarp = data->mAvatarp; - + if( !filename ) { LL_WARNS("Wearable") << "Bad Wearable Asset: missing file." << LL_ENDL; From f8fd336eb63a1ca98591994b5aeb033764faee25 Mon Sep 17 00:00:00 2001 From: Kitty Barnett Date: Mon, 4 Feb 2013 21:07:13 +0100 Subject: [PATCH 6/6] Updated patch branch dependencies --HG-- branch : .RLVa --- .hgpatchinfo/.RLVa.dep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.hgpatchinfo/.RLVa.dep b/.hgpatchinfo/.RLVa.dep index bd837bf003..5dc12bb2a7 100644 --- a/.hgpatchinfo/.RLVa.dep +++ b/.hgpatchinfo/.RLVa.dep @@ -1,2 +1,2 @@ -e8051774675e44cee30899025e3dde3c7b53f56e -74b634a905fe2eb7f25cf8e487fa5b7fbd1f96d7 \ No newline at end of file +db4f80bf75c83fa193d361f84f3dfca39b045adb +72265032c8e13ebdb9e2b4a80b10e9e804ef9a63 \ No newline at end of file