Rework of the Tagsystem.
- Moved the Tagsystem to FSData for better integration. So other Modules can call it too. - Added the Tagdata as LLSD (TPVD, Name, UUID) to llvoavatar (mClientTagData) - Added the ability to display TPVD Viewers only. - Added the Settings to Preferences -> Firestorm -> Tags - Removed ShowViewerIDsOnNameTag cause it's replaced with "FSClientTagsVisibility">0 - Changed the Debug Settings from S32 to U32master
parent
c127113e96
commit
689e3f7a4d
|
|
@ -42,18 +42,29 @@
|
|||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>S32</string>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>2</integer>
|
||||
</map>
|
||||
<key>FSColorClienttags</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>If Clienttags should be colored</string>
|
||||
<string>Color Clienttags by: 0=Off, 1=Single color per Viewer, 2=Userdefinied color (one color per UUID), 3=New Tagsystem Color</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>2</integer>
|
||||
</map>
|
||||
<key>FSClientTagsVisibility</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show clienttags: 0=Clienttags Off, 1=That are on the TPVD (needs FSUseLegacyClienttags), 2=That are on the client_tag.xml (needs FSUseLegacyClienttags), 3=That using the new system</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
|
|
@ -331,18 +342,6 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>ShowViewerIDsOnNameTag</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show viewer identification when display hovertext names over avatars</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>PhoenixEnableAutoCorrect</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -359,7 +359,7 @@ void FSData::processAgents(U32 status, std::string body)
|
|||
void FSData::downloadClientTags()
|
||||
{
|
||||
|
||||
if(gSavedSettings.getS32("FSUseLegacyClienttags")>1)
|
||||
if(gSavedSettings.getU32("FSUseLegacyClienttags")>1)
|
||||
{
|
||||
LLSD headers;
|
||||
headers.insert("User-Agent", LLViewerMedia::getCurrentUserAgent());
|
||||
|
|
@ -367,7 +367,7 @@ void FSData::downloadClientTags()
|
|||
LLHTTPClient::get(legacy_client_list,new FSDownloader(legacy_client_list),headers);
|
||||
LL_INFOS("CLIENTTAGS DOWNLOADER") << "Getting new tags" << LL_ENDL;
|
||||
}
|
||||
else if(gSavedSettings.getS32("FSUseLegacyClienttags")>0)
|
||||
else if(gSavedSettings.getU32("FSUseLegacyClienttags")>0)
|
||||
{
|
||||
updateClientTagsLocal();
|
||||
}
|
||||
|
|
@ -377,7 +377,6 @@ void FSData::downloadClientTags()
|
|||
|
||||
void FSData::processClientTags(U32 status,std::string body)
|
||||
{
|
||||
|
||||
if(status != 200)
|
||||
{
|
||||
LL_WARNS("ClientTags") << "client_list_v2.xml download failed with status of " << status << LL_ENDL;
|
||||
|
|
@ -408,6 +407,142 @@ void FSData::processClientTags(U32 status,std::string body)
|
|||
|
||||
}
|
||||
|
||||
LLSD FSData::resolveClientTag(LLUUID id){
|
||||
//WS: Some helper function to make the request for old tags easier (if someone needs it)
|
||||
return resolveClientTag(id, false, LLColor4::black);
|
||||
}
|
||||
|
||||
LLSD FSData::resolveClientTag(LLUUID id, bool new_system, LLColor4 color){
|
||||
//WS: Create a new LLSD based on the data from the LegacyClientList if
|
||||
LLSD curtag;
|
||||
curtag["uuid"]=id.asString();
|
||||
curtag["id_based"]=new_system;
|
||||
curtag["tex_color"]=color.getValue();
|
||||
// If we don't want to display anything...return
|
||||
if(gSavedSettings.getU32("FSClientTagsVisibility")==0) return curtag;
|
||||
|
||||
FSData* self = getInstance();
|
||||
//WS: Do we want to use Legacy Clienttags?
|
||||
if(gSavedSettings.getU32("FSUseLegacyClienttags")>0){
|
||||
if(self->LegacyClientList.has(id.asString())){
|
||||
curtag=self->LegacyClientList[id.asString()];
|
||||
}
|
||||
else{
|
||||
if(id == LLUUID("5d9581af-d615-bc16-2667-2f04f8eeefe4"))//green
|
||||
{
|
||||
curtag["name"]="Phoenix";
|
||||
curtag["color"] = LLColor4::green.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("91144252-196e-bac9-3737-92752eee612d"))//white
|
||||
{
|
||||
curtag["name"] = "Canine (fallback)";
|
||||
curtag["color"] = LLColor4::white.getValue();
|
||||
}
|
||||
else if(id == LLUUID("e35f7d40-6071-4b29-9727-5647bdafb5d5"))//white
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::white.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("ae4e92fb-023d-23ba-d060-3403f953ab1a"))//pink
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::pink.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("e71b780e-1a57-400d-4649-959f69ec7d51"))//red
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::red.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("c1c189f5-6dab-fc03-ea5a-f9f68f90b018"))//orange
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::orange.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("8cf0577c-22d3-6a73-523c-15c0a90d6c27")) //purple
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::purple.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("5f0e7c32-38c3-9214-01f0-fb16a5b40128"))//yellow
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::yellow.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("5bb6e4a6-8e24-7c92-be2e-91419bb0ebcb"))//blue
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::blue.getValue();
|
||||
curtag["alt"] = "ed63fbd0-589e-fe1d-a3d0-16905efaa96b";
|
||||
}
|
||||
else if(id == LLUUID("ed63fbd0-589e-fe1d-a3d0-16905efaa96b"))//default (red)
|
||||
{
|
||||
curtag["name"] = "Phoenix";
|
||||
curtag["color"] = LLColor4::red.getValue();
|
||||
}
|
||||
else if(id == LLUUID("c228d1cf-4b5d-4ba8-84f4-899a0796aa97"))//viewer 2.0
|
||||
{
|
||||
curtag["name"] = "Viewer 2";
|
||||
}
|
||||
else if(id == LLUUID("cc7a030f-282f-c165-44d2-b5ee572e72bf"))
|
||||
{
|
||||
curtag["name"] = "Imprudence";
|
||||
}
|
||||
else if(id == LLUUID("54d93609-1392-2a93-255c-a9dd429ecca5"))
|
||||
{
|
||||
curtag["name"] = "Emergence";
|
||||
}
|
||||
else if(id == LLUUID("8873757c-092a-98fb-1afd-ecd347566fcd"))
|
||||
{
|
||||
curtag["name"] = "Ascent";
|
||||
}
|
||||
else if(id == LLUUID("f25263b7-6167-4f34-a4ef-af65213b2e39"))
|
||||
{
|
||||
curtag["name"] = "Singularity";
|
||||
}
|
||||
if(curtag.has("name")) curtag["tpvd"]=true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Filtering starts here:
|
||||
//WS: If the current tag has an "alt" definied and we don't want multiple colors. Resolve the alt.
|
||||
if((gSavedSettings.getU32("FSColorClienttags")==1) && curtag.has("alt")) curtag = resolveClientTag(curtag["alt"], new_system, color);
|
||||
|
||||
//WS: If we have a tag using the new system, check if we want to display it's name and/or color
|
||||
if(new_system){
|
||||
if(gSavedSettings.getU32("FSClientTagsVisibility")>=3){
|
||||
U32 tag_len = strnlen((const char*)&id.mData[0], UUID_BYTES);
|
||||
std::string clienttagname = std::string((const char*)&id.mData[0], tag_len);
|
||||
LLStringFn::replace_ascii_controlchars(clienttagname, LL_UNKNOWN_CHAR);
|
||||
curtag["name"] = clienttagname;
|
||||
}
|
||||
if(gSavedSettings.getU32("FSColorClienttags")>=3){
|
||||
curtag["color"] = color.getValue();
|
||||
}
|
||||
}
|
||||
|
||||
//If we only want to display tpvd viewer. And "tpvd" is not available or false, then
|
||||
// clear the data, but keep the basedata (like uuid, id_based and tex_color) for (maybe) later displaying.
|
||||
if(gSavedSettings.getU32("FSClientTagsVisibility")<=1 && (!curtag.has("tpvd") || !curtag["tpvd"].asBoolean())){
|
||||
curtag.clear();
|
||||
}
|
||||
curtag["uuid"]=id.asString();
|
||||
curtag["id_based"]=new_system;
|
||||
curtag["tex_color"]=color.getValue();
|
||||
|
||||
return curtag;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void FSData::updateClientTagsLocal()
|
||||
{
|
||||
std::string client_list_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "client_list_v2.xml");
|
||||
|
|
|
|||
|
|
@ -57,7 +57,11 @@ public:
|
|||
static void processClientTags(U32 status, std::string body);
|
||||
static void msdata(U32 status, std::string body);
|
||||
static void msblacklist(U32 status, std::string body);
|
||||
|
||||
static void updateClientTagsLocal();
|
||||
static LLSD resolveClientTag(LLUUID id);
|
||||
static LLSD resolveClientTag(LLUUID id, bool new_system, LLColor4 new_system_color);
|
||||
|
||||
static const U8 EM_SUPPORT = 0x01;
|
||||
static const U8 EM_DEVELOPER = 0x02;
|
||||
static const U8 PH_BETA = 0x01;
|
||||
|
|
|
|||
|
|
@ -2948,16 +2948,22 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
|
|||
|| is_cloud != mNameCloud)
|
||||
{
|
||||
|
||||
|
||||
//WS: If we got a uuid and if we know if it's id_based or not, ask FSDATA for the other tagdata, before we display it.
|
||||
if(mClientTagData.has("uuid") && mClientTagData.has("id_based")){
|
||||
LLColor4 color;
|
||||
if(mClientTagData.has("tex_color")) color.setValue(mClientTagData["tex_color"]);
|
||||
else color = LLColor4::black;
|
||||
mClientTagData = FSData::resolveClientTag(LLUUID(mClientTagData["uuid"].asString()), mClientTagData["id_based"].asBoolean(),color);
|
||||
}
|
||||
|
||||
LLColor4 name_tag_color = getNameTagColor(is_friend);
|
||||
|
||||
// Wolfspirit: If we don't need to display a friend,
|
||||
// if we aren't self, if we use colored Clienttags and if we have a color
|
||||
// then use that color as name_tag_color
|
||||
static LLUICachedControl<bool> show_friends("NameTagShowFriends");
|
||||
static LLUICachedControl<bool> use_colors("FSColorClienttags");
|
||||
if(mHasClientTagColor && !(show_friends && is_friend) && use_colors && !this->isSelf()){
|
||||
name_tag_color = mClientTagColor;
|
||||
if(mClientTagData.has("color") && !(show_friends && is_friend) && gSavedSettings.getU32("FSColorClienttags")>0 && !this->isSelf()){
|
||||
name_tag_color = mClientTagData["color"];
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -3032,9 +3038,9 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
|
|||
if (show_display_names)
|
||||
{
|
||||
|
||||
if (!mClientTag.empty() && gSavedSettings.getBOOL("ShowViewerIDsOnNameTag"))
|
||||
if (mClientTagData.has("name") && !mClientTagData["name"].asString().empty())
|
||||
{
|
||||
addNameTagLine(av_name.mDisplayName+" (" + mClientTag + ")",name_tag_color,LLFontGL::NORMAL, LLFontGL::getFontSansSerif());
|
||||
addNameTagLine(av_name.mDisplayName+" (" + mClientTagData["name"].asString() + ")",name_tag_color,LLFontGL::NORMAL, LLFontGL::getFontSansSerif());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -3080,10 +3086,10 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
|
|||
// [/RLVa:KB]
|
||||
else // Only check for client tags when not RLV anon -AO
|
||||
{
|
||||
if (!mClientTag.empty() && gSavedSettings.getBOOL("ShowViewerIDsOnNameTag"))
|
||||
if (mClientTagData.has("name") && !mClientTagData["name"].asString().empty())
|
||||
{
|
||||
lldebugs << "ClientTag is set! mClientTag=" << mClientTag << llendl;
|
||||
addNameTagLine(full_name+" (" + mClientTag + ")",name_tag_color,LLFontGL::NORMAL, LLFontGL::getFontSansSerif());
|
||||
lldebugs << "ClientTag is set! mClientTag=" << mClientTagData["name"].asString() << llendl;
|
||||
addNameTagLine(full_name+" (" + mClientTagData["name"].asString() + ")",name_tag_color,LLFontGL::NORMAL, LLFontGL::getFontSansSerif());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -6984,133 +6990,7 @@ bool LLVOAvatar::visualParamWeightsAreDefault()
|
|||
return rtn;
|
||||
}
|
||||
|
||||
void LLVOAvatar::resolveClient(const LLUUID tag)
|
||||
// looks at a UUID and tries to match it to a known client.
|
||||
// hard coded list to be quick and dirty. TODO: Replace with the usual XML file.
|
||||
// TODO: turn this into an enumeration-backed switch statement.
|
||||
{
|
||||
// Wolfspirit: The clienttag list is loaded into FSData::LegacyClientList
|
||||
LLSD taglist = FSData::getInstance()->LegacyClientList;
|
||||
mHasClientTagColor = false;
|
||||
|
||||
// Wolfspirit: If the Taglist is complete and the taglist contains our requested key, then set the ClientName and ClientColor
|
||||
// else try to use our fallback alternatives.
|
||||
if(taglist.has("isComplete") && taglist.has(tag.asString())){
|
||||
LLSD tagdata = taglist[tag.asString()];
|
||||
mClientTag = tagdata["name"].asString();
|
||||
mClientTagColor.setValue(tagdata["color"]);
|
||||
mHasClientTagColor = true;
|
||||
}
|
||||
else if(tag == LLUUID("5d9581af-d615-bc16-2667-2f04f8eeefe4"))//green
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::green;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("e35f7d40-6071-4b29-9727-5647bdafb5d5"))//white
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::white;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("ae4e92fb-023d-23ba-d060-3403f953ab1a"))//pink
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::pink;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("e71b780e-1a57-400d-4649-959f69ec7d51"))//red
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::red;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("c1c189f5-6dab-fc03-ea5a-f9f68f90b018"))//orange
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::orange;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("8cf0577c-22d3-6a73-523c-15c0a90d6c27")) //purple
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::purple;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("5f0e7c32-38c3-9214-01f0-fb16a5b40128"))//yellow
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::yellow;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("5bb6e4a6-8e24-7c92-be2e-91419bb0ebcb"))//blue
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::blue;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
else if(tag == LLUUID("ed63fbd0-589e-fe1d-a3d0-16905efaa96b"))//default (red)
|
||||
{
|
||||
mClientTag = "Phoenix";
|
||||
mClientTagColor = LLColor4::red;
|
||||
mHasClientTagColor =true;
|
||||
}
|
||||
|
||||
else if(tag == LLUUID("c228d1cf-4b5d-4ba8-84f4-899a0796aa97"))//viewer 2.0
|
||||
{
|
||||
mClientTag = "Viewer 2";
|
||||
}
|
||||
|
||||
else if(tag == LLUUID("0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8"))
|
||||
{
|
||||
mClientTag = "MoyMix";
|
||||
}
|
||||
else if(tag == LLUUID("c58fca06-33b3-827d-d81c-a886a631affc"))
|
||||
{
|
||||
mClientTag = "Whale";
|
||||
}
|
||||
else if(tag == LLUUID("cc7a030f-282f-c165-44d2-b5ee572e72bf"))
|
||||
{
|
||||
mClientTag = "Imprudence";
|
||||
}
|
||||
else if(tag == LLUUID("2a9a406c-f448-68f2-4e38-878f8c46c190"))
|
||||
{
|
||||
mClientTag = "Meerkat";
|
||||
}
|
||||
else if(tag == LLUUID("b6820989-bf42-ff59-ddde-fd3fd3a74fe4"))
|
||||
{
|
||||
mClientTag = "Meerkat";
|
||||
}
|
||||
else if(tag == LLUUID("5aa5c70d-d787-571b-0495-4fc1bdef1500"))
|
||||
{
|
||||
mClientTag = "PAR"; // used to be LGG Proxy, more correct
|
||||
}
|
||||
else if(tag == LLUUID("54d93609-1392-2a93-255c-a9dd429ecca5"))
|
||||
{
|
||||
mClientTag = "Emergence";
|
||||
}
|
||||
else if(tag == LLUUID("8873757c-092a-98fb-1afd-ecd347566fcd"))
|
||||
{
|
||||
mClientTag = "Ascent";
|
||||
}
|
||||
else if(tag == LLUUID("734fed29-4c51-63e5-1648-6589949d7585"))
|
||||
{
|
||||
mClientTag = "Explicit";
|
||||
}
|
||||
else if(tag == LLUUID("b33b69ae-6b6c-b395-0175-ce76a871173b"))
|
||||
{
|
||||
mClientTag = "Nicholas";
|
||||
}
|
||||
else if(tag == LLUUID("f25263b7-6167-4f34-a4ef-af65213b2e39"))
|
||||
{
|
||||
mClientTag = "Singularity";
|
||||
}
|
||||
|
||||
// Nothing found
|
||||
|
||||
else
|
||||
mClientTag = "";
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -7149,38 +7029,24 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
|||
// dumpAvatarTEs( "POST processAvatarAppearance()" );
|
||||
|
||||
// <clientTags>
|
||||
//Wolfspirit: Read the UUID, system and Texturecolor
|
||||
LLTextureEntry* tex = getTE(0);
|
||||
const LLUUID tag_uuid = tex->getID();
|
||||
bool new_system=false;
|
||||
if(tex->getGlow() > 0.0f){
|
||||
new_system=true;
|
||||
}
|
||||
|
||||
// Wolfspirit: Only resolve the Client via a list, when we want it to do that.
|
||||
if(gSavedSettings.getS32("FSUseLegacyClienttags")>0) resolveClient(tag_uuid); // sets mClientTag
|
||||
|
||||
// Wolfspirit: Don't use old Version if we have a texture glow more then 0.0f (we are using the new System)
|
||||
if (mClientTag != "" && !(tex->getGlow() > 0.0f))
|
||||
{
|
||||
//llinfos << "LLVOAvatar::processAvatarAppearance() Detected ClientTag=" << mClientTag << llendl;
|
||||
mNameString.clear();
|
||||
}
|
||||
else if(tex->getGlow() > 0.0f)
|
||||
{
|
||||
// Wolfspirit: New Clienttag Version. Set Color and Text based on the Texture.
|
||||
U32 tag_len = strnlen((const char*)&tag_uuid.mData[0], UUID_BYTES);
|
||||
mClientTag = std::string((const char*)&tag_uuid.mData[0], tag_len);
|
||||
mClientTagColor = tex->getColor();
|
||||
mHasClientTagColor=true;
|
||||
LLStringFn::replace_ascii_controlchars(mClientTag, LL_UNKNOWN_CHAR);
|
||||
//llinfos << "LLVOAvatar::processAvatarAppearance() Detected ClientTag=" << mClientTag << llendl;
|
||||
mNameString.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
mNameString.clear();
|
||||
mHasClientTagColor=false;
|
||||
}
|
||||
//WS: Write them into an LLSD map
|
||||
mClientTagData["uuid"]=tag_uuid.asString();
|
||||
mClientTagData["id_based"]=new_system;
|
||||
mClientTagData["tex_color"]=tex->getColor().getValue();
|
||||
|
||||
//WS: Clear mNameString to force a rebuild
|
||||
mNameString.clear();
|
||||
// </clientTags>
|
||||
|
||||
|
||||
|
||||
// prevent the overwriting of valid baked textures with invalid baked textures
|
||||
for (U8 baked_index = 0; baked_index < mBakedTextureDatas.size(); baked_index++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -847,10 +847,8 @@ protected:
|
|||
static void getAnimLabels(LLDynamicArray<std::string>* labels);
|
||||
static void getAnimNames(LLDynamicArray<std::string>* names);
|
||||
private:
|
||||
void resolveClient(const LLUUID tag);
|
||||
std::string mNameString; // UTF-8 title + name + status
|
||||
std::string mClientTag;
|
||||
LLColor4 mClientTagColor;
|
||||
LLSD mClientTagData;
|
||||
bool mHasClientTagColor;
|
||||
std::string mTitle;
|
||||
bool mNameAway;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "lggbeammapfloater.h"
|
||||
#include "lggbeamcolormapfloater.h"
|
||||
#include "lggautocorrectfloater.h"
|
||||
#include "llvoavatar.h"
|
||||
|
||||
static LLRegisterPanelClassWrapper<PanelPreferenceFirestorm> t_pref_fs("panel_preference_firestorm");
|
||||
|
||||
|
|
@ -17,6 +18,7 @@ PanelPreferenceFirestorm::PanelPreferenceFirestorm() : LLPanelPreference(), m_ca
|
|||
|
||||
BOOL PanelPreferenceFirestorm::postBuild()
|
||||
{
|
||||
|
||||
// LGG's Color Beams
|
||||
refreshBeamLists();
|
||||
|
||||
|
|
@ -64,18 +66,33 @@ BOOL PanelPreferenceFirestorm::postBuild()
|
|||
{
|
||||
m_aoLineEditor->setEnabled(FALSE);
|
||||
}
|
||||
|
||||
|
||||
//WS: Set the combo_box vars and refresh/reload them
|
||||
m_UseLegacyClienttags = getChild<LLComboBox>("UseLegacyClienttags");
|
||||
m_ColorClienttags = getChild<LLComboBox>("ColorClienttags");
|
||||
m_ClientTagsVisibility = getChild<LLComboBox>("ClientTagsVisibility");
|
||||
refreshTagCombos();
|
||||
|
||||
|
||||
return LLPanelPreference::postBuild();
|
||||
}
|
||||
|
||||
void PanelPreferenceFirestorm::apply()
|
||||
{
|
||||
//WS: Apply the combo_boxes for tags
|
||||
applyTagCombos();
|
||||
|
||||
}
|
||||
|
||||
|
||||
void PanelPreferenceFirestorm::cancel()
|
||||
{
|
||||
//WS: Refresh/Reload the Combo_boxes for tags to show the right setting.
|
||||
refreshTagCombos();
|
||||
}
|
||||
|
||||
|
||||
void PanelPreferenceFirestorm::refreshBeamLists()
|
||||
{
|
||||
LLComboBox* comboBox = getChild<LLComboBox>("PhoenixBeamShape_combo");
|
||||
|
|
@ -168,4 +185,43 @@ void PanelPreferenceFirestorm::onBeamDelete()
|
|||
void PanelPreferenceFirestorm::onAutoCorrectSettings()
|
||||
{
|
||||
LGGAutoCorrectFloater::showFloater();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PanelPreferenceFirestorm::refreshTagCombos()
|
||||
{
|
||||
|
||||
//WS: Set the combo_boxes to the right value
|
||||
U32 usel_u = gSavedSettings.getU32("FSUseLegacyClienttags");
|
||||
U32 tagv_u = gSavedSettings.getU32("FSClientTagsVisibility");
|
||||
U32 tagc_u = gSavedSettings.getU32("FSColorClienttags");
|
||||
|
||||
|
||||
std::string usel = llformat("%d",usel_u);
|
||||
std::string tagv = llformat("%d",tagv_u);
|
||||
std::string tagc = llformat("%d",tagc_u);
|
||||
|
||||
m_UseLegacyClienttags->setCurrentByIndex(usel_u);
|
||||
m_ColorClienttags->setCurrentByIndex(tagc_u);
|
||||
m_ClientTagsVisibility->setCurrentByIndex(tagv_u);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void PanelPreferenceFirestorm::applyTagCombos()
|
||||
{
|
||||
//WS: If the user hits "apply" then write everything (if something changed) into the Debug Settings
|
||||
|
||||
if(gSavedSettings.getU32("FSUseLegacyClienttags")!=m_UseLegacyClienttags->getCurrentIndex()
|
||||
|| gSavedSettings.getU32("FSColorClienttags")!=m_ColorClienttags->getCurrentIndex()
|
||||
|| gSavedSettings.getU32("FSClientTagsVisibility")!=m_ClientTagsVisibility->getCurrentIndex()){
|
||||
|
||||
gSavedSettings.setU32("FSUseLegacyClienttags",m_UseLegacyClienttags->getCurrentIndex());
|
||||
gSavedSettings.setU32("FSColorClienttags",m_ColorClienttags->getCurrentIndex());
|
||||
gSavedSettings.setU32("FSClientTagsVisibility",m_ClientTagsVisibility->getCurrentIndex());
|
||||
|
||||
//WS: Clear all nametags to make everything display properly!
|
||||
LLVOAvatar::invalidateNameTags();
|
||||
}
|
||||
}
|
||||
|
|
@ -21,6 +21,10 @@ public:
|
|||
|
||||
void onAutoCorrectSettings();
|
||||
|
||||
|
||||
void refreshTagCombos();
|
||||
void applyTagCombos();
|
||||
|
||||
protected:
|
||||
LLLineEditor* m_calcLineEditor;
|
||||
LLLineEditor* m_acLineEditor;
|
||||
|
|
@ -28,5 +32,9 @@ protected:
|
|||
LLLineEditor* m_clearchatLineEditor;
|
||||
LLLineEditor* m_musicLineEditor;
|
||||
LLLineEditor* m_aoLineEditor;
|
||||
|
||||
LLComboBox* m_UseLegacyClienttags;
|
||||
LLComboBox* m_ColorClienttags;
|
||||
LLComboBox* m_ClientTagsVisibility;
|
||||
};
|
||||
#endif
|
||||
|
|
@ -1761,5 +1761,108 @@
|
|||
control_name="FSSaveInventoryScriptsAsMono"/>
|
||||
|
||||
</panel>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--Tags-->
|
||||
<panel
|
||||
top_pad="5"
|
||||
bottom="-1"
|
||||
left="1"
|
||||
right="-1"
|
||||
follows="all"
|
||||
label="Tags"
|
||||
name="TagTab">
|
||||
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="15"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
name="whattagstoshow"
|
||||
top_pad="20"
|
||||
width="220">
|
||||
What tags do you want to see?
|
||||
</text>
|
||||
|
||||
<combo_box
|
||||
follows="left|top"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="2"
|
||||
max_chars="135"
|
||||
width="220"
|
||||
allow_text_entry="false"
|
||||
name="ClientTagsVisibility">
|
||||
<combo_item name="No Viewertags" value="0">No Viewertags</combo_item>
|
||||
<combo_item name="TPVD Viewer" value="1">TPVD Viewers (using a list)</combo_item>
|
||||
<combo_item name="All known Viewers" value="2">All known Viewers (using a list)</combo_item>
|
||||
<combo_item name="All Viewers" value="3">All Viewers</combo_item>
|
||||
</combo_box>
|
||||
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="15"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
name="colorbasedonviewer"
|
||||
top_pad="10"
|
||||
width="220">
|
||||
Tag Color based on Viewer?
|
||||
</text>
|
||||
|
||||
<combo_box
|
||||
follows="left|top"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="2"
|
||||
max_chars="135"
|
||||
width="220"
|
||||
allow_text_entry="false"
|
||||
name="ColorClienttags">
|
||||
<combo_item name="Color not based on Viewer" value="0">Color not based on Viewer</combo_item>
|
||||
<combo_item name="Single color per Viewer" value="1">Single color per Viewer</combo_item>
|
||||
<combo_item name="Multiple colors per Viewer" value="2">Multiple colors per Viewer</combo_item>
|
||||
<combo_item name="Userdefined color" value="3">Userdefined Color</combo_item>
|
||||
</combo_box>
|
||||
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="15"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
name="uselistfortags"
|
||||
top_pad="10"
|
||||
width="220">
|
||||
Use a list to display Viewertags?
|
||||
</text>
|
||||
|
||||
<combo_box
|
||||
follows="left|top"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="2"
|
||||
max_chars="135"
|
||||
width="220"
|
||||
allow_text_entry="false"
|
||||
name="UseLegacyClienttags">
|
||||
<combo_item name="Don't use a list" value="0">Don't use a list</combo_item>
|
||||
<combo_item name="Local Clienttags" value="1">Local Tag List</combo_item>
|
||||
<combo_item name="Download Clienttags" value="2">Download Tag List at Viewer Start</combo_item>
|
||||
</combo_box>
|
||||
|
||||
</panel>
|
||||
|
||||
|
||||
|
||||
</tab_container>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -313,15 +313,6 @@
|
|||
function="FS.ToggleSortContacts" />
|
||||
</check_box>
|
||||
|
||||
<check_box
|
||||
control_name="ShowViewerIDsOnNameTag"
|
||||
height="16"
|
||||
label="Show Viewer ID"
|
||||
layout="topleft"
|
||||
left_pad="50"
|
||||
name="show_viewerID"
|
||||
tool_tip="Shows the name of the avatar's detected viewer next to their name (delayed effect)" />
|
||||
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
|
|||
Loading…
Reference in New Issue