summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2024-07-01 13:02:49 +0300
committerMnikolenko Productengine <mnikolenko@productengine.com>2024-07-01 13:02:49 +0300
commit07f0f12bcbe864177a145b074c2739eaf08f2c5c (patch)
tree520b3e4c581e993be11e3ca680463834f4ddb162 /indra
parenteb6d24e531aa5faa251b7aaf8b13c62f06708696 (diff)
Move error strings to strings.xml; pass wearable type and is_worn flag for outfit items
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llappearancelistener.cpp20
-rw-r--r--indra/newview/llappearancemgr.cpp9
-rw-r--r--indra/newview/scripts/lua/test_outfits_list.lua8
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml4
4 files changed, 29 insertions, 12 deletions
diff --git a/indra/newview/llappearancelistener.cpp b/indra/newview/llappearancelistener.cpp
index 11037a0078..3db2c64b78 100644
--- a/indra/newview/llappearancelistener.cpp
+++ b/indra/newview/llappearancelistener.cpp
@@ -29,8 +29,9 @@
#include "llappearancemgr.h"
#include "llinventoryfunctions.h"
-#include "stringize.h"
+#include "lltransutil.h"
#include "llwearableitemslist.h"
+#include "stringize.h"
LLAppearanceListener::LLAppearanceListener()
: LLEventAPI("LLAppearance",
@@ -65,7 +66,7 @@ LLAppearanceListener::LLAppearanceListener()
&LLAppearanceListener::getOutfitsList);
add("getOutfitItems",
- "Return the table of items(id and name) inside specified outfit folder",
+ "Return the table of items with info(id : name, wearable_type, is_worn) inside specified outfit folder",
&LLAppearanceListener::getOutfitItems);
}
@@ -76,19 +77,19 @@ void LLAppearanceListener::wearOutfit(LLSD const &data)
LLViewerInventoryCategory* cat = gInventory.getCategory(data["folder_id"].asUUID());
if (!cat)
{
- response.error(stringize("Couldn't find outfit ", data["folder_id"].asUUID()));
+ response.error(stringize(LLTrans::getString("OutfitNotFound"), data["folder_id"].asUUID()));
return;
}
if (LLFolderType::lookupIsProtectedType(cat->getPreferredType()))
{
- response.error(stringize("Can't wear system folder ", data["folder_id"].asUUID()));
+ response.error(stringize(LLTrans::getString("SystemFolderNotWorn"), data["folder_id"].asUUID()));
return;
}
bool append = data["append"].asBoolean();
bool can_wear = append ? LLAppearanceMgr::instance().getCanAddToCOF(cat->getUUID()) : LLAppearanceMgr::instance().getCanReplaceCOF(cat->getUUID());
if (!can_wear)
{
- std::string msg = append ? "Can't add to COF outfit " : "Can't replace COF with outfit ";
+ std::string msg = append ? LLTrans::getString("OutfitNotAdded") : LLTrans::getString("OutfitNotReplaced");
response.error(stringize(msg, std::quoted(cat->getName()), " , id: ", cat->getUUID()));
return;
}
@@ -141,7 +142,7 @@ void LLAppearanceListener::getOutfitItems(LLSD const &data)
LLViewerInventoryCategory *cat = gInventory.getCategory(outfit_id);
if (!cat || cat->getPreferredType() != LLFolderType::FT_OUTFIT)
{
- response.error(stringize("Can't find outfit folder with id: ", outfit_id.asString()));
+ response.error(stringize(LLTrans::getString("OutfitNotFound"), outfit_id.asString()));
}
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t item_array;
@@ -151,7 +152,12 @@ void LLAppearanceListener::getOutfitItems(LLSD const &data)
LLSD items_data;
for (const LLPointer<LLViewerInventoryItem> &it : item_array)
{
- items_data[it->getUUID().asString()] = it->getName();
+ LLSD info;
+ info["name"] = it->getName();
+ info["wearable_type"] = LLWearableType::getInstance()->getTypeName(it->isWearableType() ? it->getWearableType() : LLWearableType::WT_NONE);
+ info["is_worn"] = get_is_item_worn(it);
+
+ items_data[it->getUUID().asString()] = info;
}
response["items"] = items_data;
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 19b81f5a79..3d13f8afc8 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -49,6 +49,7 @@
#include "lloutfitslist.h"
#include "llselectmgr.h"
#include "llsidepanelappearance.h"
+#include "lltransutil.h"
#include "llviewerobjectlist.h"
#include "llvoavatar.h"
#include "llvoavatarself.h"
@@ -2941,14 +2942,14 @@ bool LLAppearanceMgr::wearOutfitByName(const std::string& name, bool append, std
bool is_system_folder = LLFolderType::lookupIsProtectedType(cat->getPreferredType());
if (is_system_folder)
{
- error_msg = stringize("Can't wear system folder ", std::quoted(name));
+ error_msg = stringize(LLTrans::getString("SystemFolderNotWorn"), std::quoted(name));
return false;
}
bool can_wear = append ? getCanAddToCOF(cat->getUUID()) : getCanReplaceCOF(cat->getUUID());
if (!can_wear)
{
- std::string msg = append ? "Can't add to COF outfit " : "Can't replace COF with outfit ";
- error_msg = stringize(msg, std::quoted(name), " , id: ", cat->getUUID());
+ std::string msg = append ? LLTrans::getString("OutfitNotAdded") : LLTrans::getString("OutfitNotReplaced");
+ error_msg = stringize(msg, std::quoted(name), ", id: ", cat->getUUID());
LL_WARNS() << error_msg << LL_ENDL;
return false;
}
@@ -2956,7 +2957,7 @@ bool LLAppearanceMgr::wearOutfitByName(const std::string& name, bool append, std
}
else
{
- error_msg = stringize("Couldn't find outfit ", std::quoted(name));
+ error_msg = stringize(LLTrans::getString("OutfitNotFound"), std::quoted(name));
LL_WARNS() << error_msg << LL_ENDL;
return false;
}
diff --git a/indra/newview/scripts/lua/test_outfits_list.lua b/indra/newview/scripts/lua/test_outfits_list.lua
index dd5f914402..1011029f34 100644
--- a/indra/newview/scripts/lua/test_outfits_list.lua
+++ b/indra/newview/scripts/lua/test_outfits_list.lua
@@ -34,7 +34,13 @@ function populate_list()
action_data.action = "add_list_element"
action_data.ctrl_name = "outfits_list"
local outfits = {}
- for uuid, name in pairs(DATA_MAP) do
+ for uuid, info in pairs(DATA_MAP) do
+ name = {}
+ if SHOW_OUTFITS then
+ name = info
+ else
+ name = info.name
+ end
table.insert(outfits, {value = uuid, columns={column = "outfit_name", value = name}})
end
action_data.value = outfits
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 76a2660dbb..492b29fbc7 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -4028,6 +4028,10 @@ Please check http://status.secondlifegrid.net to see if there is a known problem
<string name="DeleteItem">Delete selected item?</string>
<string name="EmptyOutfitText">There are no items in this outfit</string>
+ <string name="OutfitNotFound" value="Couldn't find outfit "/>
+ <string name="OutfitNotAdded" value="Can't add to COF outfit "/>
+ <string name="OutfitNotReplaced" value="Can't replace COF with outfit "/>
+ <string name="SystemFolderNotWorn" value="Can't wear system folder "/>
<!-- External editor status codes -->
<string name="ExternalEditorNotSet">Select an editor by setting the environment variable LL_SCRIPT_EDITOR or the ExternalEditor setting.