diff --git a/.hgpatchinfo/Appearance-Misc.dep b/.hgpatchinfo/Appearance-Misc.dep index dd3a18391c..1cea281640 100644 --- a/.hgpatchinfo/Appearance-Misc.dep +++ b/.hgpatchinfo/Appearance-Misc.dep @@ -1 +1 @@ -1f57f946a99fad2a548778f00b39156577272b08 \ No newline at end of file +6fe7cc30ebc09cfe92787b71fa9dc55fd0396ec5 \ No newline at end of file diff --git a/.hgpatchinfo/RLVa.dep b/.hgpatchinfo/RLVa.dep index 1262fa6654..07f2e4f2f9 100644 --- a/.hgpatchinfo/RLVa.dep +++ b/.hgpatchinfo/RLVa.dep @@ -1 +1 @@ -117062f159b585cb62a2011ba6afc5a0142bac19 \ No newline at end of file +543c14d1270ba0327474287b08ae6463d8c03fdb \ No newline at end of file diff --git a/.hgpatchinfo/Viewer-Build.dep b/.hgpatchinfo/Viewer-Build.dep index 215636babc..ac16606ab8 100644 --- a/.hgpatchinfo/Viewer-Build.dep +++ b/.hgpatchinfo/Viewer-Build.dep @@ -1 +1 @@ -a1402f717095c1483da139f6249ae38212ad9a8a \ No newline at end of file +a48d42d15595c42a3ccb17a7c5ed246b87225cf3 \ No newline at end of file diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 9bfdb59d49..99719e1f21 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1389,7 +1389,7 @@ Type Boolean Value - 0 + 1 WarnFirstRLVGiveToRLV diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 47b45e7c84..ede3e87868 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -1298,24 +1298,22 @@ static void removeDuplicateItems(LLInventoryModel::item_array_t& items) items = new_items; } -// [SL:KB] - Patch: Appearance-WearableDuplicateAssets | Checked: 2011-07-24 (Catznip-2.6.0e) | Added: Catznip-2.6.0e +// [SL:KB] - Patch: Appearance-WearableDuplicateAssets | Checked: 2015-06-30 (Catznip-3.7) static void removeDuplicateWearableItemsByAssetID(LLInventoryModel::item_array_t& items) { std::set idsAsset; - - LLInventoryModel::item_array_t::const_iterator itItem = items.begin(); - while (itItem != items.end()) - { - const LLViewerInventoryItem* pItem = *itItem; - if (pItem->isWearableType()) + items.erase(std::remove_if(items.begin(), items.end(), + [&idsAsset](const LLViewerInventoryItem* pItem) { - if (idsAsset.end() == idsAsset.find(pItem->getAssetUUID())) - idsAsset.insert(pItem->getAssetUUID()); - else - itItem = items.erase(itItem); - } - ++itItem; - } + if (pItem->isWearableType()) + { + const LLUUID& idAsset = pItem->getAssetUUID(); + if ( (idAsset.notNull()) && (idsAsset.end() != idsAsset.find(idAsset)) ) + return true; + idsAsset.insert(idAsset); + } + return false; + }), items.end()); } // [/SL:KB] diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index b2ddf1ea98..99be38af9d 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -8343,7 +8343,6 @@ void process_script_question(LLMessageSystem *msg, void **user_data) payload["owner_name"] = owner_name; // [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7) - const char* notification = "ScriptQuestion"; if (rlv_handler_t::isEnabled()) { RlvUtil::filterScriptQuestions(questions, payload); @@ -8367,17 +8366,18 @@ void process_script_question(LLMessageSystem *msg, void **user_data) } } - if ( (!caution) && (!questions) ) + if ( (!caution) && (!questions) && (experienceid.isNull()) ) { LLNotifications::instance().forceResponse( LLNotification::Params("ScriptQuestion").substitutions(args).payload(payload), 0/*YES*/); + return; } - else if (caution && gSavedSettings.getBOOL("PermissionsCautionEnabled")) // [/RLVa:KB] - // check whether cautions are even enabled or not - //const char* notification = "ScriptQuestion"; - //if(caution && gSavedSettings.getBOOL("PermissionsCautionEnabled")) + // check whether cautions are even enabled or not + const char* notification = "ScriptQuestion"; + + if(caution && gSavedSettings.getBOOL("PermissionsCautionEnabled")) { args["FOOTERTEXT"] = (count > 1) ? LLTrans::getString("AdditionalPermissionsRequestHeader") + "\n\n" + script_question : ""; notification = "ScriptQuestionCaution"; diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp index b09cc786f1..13d592f47c 100644 --- a/indra/newview/rlvcommon.cpp +++ b/indra/newview/rlvcommon.cpp @@ -24,7 +24,6 @@ #include "llviewerparcelmgr.h" #include "llviewermenu.h" #include "llviewerregion.h" -#include "llviewerstats.h" #include "llworld.h" #include "rlvactions.h" diff --git a/indra/newview/rlvextensions.cpp b/indra/newview/rlvextensions.cpp index 95a0c2bd00..32c227d3e9 100644 --- a/indra/newview/rlvextensions.cpp +++ b/indra/newview/rlvextensions.cpp @@ -18,7 +18,6 @@ #include "llagent.h" #include "llagentcamera.h" #include "lldaycyclemanager.h" -#include "llviewercontrol.h" #include "llvoavatarself.h" #include "llwlparammanager.h" diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 75a18fc16e..86694ff22b 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -27,6 +27,7 @@ #include "llviewerregion.h" #include "rlvhandler.h" +#include "rlvhelper.h" #include "rlvinventory.h" #include "rlvlocks.h" #include "rlvui.h" diff --git a/indra/newview/rlvhelper.cpp b/indra/newview/rlvhelper.cpp index 1b5c3cb41c..983778df94 100644 --- a/indra/newview/rlvhelper.cpp +++ b/indra/newview/rlvhelper.cpp @@ -15,15 +15,11 @@ */ #include "llviewerprecompiledheaders.h" -#include "llagent.h" -#include "llagentwearables.h" #include "llappearancemgr.h" #include "llattachmentsmgr.h" #include "llgesturemgr.h" #include "llnotificationsutil.h" -#include "llviewerobject.h" #include "llviewerobjectlist.h" -#include "llwlparammanager.h" // FIRE-4453 bridge detached by the RLV command @remattach=force #include "fslslbridge.h" @@ -1031,8 +1027,17 @@ void RlvForceWear::done() LLAppearanceMgr::instance().removeItemsFromAvatar(remItems, cb, true); } - if ( (!addBodyParts.empty()) || (!addClothing.empty()) || (!m_addGestures.empty()) ) + if ( (addBodyParts.empty()) && (!addClothing.empty()) && (m_addGestures.empty()) ) { + // Clothing items only + uuid_vec_t idClothing; + for (const LLViewerInventoryItem* pItem : addClothing) + idClothing.push_back(pItem->getUUID()); + LLAppearanceMgr::instance().wearItemsOnAvatar(idClothing, false, false, cb); + } + else if ( (!addBodyParts.empty()) || (!addClothing.empty()) || (!m_addGestures.empty()) ) + { + // Mixture of body parts, clothing and/or gestures LLInventoryModel::item_array_t addAttachments; LLAppearanceMgr::instance().updateCOF(addBodyParts, addClothing, addAttachments, m_addGestures, true, LLUUID::null, cb); diff --git a/indra/newview/rlvhelper.h b/indra/newview/rlvhelper.h index 2396c47d3f..e299e5b6fb 100644 --- a/indra/newview/rlvhelper.h +++ b/indra/newview/rlvhelper.h @@ -21,7 +21,6 @@ #include "llinventorymodel.h" #include "llviewerinventory.h" #include "llwearabletype.h" -#include "llwlparamset.h" #include "rlvdefines.h" #include "rlvcommon.h" diff --git a/indra/newview/rlvinventory.cpp b/indra/newview/rlvinventory.cpp index 351e12a96d..8385bd954c 100644 --- a/indra/newview/rlvinventory.cpp +++ b/indra/newview/rlvinventory.cpp @@ -17,18 +17,11 @@ #include "llviewerprecompiledheaders.h" #include "llagent.h" #include "llappearancemgr.h" -#include "llinventoryobserver.h" #include "llstartup.h" #include "llviewerfoldertype.h" #include "llviewermessage.h" -#include "llviewerobject.h" -#include "llvoavatarself.h" -#include "rlvdefines.h" -#include "rlvcommon.h" -#include "rlvlocks.h" #include "rlvinventory.h" -#include "rlvhandler.h" #include "boost/algorithm/string.hpp" @@ -535,7 +528,7 @@ bool RlvGiveToRLVOffer::createDestinationFolder(const std::string& strPath) const LLUUID& idRlvRoot = RlvInventory::instance().getSharedRootID(); if (idRlvRoot.notNull()) { - onCategoryCreateCallback(idRlvRoot, this); + onCategoryCreateCallback(idRlvRoot, this); } else { diff --git a/indra/newview/rlvinventory.h b/indra/newview/rlvinventory.h index 10a6e56520..167f8a91f4 100644 --- a/indra/newview/rlvinventory.h +++ b/indra/newview/rlvinventory.h @@ -18,12 +18,9 @@ #define RLV_INVENTORY_H #include "llinventoryfunctions.h" -#include "llinventorymodel.h" #include "llinventoryobserver.h" #include "llsingleton.h" -#include "llviewerinventory.h" -#include "rlvcommon.h" #include "rlvhelper.h" #include "rlvlocks.h" diff --git a/indra/newview/rlvlocks.cpp b/indra/newview/rlvlocks.cpp index 2a87d2ef6f..4bbfa71d7f 100644 --- a/indra/newview/rlvlocks.cpp +++ b/indra/newview/rlvlocks.cpp @@ -19,7 +19,6 @@ #include "llagent.h" #include "llappearancemgr.h" #include "llattachmentsmgr.h" -#include "llinventoryobserver.h" #include "lloutfitobserver.h" #include "llviewerobjectlist.h" #include "pipeline.h" diff --git a/indra/newview/rlvui.cpp b/indra/newview/rlvui.cpp index ada585d87f..fd2190cec1 100644 --- a/indra/newview/rlvui.cpp +++ b/indra/newview/rlvui.cpp @@ -37,7 +37,6 @@ #include "llsidepanelappearance.h" #include "lltabcontainer.h" #include "llteleporthistory.h" -#include "llteleporthistorystorage.h" #include "lltoolmgr.h" #include "llviewerparcelmgr.h" #include "llviewerregion.h"