diff --git a/indra/newview/fsassetblacklist.cpp b/indra/newview/fsassetblacklist.cpp index ce42f0c257..c99b4ea6c3 100644 --- a/indra/newview/fsassetblacklist.cpp +++ b/indra/newview/fsassetblacklist.cpp @@ -104,12 +104,12 @@ bool FSAssetBlacklist::isBlacklisted(const LLUUID& id, LLAssetType::EType type, } const LLSD& data = data_it->second; - if (!data.has("asset_flag")) + if (!data.has("asset_blacklist_flag")) { return false; } - eBlacklistFlag stored_flag = static_cast(data["asset_flag"].asInteger()); + eBlacklistFlag stored_flag = static_cast(data["asset_blacklist_flag"].asInteger()); return (static_cast(stored_flag) & static_cast(flag)) != 0; } @@ -130,8 +130,8 @@ void FSAssetBlacklist::addNewItemToBlacklist(const LLUUID& id, const std::string { data = it->second; - S32 existing_flag = data.has("asset_flag") ? data["asset_flag"].asInteger() : 0; - data["asset_flag"] = static_cast(existing_flag | static_cast(flag)); + S32 existing_flag = data.has("asset_blacklist_flag") ? data["asset_blacklist_flag"].asInteger() : 0; + data["asset_blacklist_flag"] = static_cast(existing_flag | static_cast(flag)); data["asset_name"] = name; data["asset_region"] = region; @@ -146,7 +146,7 @@ void FSAssetBlacklist::addNewItemToBlacklist(const LLUUID& id, const std::string data["asset_name"] = name; data["asset_region"] = region; data["asset_type"] = type; - data["asset_flag"] = static_cast(flag); + data["asset_blacklist_flag"] = static_cast(flag); data["asset_date"] = input_date; data["asset_permanent"] = permanent; @@ -218,7 +218,7 @@ void FSAssetBlacklist::removeFlagsFromItem(const LLUUID& id, S32 combined_flags) } LLSD& data = it->second; - S32 current_flags = data.has("asset_flag") ? data["asset_flag"].asInteger() : 0; + S32 current_flags = data.has("asset_blacklist_flag") ? data["asset_blacklist_flag"].asInteger() : 0; current_flags &= ~combined_flags; @@ -228,7 +228,7 @@ void FSAssetBlacklist::removeFlagsFromItem(const LLUUID& id, S32 combined_flags) } else { - data["asset_flag"] = current_flags; + data["asset_blacklist_flag"] = current_flags; addNewItemToBlacklistData(id, data, true); if (!mBlacklistChangedCallback.empty()) @@ -253,7 +253,7 @@ void FSAssetBlacklist::addNewItemToBlacklistData(const LLUUID& id, const LLSD& d mBlacklistData[id] = data; } - if (type == LLAssetType::AT_SOUND && data["flag"].asInteger() == 0) + if (type == LLAssetType::AT_SOUND && data["asset_blacklist_flag"].asInteger() == 0) { LLFileSystem::removeFile(id, LLAssetType::AT_SOUND); std::string wav_path = gDirUtilp->getExpandedFilename(LL_PATH_FS_SOUND_CACHE, id.asString()) + ".dsf"; diff --git a/indra/newview/fsassetblacklist.h b/indra/newview/fsassetblacklist.h index a6dc3b103f..4042a65561 100644 --- a/indra/newview/fsassetblacklist.h +++ b/indra/newview/fsassetblacklist.h @@ -50,7 +50,9 @@ public: NONE = 0, WORN = 1 << 0, REZZED = 1 << 1, - GESTURE = 1 << 2 + GESTURE = 1 << 2, + + LAST_FLAG = 1 << 2 }; bool isBlacklisted(const LLUUID& id, LLAssetType::EType type, eBlacklistFlag flag = eBlacklistFlag::NONE); void addNewItemToBlacklist(const LLUUID& id, const std::string& name, const std::string& region, LLAssetType::EType type, eBlacklistFlag flag = eBlacklistFlag::NONE,bool permanent = true, bool save = true); diff --git a/indra/newview/fsfloaterassetblacklist.cpp b/indra/newview/fsfloaterassetblacklist.cpp index 7c02e614ff..aadbc6f63e 100644 --- a/indra/newview/fsfloaterassetblacklist.cpp +++ b/indra/newview/fsfloaterassetblacklist.cpp @@ -92,9 +92,9 @@ void FSFloaterAssetBlacklist::onOpen(const LLSD& key) FSAssetBlacklist::eBlacklistFlag FSFloaterAssetBlacklist::getFlagFromLLSD(const LLSD& data) { - if (data.has("asset_flag")) + if (data.has("asset_blacklist_flag")) { - return static_cast(data["asset_flag"].asInteger()); + return static_cast(data["asset_blacklist_flag"].asInteger()); } return FSAssetBlacklist::eBlacklistFlag::NONE; } @@ -122,14 +122,16 @@ std::string FSFloaterAssetBlacklist::getFlagString(FSAssetBlacklist::eBlacklistF { switch (flag) { + case FSAssetBlacklist::eBlacklistFlag::NONE: + return getString("blacklist_flag_none"); case FSAssetBlacklist::eBlacklistFlag::WORN: - return getString("asset_avatar_worn_sounds"); + return getString("blacklist_flag_mute_avatar_worn_objects_sounds"); case FSAssetBlacklist::eBlacklistFlag::REZZED: - return getString("asset_avatar_rezzed_sounds"); + return getString("blacklist_flag_mute_avatar_rezzed_objects_sounds"); case FSAssetBlacklist::eBlacklistFlag::GESTURE: - return getString("asset_avatar_gesture_sounds"); + return getString("blacklist_flag_mute_avatar_gestures_sounds"); default: - return getString("asset_sound"); + return getString("blacklist_flag_unknown"); } } @@ -160,79 +162,56 @@ void FSFloaterAssetBlacklist::addElementToList(const LLUUID& id, const LLSD& dat LLStringUtil::format(date_str, substitution); const S32 asset_type = data["asset_type"].asInteger(); + S32 flags = data.has("asset_blacklist_flag") && data["asset_blacklist_flag"].asInteger() > 0 ? data["asset_blacklist_flag"].asInteger() : static_cast(FSAssetBlacklist::eBlacklistFlag::NONE); + const S32 last_flag_value = static_cast(FSAssetBlacklist::eBlacklistFlag::LAST_FLAG); - if (data.has("asset_flag") && data["asset_flag"].asInteger() > 0) + for (S32 flag_value = 1; flag_value <= last_flag_value; flag_value <<= 1) { - S32 flags = data["asset_flag"].asInteger(); - - for (S32 flag_value = 1; flag_value <= static_cast(FSAssetBlacklist::eBlacklistFlag::GESTURE); flag_value <<= 1) + if ((flags & flag_value) || flags == static_cast(FSAssetBlacklist::eBlacklistFlag::NONE)) { - if (flags & flag_value) - { - FSAssetBlacklist::eBlacklistFlag flag = static_cast(flag_value); + FSAssetBlacklist::eBlacklistFlag flag = static_cast(flag_value); - LLSD element; - element["id"] = id; - element["columns"][0]["column"] = "name"; - element["columns"][0]["type"] = "text"; - element["columns"][0]["value"] = !data["asset_name"].asString().empty() ? data["asset_name"].asString() : getString("unknown_object"); - element["columns"][1]["column"] = "region"; - element["columns"][1]["type"] = "text"; - element["columns"][1]["value"] = !data["asset_region"].asString().empty() ? data["asset_region"].asString() : getString("unknown_region"); - element["columns"][2]["column"] = "type"; - element["columns"][2]["type"] = "text"; - element["columns"][2]["value"] = getFlagString(flag); - element["columns"][3]["column"] = "date"; - element["columns"][3]["type"] = "text"; - element["columns"][3]["value"] = date_str; - element["columns"][4]["column"] = "permanent"; - element["columns"][4]["type"] = "text"; - element["columns"][4]["halign"] = "center"; - element["columns"][4]["value"] = data["asset_permanent"].asBoolean() ? getString("asset_permanent") : LLStringUtil::null; - element["columns"][5]["column"] = "date_sort"; - element["columns"][5]["type"] = "text"; - element["columns"][5]["value"] = llformat("%u", (U64)date.secondsSinceEpoch()); - element["columns"][6]["column"] = "asset_type"; - element["columns"][6]["type"] = "integer"; - element["columns"][6]["value"] = data["asset_type"].asInteger(); + if (flags == static_cast(FSAssetBlacklist::eBlacklistFlag::NONE)) + flag = FSAssetBlacklist::eBlacklistFlag::NONE; - LLSD value; - value["flag"] = static_cast(flag); - element["alt_value"] = value; + LLSD element; + element["id"] = id; + element["columns"][0]["column"] = "name"; + element["columns"][0]["type"] = "text"; + element["columns"][0]["value"] = !data["asset_name"].asString().empty() ? data["asset_name"].asString() : getString("unknown_object"); + element["columns"][1]["column"] = "region"; + element["columns"][1]["type"] = "text"; + element["columns"][1]["value"] = !data["asset_region"].asString().empty() ? data["asset_region"].asString() : getString("unknown_region"); + element["columns"][2]["column"] = "type"; + element["columns"][2]["type"] = "text"; + element["columns"][2]["value"] = getTypeString(asset_type); + element["columns"][3]["column"] = "flags"; + element["columns"][3]["type"] = "text"; + element["columns"][3]["value"] = getFlagString(flag); + element["columns"][4]["column"] = "date"; + element["columns"][4]["type"] = "text"; + element["columns"][4]["value"] = date_str; + element["columns"][5]["column"] = "permanent"; + element["columns"][5]["type"] = "text"; + element["columns"][5]["halign"] = "center"; + element["columns"][5]["value"] = data["asset_permanent"].asBoolean() ? getString("asset_permanent") : LLStringUtil::null; + element["columns"][6]["column"] = "date_sort"; + element["columns"][6]["type"] = "text"; + element["columns"][6]["value"] = llformat("%u", (U64)date.secondsSinceEpoch()); + element["columns"][7]["column"] = "asset_type"; + element["columns"][7]["type"] = "integer"; + element["columns"][7]["value"] = data["asset_type"].asInteger(); - mResultList->addElement(element, ADD_BOTTOM); - } + LLSD value; + value["flag"] = static_cast(flag); + element["alt_value"] = value; + + mResultList->addElement(element, ADD_BOTTOM); + + if (flags == static_cast(FSAssetBlacklist::eBlacklistFlag::NONE)) + break; } } - else - { - LLSD element; - element["id"] = id; - element["columns"][0]["column"] = "name"; - element["columns"][0]["type"] = "text"; - element["columns"][0]["value"] = !data["asset_name"].asString().empty() ? data["asset_name"].asString() : getString("unknown_object"); - element["columns"][1]["column"] = "region"; - element["columns"][1]["type"] = "text"; - element["columns"][1]["value"] = !data["asset_region"].asString().empty() ? data["asset_region"].asString() : getString("unknown_region"); - element["columns"][2]["column"] = "type"; - element["columns"][2]["type"] = "text"; - element["columns"][2]["value"] = getTypeString(asset_type); - element["columns"][3]["column"] = "date"; - element["columns"][3]["type"] = "text"; - element["columns"][3]["value"] = date_str; - element["columns"][4]["column"] = "permanent"; - element["columns"][4]["type"] = "text"; - element["columns"][4]["halign"] = "center"; - element["columns"][4]["value"] = data["asset_permanent"].asBoolean() ? getString("asset_permanent") : LLStringUtil::null; - element["columns"][5]["column"] = "date_sort"; - element["columns"][5]["type"] = "text"; - element["columns"][5]["value"] = llformat("%u", (U64)date.secondsSinceEpoch()); - element["columns"][6]["column"] = "asset_type"; - element["columns"][6]["type"] = "integer"; - element["columns"][6]["value"] = data["asset_type"].asInteger(); - - mResultList->addElement(element, ADD_BOTTOM); - } } void FSFloaterAssetBlacklist::removeElements() diff --git a/indra/newview/skins/default/xui/en/floater_fs_asset_blacklist.xml b/indra/newview/skins/default/xui/en/floater_fs_asset_blacklist.xml index a1c5151184..2597b4f878 100644 --- a/indra/newview/skins/default/xui/en/floater_fs_asset_blacklist.xml +++ b/indra/newview/skins/default/xui/en/floater_fs_asset_blacklist.xml @@ -27,14 +27,19 @@ Resident - + + + Avatar worn objects sounds - + Avatar rezzed objects sounds - + Avatar gestures sounds + + + Unknow flag Unknown @@ -91,6 +96,11 @@ label="Type" width="60" /> + [UNKNOWN] Template item [UNKNOWN] Template item Unknown + None 2012-12-11 13:37:00