diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 340e0dc8e..f1994c6a0 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -693,6 +693,17 @@ Value 0 + LiruAddNotReplace + + Comment + Add clothing and attachments instead of having them replace the currently worn or attached item at their destination. + Persist + 1 + Type + Boolean + Value + 0 + LiruFlyAfterTeleport Comment diff --git a/indra/newview/ascentprefsvan.cpp b/indra/newview/ascentprefsvan.cpp index 53f0d5751..3a9180135 100644 --- a/indra/newview/ascentprefsvan.cpp +++ b/indra/newview/ascentprefsvan.cpp @@ -178,6 +178,7 @@ void LLPrefsAscentVan::refreshValues() mPlayTPSound = gSavedSettings.getBOOL("OptionPlayTpSound"); mShowLogScreens = !gSavedSettings.getBOOL("AscentDisableLogoutScreens"); mDisableChatAnimation = gSavedSettings.getBOOL("SGDisableChatAnimation"); + mAddNotReplace = gSavedSettings.getBOOL("LiruAddNotReplace"); //Tags\Colors ---------------------------------------------------------------------------- mAscentUseTag = gSavedSettings.getBOOL("AscentUseTag"); @@ -252,6 +253,7 @@ void LLPrefsAscentVan::cancel() gSavedSettings.setBOOL("OptionPlayTpSound", mPlayTPSound); gSavedSettings.setBOOL("AscentDisableLogoutScreens", !mShowLogScreens); gSavedSettings.setBOOL("SGDisableChatAnimation", mDisableChatAnimation); + gSavedSettings.setBOOL("LiruAddNotReplace", mAddNotReplace); //Tags\Colors ---------------------------------------------------------------------------- gSavedSettings.setBOOL("AscentUseTag", mAscentUseTag); diff --git a/indra/newview/ascentprefsvan.h b/indra/newview/ascentprefsvan.h index 115b1c206..4dc788979 100644 --- a/indra/newview/ascentprefsvan.h +++ b/indra/newview/ascentprefsvan.h @@ -58,6 +58,7 @@ protected: BOOL mPlayTPSound; BOOL mShowLogScreens; bool mDisableChatAnimation; + bool mAddNotReplace; //Tags\Colors BOOL mAscentUseTag; std::string mReportClientUUID; diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index d7f81a3b7..8fa2a2f53 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -5347,9 +5347,10 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action) void LLObjectBridge::openItem() { + static LLCachedControl add(gSavedSettings, "LiruAddNotReplace"); // object double-click action is to wear/unwear object performAction(getInventoryModel(), - get_is_item_worn(mUUID) ? "detach" : "attach"); + get_is_item_worn(mUUID) ? "detach" : (add ? "wear_add" : "attach")); } std::string LLObjectBridge::getLabelSuffix() const @@ -6803,10 +6804,11 @@ void LLWearableBridgeAction::wearOnAvatar() { // TODO: investigate wearables may not be loaded at this point EXT-8231 + static LLCachedControl add(gSavedSettings, "LiruAddNotReplace"); LLViewerInventoryItem* item = getItem(); if(item) { - LLAppearanceMgr::instance().wearItemOnAvatar(item->getUUID(), true, true); + LLAppearanceMgr::instance().wearItemOnAvatar(item->getUUID(), true, !add); } } diff --git a/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_vanity.xml b/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_vanity.xml index 93b8c245d..32c5d9ca1 100644 --- a/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_vanity.xml +++ b/indra/newview/skins/default/xui/en-us/panel_preferences_ascent_vanity.xml @@ -7,6 +7,7 @@ +