diff options
| -rwxr-xr-x | doc/contributions.txt | 4 | ||||
| -rwxr-xr-x | indra/edit-me-to-trigger-new-build.txt | 2 | ||||
| -rwxr-xr-x | indra/newview/llnamelistctrl.cpp | 33 | ||||
| -rwxr-xr-x | indra/newview/llnamelistctrl.h | 13 | ||||
| -rwxr-xr-x | indra/newview/llpanelgroupgeneral.cpp | 35 | ||||
| -rwxr-xr-x | indra/newview/llpanelgroupgeneral.h | 5 | ||||
| -rwxr-xr-x | indra/newview/llpanelgrouproles.cpp | 35 | ||||
| -rwxr-xr-x | indra/newview/llpanelgrouproles.h | 5 | ||||
| -rwxr-xr-x | indra/newview/llviewermessage.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/menu_viewer.xml | 10 | 
10 files changed, 106 insertions, 38 deletions
| diff --git a/doc/contributions.txt b/doc/contributions.txt index 89390d9977..47b9bcf32a 100755 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -180,6 +180,8 @@ Ansariel Hiller  	MAINT-2368  	STORM-1931  	MAINT-2773 +	STORM-2011 +	MAINT-3187  	BUG-3764  	STORM-1984  	STORM-1979 @@ -691,6 +693,7 @@ Jonathan Yap  	STORM-1987  	STORM-1986  	STORM-1981 +	STORM-2015  Kadah Coba  	STORM-1060      STORM-1843 @@ -1157,6 +1160,7 @@ snowy Sidran  Sovereign Engineer      MAINT-2334      OPEN-189 +    STORM-1972      OPEN-195  SpacedOut Frye  	VWR-34 diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt index beeb570496..86ce564c0d 100755 --- a/indra/edit-me-to-trigger-new-build.txt +++ b/indra/edit-me-to-trigger-new-build.txt @@ -1,4 +1,4 @@ -Wed Nov  7 00:25:19 UTC 2012 +Wed Nov  7 00:25:19 UTC 2012  diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 7ddd04fed0..3b5a69fd3a 100755 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -64,8 +64,7 @@ LLNameListCtrl::LLNameListCtrl(const LLNameListCtrl::Params& p)  	mNameColumnIndex(p.name_column.column_index),  	mNameColumn(p.name_column.column_name),  	mAllowCallingCardDrop(p.allow_calling_card_drop), -	mShortNames(p.short_names), -	mAvatarNameCacheConnection() +	mShortNames(p.short_names)  {}  // public @@ -328,13 +327,16 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(  			else  			{  				// ...schedule a callback -				// This is not correct and will likely lead to partially populated lists in cases where avatar names are not cached. -				// *TODO : Change this to have 2 callbacks : one callback per list item and one for the whole list. -				if (mAvatarNameCacheConnection.connected()) +				avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(id); +				if (it != mAvatarNameCacheConnections.end())  				{ -					mAvatarNameCacheConnection.disconnect(); +					if (it->second.connected()) +					{ +						it->second.disconnect(); +					} +					mAvatarNameCacheConnections.erase(it);  				} -				mAvatarNameCacheConnection = LLAvatarNameCache::get(id,boost::bind(&LLNameListCtrl::onAvatarNameCache,this, _1, _2, item->getHandle())); +				mAvatarNameCacheConnections[id] = LLAvatarNameCache::get(id,boost::bind(&LLNameListCtrl::onAvatarNameCache,this, _1, _2, suffix, item->getHandle()));  			}  			break;  		} @@ -391,9 +393,18 @@ void LLNameListCtrl::removeNameItem(const LLUUID& agent_id)  void LLNameListCtrl::onAvatarNameCache(const LLUUID& agent_id,  									   const LLAvatarName& av_name, +									   std::string suffix,  									   LLHandle<LLNameListItem> item)  { -	mAvatarNameCacheConnection.disconnect(); +	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(agent_id); +	if (it != mAvatarNameCacheConnections.end()) +	{ +		if (it->second.connected()) +		{ +			it->second.disconnect(); +		} +		mAvatarNameCacheConnections.erase(it); +	}  	std::string name;  	if (mShortNames) @@ -401,6 +412,12 @@ void LLNameListCtrl::onAvatarNameCache(const LLUUID& agent_id,  	else  		name = av_name.getCompleteName(); +	// Append optional suffix. +	if (!suffix.empty()) +	{ +		name.append(suffix); +	} +  	LLNameListItem* list_item = item.get();  	if (list_item && list_item->getUUID() == agent_id)  	{ diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h index 92e82b672d..4ed260d847 100755 --- a/indra/newview/llnamelistctrl.h +++ b/indra/newview/llnamelistctrl.h @@ -114,10 +114,14 @@ protected:  	LLNameListCtrl(const Params&);  	virtual ~LLNameListCtrl()  	{ -		if (mAvatarNameCacheConnection.connected()) +		for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)  		{ -			mAvatarNameCacheConnection.disconnect(); +			if (it->second.connected()) +			{ +				it->second.disconnect(); +			}  		} +		mAvatarNameCacheConnections.clear();  	}  	friend class LLUICtrlFactory;  public: @@ -155,14 +159,15 @@ public:  	/*virtual*/ void	mouseOverHighlightNthItem( S32 index );  private:  	void showInspector(const LLUUID& avatar_id, bool is_group); -	void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name, LLHandle<LLNameListItem> item); +	void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name, std::string suffix, LLHandle<LLNameListItem> item);  private:  	S32    			mNameColumnIndex;  	std::string		mNameColumn;  	BOOL			mAllowCallingCardDrop;  	bool			mShortNames;  // display name only, no SLID -	boost::signals2::connection mAvatarNameCacheConnection; +	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t; +	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;  }; diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index 0cd93b330a..6ba7d4f39d 100755 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -79,18 +79,21 @@ LLPanelGroupGeneral::LLPanelGroupGeneral()  	mCtrlReceiveNotices(NULL),  	mCtrlListGroup(NULL),  	mActiveTitleLabel(NULL), -	mComboActiveTitle(NULL), -	mAvatarNameCacheConnection() +	mComboActiveTitle(NULL)  {  }  LLPanelGroupGeneral::~LLPanelGroupGeneral()  { -	if (mAvatarNameCacheConnection.connected()) +	for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)  	{ -		mAvatarNameCacheConnection.disconnect(); +		if (it->second.connected()) +		{ +			it->second.disconnect(); +		}  	} +	mAvatarNameCacheConnections.clear();  }  BOOL LLPanelGroupGeneral::postBuild() @@ -732,12 +735,16 @@ void LLPanelGroupGeneral::updateMembers()  		else  		{  			// If name is not cached, onNameCache() should be called when it is cached and add this member to list. -			// *TODO : Use a callback per member, not for the panel group. -			if (mAvatarNameCacheConnection.connected()) +			avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(mMemberProgress->first); +			if (it != mAvatarNameCacheConnections.end())  			{ -				mAvatarNameCacheConnection.disconnect(); +				if (it->second.connected()) +				{ +					it->second.disconnect(); +				} +				mAvatarNameCacheConnections.erase(it);  			} -			mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2)); +			mAvatarNameCacheConnections[mMemberProgress->first] = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2, _1));  		}  	} @@ -775,9 +782,17 @@ void LLPanelGroupGeneral::addMember(LLGroupMemberData* member)  	}  } -void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name) +void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id)  { -	mAvatarNameCacheConnection.disconnect(); +	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id); +	if (it != mAvatarNameCacheConnections.end()) +	{ +		if (it->second.connected()) +		{ +			it->second.disconnect(); +		} +		mAvatarNameCacheConnections.erase(it); +	}  	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h index b7f4a01139..a019715bfa 100755 --- a/indra/newview/llpanelgroupgeneral.h +++ b/indra/newview/llpanelgroupgeneral.h @@ -63,7 +63,7 @@ public:  	virtual void setupCtrls	(LLPanel* parent); -	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name); +	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);  private:  	void	reset(); @@ -111,7 +111,8 @@ private:  	LLComboBox		*mComboMature;  	LLGroupMgrGroupData::member_list_t::iterator mMemberProgress; -	boost::signals2::connection mAvatarNameCacheConnection; +	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t; +	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;  };  #endif diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp index fdcd1f5ebb..94998f3c52 100755 --- a/indra/newview/llpanelgrouproles.cpp +++ b/indra/newview/llpanelgrouproles.cpp @@ -743,17 +743,20 @@ LLPanelGroupMembersSubTab::LLPanelGroupMembersSubTab()  	mChanged(FALSE),  	mPendingMemberUpdate(FALSE),  	mHasMatch(FALSE), -	mNumOwnerAdditions(0), -	mAvatarNameCacheConnection() +	mNumOwnerAdditions(0)  {  }  LLPanelGroupMembersSubTab::~LLPanelGroupMembersSubTab()  { -	if (mAvatarNameCacheConnection.connected()) +	for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)  	{ -		mAvatarNameCacheConnection.disconnect(); +		if (it->second.connected()) +		{ +			it->second.disconnect(); +		}  	} +	mAvatarNameCacheConnections.clear();  	if (mMembersList)  	{  		gSavedSettings.setString("GroupMembersSortOrder", mMembersList->getSortColumnName()); @@ -1641,9 +1644,17 @@ void LLPanelGroupMembersSubTab::addMemberToList(LLGroupMemberData* data)  	mHasMatch = TRUE;  } -void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name) +void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id)  { -	mAvatarNameCacheConnection.disconnect(); +	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id); +	if (it != mAvatarNameCacheConnections.end()) +	{ +		if (it->second.connected()) +		{ +			it->second.disconnect(); +		} +		mAvatarNameCacheConnections.erase(it); +	}  	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);  	if (!gdatap @@ -1716,12 +1727,16 @@ void LLPanelGroupMembersSubTab::updateMembers()  		else  		{  			// If name is not cached, onNameCache() should be called when it is cached and add this member to list. -			// *TODO : Add one callback per fetched avatar name -			if (mAvatarNameCacheConnection.connected()) +			avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(mMemberProgress->first); +			if (it != mAvatarNameCacheConnections.end())  			{ -				mAvatarNameCacheConnection.disconnect(); +				if (it->second.connected()) +				{ +					it->second.disconnect(); +				} +				mAvatarNameCacheConnections.erase(it);  			} -			mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2)); +			mAvatarNameCacheConnections[mMemberProgress->first] = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2, _1));  		}  	} diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h index 0cf272f3ee..baa2d40c7e 100755 --- a/indra/newview/llpanelgrouproles.h +++ b/indra/newview/llpanelgrouproles.h @@ -189,7 +189,7 @@ public:  	virtual void setGroupID(const LLUUID& id);  	void addMemberToList(LLGroupMemberData* data); -	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name); +	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);  protected:  	typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t; @@ -215,7 +215,8 @@ protected:  	U32 mNumOwnerAdditions;  	LLGroupMgrGroupData::member_list_t::iterator mMemberProgress; -	boost::signals2::connection mAvatarNameCacheConnection; +	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t; +	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;  };  class LLPanelGroupRolesSubTab : public LLPanelGroupSubTab diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 267aa9532c..d1524b74cd 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5985,7 +5985,7 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)  				}  			} -			send_sound_trigger(LLUUID(gSavedSettings.getString("UISndRestart")), 1.0f); +			make_ui_sound("UISndRestart");  		}  		LLNotificationsUtil::add(notificationID, llsdBlock); diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 64de010eb5..018f654935 100755 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2554,6 +2554,16 @@             parameter="lights" />          </menu_item_check>          <menu_item_check +         label="Particles" +         name="Particles"> +          <menu_item_check.on_check +           function="Advanced.CheckInfoDisplay" +           parameter="particles" /> +          <menu_item_check.on_click +           function="Advanced.ToggleInfoDisplay" +           parameter="particles" /> +        </menu_item_check> +        <menu_item_check           label="Collision Skeleton"           name="Collision Skeleton">            <menu_item_check.on_check | 
