From 757cf4c8e77e041b08d3a8f36beec6d1baa9e10f Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Tue, 12 Mar 2019 16:28:00 -0400 Subject: [PATCH] [Radar] Feature request: Add a checkbox for people with notes This is off by default, right click, hide columns to show or find it in Extras tab! --- indra/newview/app_settings/settings.xml | 22 +++++++++++++++++++ indra/newview/llfloateravatarlist.cpp | 14 ++++++++++++ indra/newview/llfloateravatarlist.h | 1 + indra/newview/llpanelavatar.cpp | 4 +++- .../skins/default/xui/en-us/floater_radar.xml | 4 +++- .../skins/default/xui/en-us/menu_radar.xml | 4 ++++ 6 files changed, 47 insertions(+), 2 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 453ca5d15..42c5dd752 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -7636,6 +7636,17 @@ This should be as low as possible, but too low may break functionality Value 24 + RadarColumnNotesWidth + + Comment + Width for radar's notes column + Persist + 1 + Type + S32 + Value + 24 + RadarColumnAgeWidth Comment @@ -7724,6 +7735,17 @@ This should be as low as possible, but too low may break functionality Value 0 + RadarColumnNotesHidden + + Comment + Hide radar's notes column + Persist + 1 + Type + Boolean + Value + 1 + RadarColumnAgeHidden Comment diff --git a/indra/newview/llfloateravatarlist.cpp b/indra/newview/llfloateravatarlist.cpp index 77363352f..4fb101c57 100644 --- a/indra/newview/llfloateravatarlist.cpp +++ b/indra/newview/llfloateravatarlist.cpp @@ -143,6 +143,7 @@ LLAvatarListEntry::LLAvatarListEntry(const LLUUID& id, const std::string& name, LLAvatarPropertiesProcessor& inst(LLAvatarPropertiesProcessor::instance()); inst.addObserver(mID, this); inst.sendAvatarPropertiesRequest(mID); + inst.sendAvatarNotesRequest(mID); } LLAvatarListEntry::~LLAvatarListEntry() @@ -192,6 +193,10 @@ void LLAvatarListEntry::processProperties(void* data, EAvatarProcessorType type) } } break; + case APT_NOTES: + if (const LLAvatarNotes* pAvatarNotes = static_cast(data)) + mNotes = !pAvatarNotes->notes.empty(); + break; } } @@ -413,6 +418,7 @@ BOOL LLFloaterAvatarList::postBuild() gSavedSettings.getControl("RadarColumnAltitudeHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this)); gSavedSettings.getControl("RadarColumnActivityHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this)); gSavedSettings.getControl("RadarColumnVoiceHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this)); + gSavedSettings.getControl("RadarColumnNotesHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this)); gSavedSettings.getControl("RadarColumnAgeHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this)); gSavedSettings.getControl("RadarColumnTimeHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this)); @@ -466,6 +472,7 @@ enum AVATARS_COLUMN_ORDER LIST_ALTITUDE, LIST_ACTIVITY, LIST_VOICE, + LIST_NOTES, LIST_AGE, LIST_TIME, LIST_CLIENT, @@ -485,6 +492,7 @@ void LLFloaterAvatarList::assessColumns() BIND_COLUMN_TO_SETTINGS(LIST_ALTITUDE,Altitude); BIND_COLUMN_TO_SETTINGS(LIST_ACTIVITY,Activity); BIND_COLUMN_TO_SETTINGS(LIST_VOICE,Voice); + BIND_COLUMN_TO_SETTINGS(LIST_NOTES,Notes); BIND_COLUMN_TO_SETTINGS(LIST_AGE,Age); BIND_COLUMN_TO_SETTINGS(LIST_TIME,Time); @@ -929,6 +937,12 @@ void LLFloaterAvatarList::refreshAvatarList() element.columns.add(voice); } + static const LLCachedControl hide_notes("RadarColumnNotesHidden"); + if (!hide_notes) + { + element.columns.add(LLScrollListCell::Params().column("notes").type("checkbox").enabled(false).value(entry->mNotes)); + } + static const LLCachedControl hide_age("RadarColumnAgeHidden"); if (!hide_age) { diff --git a/indra/newview/llfloateravatarlist.h b/indra/newview/llfloateravatarlist.h index 048c468b0..233eb4618 100644 --- a/indra/newview/llfloateravatarlist.h +++ b/indra/newview/llfloateravatarlist.h @@ -143,6 +143,7 @@ private: bool mMarked; bool mFocused; bool mIsInList; + bool mNotes = false; int mAge; /** diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 09ab17196..16b224bd9 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -1463,7 +1463,9 @@ void LLPanelAvatar::sendAvatarNotesUpdate() notes == mLastNotes) // Avatar notes unchanged return; - LLAvatarPropertiesProcessor::instance().sendNotes(mAvatarID, notes); + auto& inst(LLAvatarPropertiesProcessor::instance()); + inst.sendNotes(mAvatarID, notes); + inst.sendAvatarNotesRequest(mAvatarID); // Rerequest notes to update anyone that might be listening, also to be sure we match the server. } // virtual diff --git a/indra/newview/skins/default/xui/en-us/floater_radar.xml b/indra/newview/skins/default/xui/en-us/floater_radar.xml index 2f538b521..80f4b1992 100644 --- a/indra/newview/skins/default/xui/en-us/floater_radar.xml +++ b/indra/newview/skins/default/xui/en-us/floater_radar.xml @@ -18,6 +18,7 @@ + @@ -337,9 +338,10 @@ + - + Out Of Range diff --git a/indra/newview/skins/default/xui/en-us/menu_radar.xml b/indra/newview/skins/default/xui/en-us/menu_radar.xml index b2d37ecfb..0b6180f6c 100644 --- a/indra/newview/skins/default/xui/en-us/menu_radar.xml +++ b/indra/newview/skins/default/xui/en-us/menu_radar.xml @@ -196,6 +196,10 @@ + + + +