Added a separate column for flags and renamed variables for clarity

master
Rohacan Hirons 2025-06-11 19:10:35 +02:00
parent 0e41374743
commit 17146c4c3b
4 changed files with 75 additions and 83 deletions

View File

@ -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<eBlacklistFlag>(data["asset_flag"].asInteger());
eBlacklistFlag stored_flag = static_cast<eBlacklistFlag>(data["asset_blacklist_flag"].asInteger());
return (static_cast<int>(stored_flag) & static_cast<int>(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<S32>(existing_flag | static_cast<S32>(flag));
S32 existing_flag = data.has("asset_blacklist_flag") ? data["asset_blacklist_flag"].asInteger() : 0;
data["asset_blacklist_flag"] = static_cast<S32>(existing_flag | static_cast<S32>(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<S32>(flag);
data["asset_blacklist_flag"] = static_cast<S32>(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";

View File

@ -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);

View File

@ -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<FSAssetBlacklist::eBlacklistFlag>(data["asset_flag"].asInteger());
return static_cast<FSAssetBlacklist::eBlacklistFlag>(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<S32>(FSAssetBlacklist::eBlacklistFlag::NONE);
const S32 last_flag_value = static_cast<S32>(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<S32>(FSAssetBlacklist::eBlacklistFlag::GESTURE); flag_value <<= 1)
if ((flags & flag_value) || flags == static_cast<S32>(FSAssetBlacklist::eBlacklistFlag::NONE))
{
if (flags & flag_value)
{
FSAssetBlacklist::eBlacklistFlag flag = static_cast<FSAssetBlacklist::eBlacklistFlag>(flag_value);
FSAssetBlacklist::eBlacklistFlag flag = static_cast<FSAssetBlacklist::eBlacklistFlag>(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<S32>(FSAssetBlacklist::eBlacklistFlag::NONE))
flag = FSAssetBlacklist::eBlacklistFlag::NONE;
LLSD value;
value["flag"] = static_cast<S32>(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<S32>(flag);
element["alt_value"] = value;
mResultList->addElement(element, ADD_BOTTOM);
if (flags == static_cast<S32>(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()

View File

@ -27,14 +27,19 @@
<floater.string name="asset_resident">
Resident
</floater.string>
<floater.string name="asset_avatar_worn_sounds">
<floater.string name="blacklist_flag_none">
</floater.string>
<floater.string name="blacklist_flag_mute_avatar_worn_objects_sounds">
Avatar worn objects sounds
</floater.string>
<floater.string name="asset_avatar_rezzed_sounds">
<floater.string name="blacklist_flag_mute_avatar_rezzed_objects_sounds">
Avatar rezzed objects sounds
</floater.string>
<floater.string name="asset_avatar_gesture_sounds">
<floater.string name="blacklist_flag_mute_avatar_gestures_sounds">
Avatar gestures sounds
</floater.string>
<floater.string name="blacklist_flag_unknown">
Unknow flag
</floater.string>
<floater.string name="asset_unknown">
Unknown
@ -91,6 +96,11 @@
label="Type"
width="60"
/>
<columns
name="flags"
label="Flags"
width="170"
/>
<columns
name="date"
label="Date"
@ -114,6 +124,7 @@
<column column="name">[UNKNOWN] Template item</column>
<column column="region">[UNKNOWN] Template item</column>
<column column="type">Unknown</column>
<column column="flags">None</column>
<column column="date">2012-12-11 13:37:00</column>
<column column="permanent">&#x2714;</column>
</row>