diff --git a/indra/newview/fsfloatercontacts.cpp b/indra/newview/fsfloatercontacts.cpp index 58ac8208ae..355ef65cfc 100644 --- a/indra/newview/fsfloatercontacts.cpp +++ b/indra/newview/fsfloatercontacts.cpp @@ -167,6 +167,8 @@ BOOL FSFloaterContacts::postBuild() gSavedSettings.getControl("FSFriendListColumnShowFullName")->getSignal()->connect(boost::bind(&FSFloaterContacts::onColumnDisplayModeChanged, this, "FSFriendListColumnShowFullName")); onColumnDisplayModeChanged(); + LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&FSFloaterContacts::onDisplayNameChanged, this)); + return TRUE; } @@ -1170,6 +1172,20 @@ void FSFloaterContacts::onFullNameFormatChanged() } } +void FSFloaterContacts::onDisplayNameChanged() +{ + std::vector items = mFriendsList->getAllData(); + for (std::vector::iterator it = items.begin(); it != items.end(); ++it) + { + LLAvatarName av_name; + if (LLAvatarNameCache::get((*it)->getUUID(), &av_name)) + { + (*it)->getColumn(LIST_FRIEND_DISPLAY_NAME)->setValue(av_name.getDisplayName()); + (*it)->getColumn(LIST_FRIEND_NAME)->setValue(getFullName(av_name)); + } + } +} + std::string FSFloaterContacts::getFullName(const LLAvatarName& av_name) { if (av_name.isDisplayNameDefault()) diff --git a/indra/newview/fsfloatercontacts.h b/indra/newview/fsfloatercontacts.h index 764e585a32..7ea7a93659 100644 --- a/indra/newview/fsfloatercontacts.h +++ b/indra/newview/fsfloatercontacts.h @@ -118,6 +118,7 @@ private: static void onAvatarPicked(const uuid_vec_t& ids, const std::vector names); void onColumnDisplayModeChanged(const std::string& settings_name = ""); void onFullNameFormatChanged(); + void onDisplayNameChanged(); // friend buttons void onViewProfileButtonClicked();