From 9e8dafc4ca20d48001ec9b19adfc9c79926cb1ef Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Mon, 17 Dec 2012 17:17:12 -0500 Subject: [PATCH] Satisfy Issue 167: Ability to set global "add instead of wear" option in prefs Adds debug setting LiruAddNotReplace. Adds "Add clothing and wearables instead of replacing them" to Main (General) tab of Vanity Preferences. --- indra/newview/app_settings/settings.xml | 11 +++++++++++ indra/newview/ascentprefsvan.cpp | 2 ++ indra/newview/ascentprefsvan.h | 1 + indra/newview/llinventorybridge.cpp | 6 ++++-- .../xui/en-us/panel_preferences_ascent_vanity.xml | 1 + 5 files changed, 19 insertions(+), 2 deletions(-) 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 @@ +