diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h index 09ab89960d..737dd7e475 100644 --- a/indra/llui/llscrolllistctrl.h +++ b/indra/llui/llscrolllistctrl.h @@ -412,6 +412,7 @@ protected: typedef std::deque item_list; item_list& getItemList() { return mItemList; } +public: void updateLineHeight(); private: diff --git a/indra/newview/fscontactsfloater.cpp b/indra/newview/fscontactsfloater.cpp index 27f5d52ac6..df7ac21716 100644 --- a/indra/newview/fscontactsfloater.cpp +++ b/indra/newview/fscontactsfloater.cpp @@ -39,6 +39,7 @@ #include "llavataractions.h" #include "llavatarlist.h" #include "llavatarlistitem.h" +#include "llavatarnamecache.h" #include "llcallingcard.h" // for LLAvatarTracker #include "llfloateravatarpicker.h" #include "llfriendcard.h" @@ -58,8 +59,6 @@ #define RIGHTS_CHANGE_TIMEOUT 5.0 #define OBSERVER_TIMEOUT 0.5 -#define ONLINE_SIP_ICON_NAME "slim_icon_16_viewer.tga" - static const std::string FRIENDS_TAB_NAME = "friends_panel"; static const std::string GROUP_TAB_NAME = "groups_panel"; @@ -152,10 +151,11 @@ FSFloaterContacts::FSFloaterContacts(const LLSD& seed) LLEventTimer(DEFAULT_PERIOD), mTabContainer(NULL), mObserver(NULL), - // mFriendList(NULL), + mFriendsList(NULL), mGroupList(NULL), mAllowRightsChange(TRUE), - mNumRightsChanged(0) + mNumRightsChanged(0), + mSortByUserName(LLCachedControl(gSavedSettings,"FSSortContactsByUserName", FALSE)) { mEventTimer.stop(); mObserver = new LLLocalFriendsObserver(this); @@ -184,19 +184,8 @@ BOOL FSFloaterContacts::tick() BOOL FSFloaterContacts::postBuild() { mTabContainer = getChild("friends_and_groups"); - mFriendsTab = getChild(FRIENDS_TAB_NAME); - // mFriendList = mFriendsTab->getChild("avatars_all"); - // mFriendList->setNoItemsCommentText(getString("no_friends")); - // mFriendList->setShowIcons("FriendsListShowIcons"); - // mFriendList->showPermissions(TRUE); - // mFriendList->setComparator(&STATUS_COMPARATOR); - - // mFriendList->setRefreshCompleteCallback(boost::bind(&FSFloaterContacts::sortFriendList, this)); - // mFriendList->setItemDoubleClickCallback(boost::bind(&FSFloaterContacts::onAvatarListDoubleClicked, this, _1)); - // mFriendList->setReturnCallback(boost::bind(&FSFloaterContacts::onImButtonClicked, this)); - - + mFriendsList = mFriendsTab->getChild("friend_list"); mFriendsList->setMaxSelectable(MAX_FRIEND_SELECT); //mFriendsList->setMaximumSelectCallback(boost::bind(&FSFloaterContacts::onMaximumSelect, this)); //TODO @@ -208,10 +197,13 @@ BOOL FSFloaterContacts::postBuild() mFriendsList->setContextMenu(LLScrollListCtrl::MENU_AVATAR); // primary sort = online status, secondary sort = name - mFriendsList->sortByColumn(std::string("friend_name"), TRUE); + if (mSortByUserName) + mFriendsList->getColumn(LIST_FRIEND_NAME)->mSortingColumn = mFriendsList->getColumn(LIST_FRIEND_USER_NAME)->mName; + else + mFriendsList->getColumn(LIST_FRIEND_NAME)->mSortingColumn = mFriendsList->getColumn(LIST_FRIEND_NAME)->mName; + mFriendsList->sortByColumn(std::string("full_name"), TRUE); mFriendsList->sortByColumn(std::string("icon_online_status"), FALSE); - mFriendsTab->childSetAction("im_btn", boost::bind(&FSFloaterContacts::onImButtonClicked, this)); mFriendsTab->childSetAction("profile_btn", boost::bind(&FSFloaterContacts::onViewProfileButtonClicked, this)); mFriendsTab->childSetAction("offer_teleport_btn", boost::bind(&FSFloaterContacts::onTeleportButtonClicked, this)); @@ -279,14 +271,20 @@ void FSFloaterContacts::onOpen(const LLSD& key) } } -// as soon as the avatar list widget tells us all names are loaded, do -// another sort on the list -Zi -void FSFloaterContacts::sortFriendList() + +//static +FSFloaterContacts* FSFloaterContacts::findInstance() { - // mFriendList->sort(); - mFriendsList->updateSort(); + return LLFloaterReg::findTypedInstance("imcontacts"); } +//static +FSFloaterContacts* FSFloaterContacts::getInstance() +{ + return LLFloaterReg::getTypedInstance("imcontacts"); +} + + // // Friend actions // @@ -375,6 +373,13 @@ bool FSFloaterContacts::isItemsFreeOfFriends(const uuid_vec_t& uuids) return true; } +// static +void FSFloaterContacts::onAvatarPicked(const uuid_vec_t& ids, const std::vector names) +{ + if (!names.empty() && !ids.empty()) + LLAvatarActions::requestFriendshipDialog(ids[0], names[0].getCompleteName()); +} + void FSFloaterContacts::onAddFriendWizButtonClicked() { // Show add friend wizard. @@ -427,6 +432,9 @@ void FSFloaterContacts::onGroupSearchButtonClicked() } +// +// Tab and list functions +// std::string FSFloaterContacts::getActiveTabName() const { @@ -439,7 +447,6 @@ LLUUID FSFloaterContacts::getCurrentItemID() const if (cur_tab == FRIENDS_TAB_NAME) { - // return mFriendList->getSelectedUUID(); LLScrollListItem* selected = mFriendsList->getFirstSelected(); if (selected) selected->getUUID(); @@ -447,9 +454,10 @@ LLUUID FSFloaterContacts::getCurrentItemID() const return LLUUID::null; } if (cur_tab == GROUP_TAB_NAME) + { return mGroupList->getSelectedUUID(); + } - llassert(0 && "unknown tab selected"); return LLUUID::null; } @@ -459,7 +467,6 @@ void FSFloaterContacts::getCurrentItemIDs(uuid_vec_t& selected_uuids) const if (cur_tab == FRIENDS_TAB_NAME) { - // mFriendList->getSelectedUUIDs(selected_uuids); std::vector selected = mFriendsList->getAllSelected(); for(std::vector::iterator itr = selected.begin(); itr != selected.end(); ++itr) { @@ -467,62 +474,30 @@ void FSFloaterContacts::getCurrentItemIDs(uuid_vec_t& selected_uuids) const } } else if (cur_tab == GROUP_TAB_NAME) + { mGroupList->getSelectedUUIDs(selected_uuids); + } +} + +void FSFloaterContacts::sortFriendList() +{ + mFriendsList->updateLineHeight(); + mFriendsList->updateLayout(); + + if (mSortByUserName) + mFriendsList->getColumn(LIST_FRIEND_NAME)->mSortingColumn = mFriendsList->getColumn(LIST_FRIEND_USER_NAME)->mName; else - llassert(0 && "unknown tab selected"); - -} - - -// void FSFloaterContacts::updateFriendList() -// { - // if (!mFriendList) - // return; - - // uuid_vec_t& contact_friendsp = mFriendList->getIDs(); - // contact_friendsp.clear(); - - // Cause inv fails so very much, lets just load the contacts floater from - // the avatar tracker instead of from calling cards, which are fail - // This should resolve part or all of FIRE-565 -KC - - // const LLAvatarTracker& av_tracker = LLAvatarTracker::instance(); - // LLAvatarTracker::buddy_map_t all_buddies; - // av_tracker.copyBuddyList(all_buddies); - - // LLAvatarTracker::buddy_map_t::const_iterator buddy_it = all_buddies.begin(); - // for (; buddy_it != all_buddies.end(); ++buddy_it) - // { - // LLUUID buddy_id = buddy_it->first; - // contact_friendsp.push_back(buddy_id); - // } - - // mFriendList->setDirty(true, !mFriendList->filterHasMatches()); -// } - - -// static -void FSFloaterContacts::onAvatarPicked(const uuid_vec_t& ids, const std::vector names) -{ - if (!names.empty() && !ids.empty()) - LLAvatarActions::requestFriendshipDialog(ids[0], names[0].getCompleteName()); -} - - -//static -FSFloaterContacts* FSFloaterContacts::findInstance() -{ - return LLFloaterReg::findTypedInstance("imcontacts"); -} - -FSFloaterContacts* FSFloaterContacts::getInstance() -{ - return LLFloaterReg::getTypedInstance("imcontacts"); + mFriendsList->getColumn(LIST_FRIEND_NAME)->mSortingColumn = mFriendsList->getColumn(LIST_FRIEND_NAME)->mName; + mFriendsList->setNeedsSort(true); } +// +// Friends list +// + void FSFloaterContacts::updateFriends(U32 changed_mask) { LLUUID selected_id; @@ -567,125 +542,130 @@ void FSFloaterContacts::updateFriends(U32 changed_mask) refreshUI(); } -BOOL FSFloaterContacts::addFriend(const LLUUID& agent_id) +void FSFloaterContacts::addFriend(const LLUUID& agent_id) { LLAvatarTracker& at = LLAvatarTracker::instance(); const LLRelationship* relationInfo = at.getBuddyInfo(agent_id); - if(!relationInfo) return FALSE; + if(!relationInfo) return; bool isOnlineSIP = LLVoiceClient::getInstance()->isOnlineSIP(agent_id); bool isOnline = relationInfo->isOnline(); - std::string fullname; - BOOL have_name = gCacheName->getFullName(agent_id, fullname); - + LLAvatarName av_name; + if (!LLAvatarNameCache::get(agent_id, &av_name)) + { + const LLRelationship* info = LLAvatarTracker::instance().getBuddyInfo(agent_id); + LLAvatarNameCache::get(agent_id, boost::bind(&FSFloaterContacts::updateFriendItem, this, agent_id, info)); + } + LLSD element; element["id"] = agent_id; - LLSD& friend_column = element["columns"][LIST_FRIEND_NAME]; - friend_column["column"] = "friend_name"; - friend_column["value"] = fullname; - friend_column["font"]["name"] = "SANSSERIF"; - friend_column["font"]["style"] = "NORMAL"; + LLSD& username_column = element["columns"][LIST_FRIEND_USER_NAME]; + username_column["column"] = "user_name"; + username_column["value"] = av_name.mUsername; + + LLSD& friend_column = element["columns"][LIST_FRIEND_NAME]; + friend_column["column"] = "full_name"; + friend_column["value"] = av_name.getCompleteName(); + friend_column["font"]["name"] = "SANSSERIF"; + friend_column["font"]["style"] = "NORMAL"; - LLSD& online_status_column = element["columns"][LIST_ONLINE_STATUS]; - online_status_column["column"] = "icon_online_status"; - online_status_column["type"] = "icon"; + LLSD& online_status_column = element["columns"][LIST_ONLINE_STATUS]; + online_status_column["column"] = "icon_online_status"; + online_status_column["type"] = "icon"; if (isOnline) - { - friend_column["font"]["style"] = "BOLD"; - online_status_column["value"] = "legacy/icon_avatar_online.tga"; + { + friend_column["font"]["style"] = "BOLD"; + online_status_column["value"] = "icon_avatar_online"; } else if(isOnlineSIP) - { - friend_column["font"]["style"] = "BOLD"; - online_status_column["value"] = ONLINE_SIP_ICON_NAME; + { + friend_column["font"]["style"] = "BOLD"; + online_status_column["value"] = "slim_icon_16_viewer"; } - LLSD& online_column = element["columns"][LIST_VISIBLE_ONLINE]; - online_column["column"] = "icon_visible_online"; - online_column["type"] = "checkbox"; - online_column["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS); + LLSD& online_column = element["columns"][LIST_VISIBLE_ONLINE]; + online_column["column"] = "icon_visible_online"; + online_column["type"] = "checkbox"; + online_column["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS); - LLSD& visible_map_column = element["columns"][LIST_VISIBLE_MAP]; - visible_map_column["column"] = "icon_visible_map"; - visible_map_column["type"] = "checkbox"; - visible_map_column["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION); + LLSD& visible_map_column = element["columns"][LIST_VISIBLE_MAP]; + visible_map_column["column"] = "icon_visible_map"; + visible_map_column["type"] = "checkbox"; + visible_map_column["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION); - LLSD& edit_my_object_column = element["columns"][LIST_EDIT_MINE]; - edit_my_object_column["column"] = "icon_edit_mine"; - edit_my_object_column["type"] = "checkbox"; - edit_my_object_column["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS); + LLSD& edit_my_object_column = element["columns"][LIST_EDIT_MINE]; + edit_my_object_column["column"] = "icon_edit_mine"; + edit_my_object_column["type"] = "checkbox"; + edit_my_object_column["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS); - LLSD& visible_their_map_column = element["columns"][LIST_VISIBLE_MAP_THEIRS]; - visible_their_map_column["column"] = "icon_visible_map_theirs"; - visible_their_map_column["type"] = "checkbox"; - visible_their_map_column["enabled"] = ""; - visible_their_map_column["value"] = relationInfo->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION); + LLSD& visible_their_map_column = element["columns"][LIST_VISIBLE_MAP_THEIRS]; + visible_their_map_column["column"] = "icon_visible_map_theirs"; + visible_their_map_column["type"] = "checkbox"; + visible_their_map_column["enabled"] = ""; + visible_their_map_column["value"] = relationInfo->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION); - LLSD& edit_their_object_column = element["columns"][LIST_EDIT_THEIRS]; - edit_their_object_column["column"] = "icon_edit_theirs"; - edit_their_object_column["type"] = "checkbox"; - edit_their_object_column["enabled"] = ""; - edit_their_object_column["value"] = relationInfo->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS); + LLSD& edit_their_object_column = element["columns"][LIST_EDIT_THEIRS]; + edit_their_object_column["column"] = "icon_edit_theirs"; + edit_their_object_column["type"] = "checkbox"; + edit_their_object_column["enabled"] = ""; + edit_their_object_column["value"] = relationInfo->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS); - LLSD& update_gen_column = element["columns"][LIST_FRIEND_UPDATE_GEN]; - update_gen_column["column"] = "friend_last_update_generation"; - update_gen_column["value"] = have_name ? relationInfo->getChangeSerialNum() : -1; + LLSD& update_gen_column = element["columns"][LIST_FRIEND_UPDATE_GEN]; + update_gen_column["column"] = "friend_last_update_generation"; + update_gen_column["value"] = relationInfo->getChangeSerialNum(); mFriendsList->addElement(element, ADD_BOTTOM); - return have_name; } // propagate actual relationship to UI. // Does not resort the UI list because it can be called frequently. JC -BOOL FSFloaterContacts::updateFriendItem(const LLUUID& agent_id, const LLRelationship* info) +void FSFloaterContacts::updateFriendItem(const LLUUID& agent_id, const LLRelationship* info) { - if (!info) return FALSE; + if (!info) return; LLScrollListItem* itemp = mFriendsList->getItem(agent_id); - if (!itemp) return FALSE; + if (!itemp) return; bool isOnlineSIP = LLVoiceClient::getInstance()->isOnlineSIP(itemp->getUUID()); bool isOnline = info->isOnline(); - std::string fullname; - BOOL have_name = gCacheName->getFullName(agent_id, fullname); - + LLAvatarName av_name; + if (!LLAvatarNameCache::get(agent_id, &av_name)) + { + LLAvatarNameCache::get(agent_id, boost::bind(&FSFloaterContacts::updateFriendItem, this, agent_id, info)); + } + // Name of the status icon to use std::string statusIcon; - if(isOnline) { - statusIcon = "legacy/icon_avatar_online.tga"; + statusIcon = "icon_avatar_online"; } else if(isOnlineSIP) { - statusIcon = ONLINE_SIP_ICON_NAME; + statusIcon = "slim_icon_16_viewer"; } itemp->getColumn(LIST_ONLINE_STATUS)->setValue(statusIcon); - - itemp->getColumn(LIST_FRIEND_NAME)->setValue(fullname); - //This might work, but would need to test if it changes with DN changes _KC - //itemp->getColumn(LIST_FRIEND_NAME)->setValue( LLSLURL("agent", agent_id, "completename").getSLURLString()); - + + itemp->getColumn(LIST_FRIEND_USER_NAME)->setValue( av_name.mUsername ); + itemp->getColumn(LIST_FRIEND_NAME)->setValue( av_name.getCompleteName() ); + // render name of online friends in bold text - ((LLScrollListText*)itemp->getColumn(LIST_FRIEND_NAME))->setFontStyle((isOnline || isOnlineSIP) ? LLFontGL::BOLD : LLFontGL::NORMAL); + ((LLScrollListText*)itemp->getColumn(LIST_FRIEND_NAME))->setFontStyle((isOnline || isOnlineSIP) ? LLFontGL::BOLD : LLFontGL::NORMAL); + itemp->getColumn(LIST_VISIBLE_ONLINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS)); itemp->getColumn(LIST_VISIBLE_MAP)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION)); itemp->getColumn(LIST_EDIT_MINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS)); itemp->getColumn(LIST_VISIBLE_MAP_THEIRS)->setValue(info->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION)); itemp->getColumn(LIST_EDIT_THEIRS)->setValue(info->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS)); - S32 change_generation = have_name ? info->getChangeSerialNum() : -1; - // S32 change_generation = info->getChangeSerialNum(); + S32 change_generation = info->getChangeSerialNum(); itemp->getColumn(LIST_FRIEND_UPDATE_GEN)->setValue(change_generation); // enable this item, in case it was disabled after user input itemp->setEnabled(TRUE); - - // Do not resort, this function can be called frequently. - return have_name; } void FSFloaterContacts::refreshRightsChangeList() @@ -750,55 +730,45 @@ void FSFloaterContacts::refreshNames(U32 changed_mask) LLAvatarTracker::buddy_map_t all_buddies; LLAvatarTracker::instance().copyBuddyList(all_buddies); - BOOL have_names = TRUE; - if(changed_mask & (LLFriendObserver::ADD | LLFriendObserver::REMOVE)) { - have_names &= refreshNamesSync(all_buddies); + refreshNamesSync(all_buddies); } if(changed_mask & LLFriendObserver::ONLINE) { - have_names &= refreshNamesPresence(all_buddies); + refreshNamesPresence(all_buddies); } - if (!have_names) - { - mEventTimer.start(); - } // Changed item in place, need to request sort and update columns // because we might have changed data in a column on which the user // has already sorted. JC - mFriendsList->updateSort(); + sortFriendList(); // re-select items mFriendsList->selectMultiple(selected_ids); mFriendsList->setScrollPos(pos); } -BOOL FSFloaterContacts::refreshNamesSync(const LLAvatarTracker::buddy_map_t & all_buddies) +void FSFloaterContacts::refreshNamesSync(const LLAvatarTracker::buddy_map_t & all_buddies) { mFriendsList->deleteAllItems(); - BOOL have_names = TRUE; LLAvatarTracker::buddy_map_t::const_iterator buddy_it = all_buddies.begin(); for(; buddy_it != all_buddies.end(); ++buddy_it) { - have_names &= addFriend(buddy_it->first); + addFriend(buddy_it->first); } - - return have_names; } -BOOL FSFloaterContacts::refreshNamesPresence(const LLAvatarTracker::buddy_map_t & all_buddies) +void FSFloaterContacts::refreshNamesPresence(const LLAvatarTracker::buddy_map_t & all_buddies) { std::vector items = mFriendsList->getAllData(); std::sort(items.begin(), items.end(), SortFriendsByID()); LLAvatarTracker::buddy_map_t::const_iterator buddy_it = all_buddies.begin(); std::vector::const_iterator item_it = items.begin(); - BOOL have_names = TRUE; while(true) { @@ -822,7 +792,7 @@ BOOL FSFloaterContacts::refreshNamesPresence(const LLAvatarTracker::buddy_map_t if (last_change_generation < info->getChangeSerialNum()) { // update existing item in UI - have_names &= updateFriendItem(buddy_it->first, info); + updateFriendItem(buddy_it->first, info); } ++buddy_it; @@ -837,8 +807,6 @@ BOOL FSFloaterContacts::refreshNamesPresence(const LLAvatarTracker::buddy_map_t ++buddy_it; } } - - return have_names; } void FSFloaterContacts::refreshUI() @@ -864,7 +832,6 @@ void FSFloaterContacts::refreshUI() //(single_selected will always be true in this situations) childSetEnabled("remove_btn", single_selected); childSetEnabled("im_btn", single_selected); -// childSetEnabled("friend_rights", single_selected); refreshRightsChangeList(); } @@ -876,8 +843,6 @@ void FSFloaterContacts::onSelectName() applyRightsToFriends(); } - - void FSFloaterContacts::confirmModifyRights(rights_map_t& ids, EGrantRevoke command) { if (ids.empty()) return; diff --git a/indra/newview/fscontactsfloater.h b/indra/newview/fscontactsfloater.h index 1866f315f7..188ca2edcd 100644 --- a/indra/newview/fscontactsfloater.h +++ b/indra/newview/fscontactsfloater.h @@ -71,12 +71,9 @@ public: static FSFloaterContacts* findInstance(); void sortFriendList(); - - // void updateFriendList(); LLPanel* mFriendsTab; - // LLAvatarList* mFriendList; - LLScrollListCtrl* mFriendsList; + LLScrollListCtrl* mFriendsList; LLPanel* mGroupsTab; LLGroupList* mGroupList; @@ -89,6 +86,7 @@ private: enum FRIENDS_COLUMN_ORDER { LIST_ONLINE_STATUS, + LIST_FRIEND_USER_NAME, LIST_FRIEND_NAME, LIST_VISIBLE_ONLINE, LIST_VISIBLE_MAP, @@ -100,14 +98,14 @@ private: typedef std::map rights_map_t; void refreshNames(U32 changed_mask); - BOOL refreshNamesSync(const LLAvatarTracker::buddy_map_t & all_buddies); - BOOL refreshNamesPresence(const LLAvatarTracker::buddy_map_t & all_buddies); + void refreshNamesSync(const LLAvatarTracker::buddy_map_t & all_buddies); + void refreshNamesPresence(const LLAvatarTracker::buddy_map_t & all_buddies); void refreshRightsChangeList(); void refreshUI(); void onSelectName(); void applyRightsToFriends(); - BOOL addFriend(const LLUUID& agent_id); - BOOL updateFriendItem(const LLUUID& agent_id, const LLRelationship* relationship); + void addFriend(const LLUUID& agent_id); + void updateFriendItem(const LLUUID& agent_id, const LLRelationship* relationship); typedef enum { @@ -146,6 +144,7 @@ private: LLFriendObserver* mObserver; BOOL mAllowRightsChange; S32 mNumRightsChanged; + LLCachedControl mSortByUserName; }; diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 0f7b2a2208..8cf4e688a2 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -753,9 +753,6 @@ BOOL LLPanelPeople::postBuild() mOnlineFriendList->setRefreshCompleteCallback(boost::bind(&LLPanelPeople::onFriendListRefreshComplete, this, _1, _2)); mAllFriendList->setRefreshCompleteCallback(boost::bind(&LLPanelPeople::onFriendListRefreshComplete, this, _1, _2)); - - // FSFloaterContacts* fs_contacts = FSFloaterContacts::getInstance(); - // fs_contacts->mFriendsTab->setVisibleCallback(boost::bind(&Updater::setActive, mFriendListUpdater, _2)); return TRUE; } @@ -842,11 +839,6 @@ void LLPanelPeople::updateFriendList() llwarns << "Friends Cards failed to load" << llendl; } - // update the contacts floater as well -KC - // static FSFloaterContacts* fs_contacts = FSFloaterContacts::getInstance(); - // if (fs_contacts) - // fs_contacts->updateFriendList(); - LLAvatarTracker::buddy_map_t::const_iterator buddy_it = all_buddies.begin(); for (; buddy_it != all_buddies.end(); ++buddy_it) { diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index b8e835e81e..3b62bb6e30 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -755,5 +755,13 @@ with the same filename but different name + + + + + + + + diff --git a/indra/newview/skins/firestorm/colors.xml b/indra/newview/skins/firestorm/colors.xml index db85cda89c..6ac3f460a9 100644 --- a/indra/newview/skins/firestorm/colors.xml +++ b/indra/newview/skins/firestorm/colors.xml @@ -789,7 +789,7 @@ reference="Red" /> + reference="White_10" /> diff --git a/indra/newview/skins/firestorm/themes/grey/colors.xml b/indra/newview/skins/firestorm/themes/grey/colors.xml index 356450c8ec..750942abe2 100644 --- a/indra/newview/skins/firestorm/themes/grey/colors.xml +++ b/indra/newview/skins/firestorm/themes/grey/colors.xml @@ -797,7 +797,7 @@ reference="Red" /> + reference="White_10" />