diff options
| -rw-r--r-- | doc/contributions.txt | 7 | ||||
| -rw-r--r-- | indra/llmessage/tests/llhost_test.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llavatarlist.cpp | 35 | ||||
| -rw-r--r-- | indra/newview/llavatarlist.h | 2 | ||||
| -rw-r--r-- | indra/newview/llrecentpeople.cpp | 58 | ||||
| -rw-r--r-- | indra/newview/llrecentpeople.h | 33 | ||||
| -rw-r--r-- | indra/newview/llvoicechannel.cpp | 24 | ||||
| -rw-r--r-- | indra/newview/llvoicechannel.h | 7 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_about_land.xml | 4 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_hardware_settings.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_edit_pick.xml | 10 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_outfits_inventory.xml | 6 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_places.xml | 19 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/sidepanel_inventory.xml | 36 | 
14 files changed, 192 insertions, 53 deletions
| diff --git a/doc/contributions.txt b/doc/contributions.txt index 9a7ce92448..43e5591ab1 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -394,10 +394,15 @@ Jonathan Yap  	STORM-812  	STORM-829  	STORM-844 +	STORM-953 +	STORM-960  	STORM-869 +	STORM-974 +	STORM-975 +	STORM-979 +	STORM-980  	VWR-17801  	VWR-24347 -	STORM-975  Kage Pixel  	VWR-11  Ken March diff --git a/indra/llmessage/tests/llhost_test.cpp b/indra/llmessage/tests/llhost_test.cpp index b20bceae1d..705473b0c0 100644 --- a/indra/llmessage/tests/llhost_test.cpp +++ b/indra/llmessage/tests/llhost_test.cpp @@ -152,7 +152,7 @@ namespace tut  	void host_object::test<9>()  	{  //		skip("setHostByName(\"google.com\"); getHostName() -> (e.g.) \"yx-in-f100.1e100.net\""); -		std::string hostStr = "linux.org";		 +		std::string hostStr = "lindenlab.com";		  		LLHost host;  		host.setHostByName(hostStr);	 diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index ff7dfccc0a..771419f60a 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -240,6 +240,9 @@ void LLAvatarList::addAvalineItem(const LLUUID& item_id, const LLUUID& session_i  	LLAvalineListItem* item = new LLAvalineListItem(/*hide_number=*/false);  	item->setAvatarId(item_id, session_id, true, false);  	item->setName(item_name); +	item->showLastInteractionTime(mShowLastInteractionTime); +	item->showSpeakingIndicator(mShowSpeakingIndicator); +	item->setOnline(false);  	addItem(item, item_id);  	mIDs.push_back(item_id); @@ -286,9 +289,18 @@ void LLAvatarList::refresh()  			{  				// *NOTE: If you change the UI to show a different string,  				// be sure to change the filter code below. -				addNewItem(buddy_id,  -					       av_name.mDisplayName.empty() ? waiting_str : av_name.mDisplayName,  -						   LLAvatarTracker::instance().isBuddyOnline(buddy_id)); +				if (LLRecentPeople::instance().isAvalineCaller(buddy_id)) +				{ +					const LLSD& call_data = LLRecentPeople::instance().getData(buddy_id); +					addAvalineItem(buddy_id, call_data["session_id"].asUUID(), call_data["call_number"].asString()); +				} +				else +				{ +					addNewItem(buddy_id,  +						av_name.mDisplayName.empty() ? waiting_str : av_name.mDisplayName,  +						LLAvatarTracker::instance().isBuddyOnline(buddy_id)); +				} +				  				modified = true;  				nadded++;  			} @@ -440,7 +452,7 @@ void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is  BOOL LLAvatarList::handleRightMouseDown(S32 x, S32 y, MASK mask)  {  	BOOL handled = LLUICtrl::handleRightMouseDown(x, y, mask); -	if ( mContextMenu ) +	if ( mContextMenu && !isAvalineItemSelected())  	{  		uuid_vec_t selected_uuids;  		getSelectedUUIDs(selected_uuids); @@ -449,6 +461,21 @@ BOOL LLAvatarList::handleRightMouseDown(S32 x, S32 y, MASK mask)  	return handled;  } +bool LLAvatarList::isAvalineItemSelected() +{ +	std::vector<LLPanel*> selected_items; +	getSelectedItems(selected_items); +	std::vector<LLPanel*>::iterator it = selected_items.begin(); +	 +	for(; it != selected_items.end(); ++it) +	{ +		if (dynamic_cast<LLAvalineListItem*>(*it)) +			return true; +	} + +	return false; +} +  void LLAvatarList::setVisible(BOOL visible)  {  	if ( visible == FALSE && mContextMenu ) diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h index cacbcf7244..4814a88a79 100644 --- a/indra/newview/llavatarlist.h +++ b/indra/newview/llavatarlist.h @@ -112,6 +112,8 @@ protected:  private: +	bool isAvalineItemSelected(); +  	bool mIgnoreOnlineStatus;  	bool mShowLastInteractionTime;  	bool mDirty; diff --git a/indra/newview/llrecentpeople.cpp b/indra/newview/llrecentpeople.cpp index 959fd51bbf..7689cd1a52 100644 --- a/indra/newview/llrecentpeople.cpp +++ b/indra/newview/llrecentpeople.cpp @@ -33,7 +33,7 @@  using namespace LLOldEvents; -bool LLRecentPeople::add(const LLUUID& id) +bool LLRecentPeople::add(const LLUUID& id, const LLSD& userdata)  {  	if (id == gAgent.getID())  		return false; @@ -42,10 +42,16 @@ bool LLRecentPeople::add(const LLUUID& id)  	if (is_not_group_id)  	{ -		LLDate date_added = LLDate::now(); +		// For each avaline call the id of caller is different even if +		// the phone number is the same. +		// To avoid duplication of avaline list items in the recent list +		// of panel People, deleting id's with similar phone number. +		const LLUUID& caller_id = getIDByPhoneNumber(userdata); +		if (caller_id.notNull()) +			mPeople.erase(caller_id); -		//[] instead of insert to replace existing id->date with new date value -		mPeople[id] = date_added; +		//[] instead of insert to replace existing id->llsd["date"] with new date value +		mPeople[id] = userdata;  		mChangedSignal();  	} @@ -64,15 +70,55 @@ void LLRecentPeople::get(uuid_vec_t& result) const  		result.push_back((*pos).first);  } -const LLDate& LLRecentPeople::getDate(const LLUUID& id) const +const LLDate LLRecentPeople::getDate(const LLUUID& id) const  {  	recent_people_t::const_iterator it = mPeople.find(id); -	if (it!= mPeople.end()) return (*it).second; +	if (it!= mPeople.end()) return it->second["date"].asDate();  	static LLDate no_date = LLDate();  	return no_date;  } +const LLSD& LLRecentPeople::getData(const LLUUID& id) const +{ +	recent_people_t::const_iterator it = mPeople.find(id); + +	if (it != mPeople.end()) +		return it->second; + +	static LLSD no_data = LLSD(); +	return no_data; +} + +bool LLRecentPeople::isAvalineCaller(const LLUUID& id) const +{ +	recent_people_t::const_iterator it = mPeople.find(id); + +	if (it != mPeople.end()) +	{ +		const LLSD& user = it->second;		 +		return user["avaline_call"].asBoolean(); +	} + +	return false; +} + +const LLUUID& LLRecentPeople::getIDByPhoneNumber(const LLSD& userdata) +{ +	if (!userdata["avaline_call"].asBoolean()) +		return LLUUID::null; + +	for (recent_people_t::const_iterator it = mPeople.begin(); it != mPeople.end(); ++it) +	{ +		const LLSD& user_info = it->second; +		 +		if (user_info["call_number"].asString() == userdata["call_number"].asString()) +			return it->first; +	} +	 +	return LLUUID::null; +} +  // virtual  bool LLRecentPeople::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  { diff --git a/indra/newview/llrecentpeople.h b/indra/newview/llrecentpeople.h index 852a92ff80..d0d6376867 100644 --- a/indra/newview/llrecentpeople.h +++ b/indra/newview/llrecentpeople.h @@ -58,9 +58,15 @@ public:  	 * Add specified avatar to the list if it's not there already.  	 *  	 * @param id avatar to add. +	 * +	 * @param userdata additional information about last interaction party. +	 *				   For example when last interaction party is not an avatar +	 *				   but an avaline caller, additional info (such as phone +	 *				   number, session id and etc.) should be added. +	 *  	 * @return false if the avatar is in the list already, true otherwise  	 */ -	bool add(const LLUUID& id); +	bool add(const LLUUID& id, const LLSD& userdata = LLSD().with("date", LLDate::now()));  	/**  	 * @param id avatar to search. @@ -75,7 +81,25 @@ public:  	 */  	void get(uuid_vec_t& result) const; -	const LLDate& getDate(const LLUUID& id) const; +	/** +	 * Returns last interaction time with specified participant +	 * +	 */ +	const LLDate getDate(const LLUUID& id) const; + +	/** +	 * Returns data about specified participant +	 * +	 * @param id identifier of specific participant +	 */ +	const LLSD& getData(const LLUUID& id) const; + +	/** +	 * Checks whether specific participant is an avaline caller +	 * +	 * @param id identifier of specific participant +	 */ +	bool isAvalineCaller(const LLUUID& id) const;  	/**  	 * Set callback to be called when the list changed. @@ -92,7 +116,10 @@ public:  	/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);  private: -	typedef std::map<LLUUID, LLDate> recent_people_t; + +	const LLUUID& getIDByPhoneNumber(const LLSD& userdata); + +	typedef std::map<LLUUID, LLSD> recent_people_t;  	recent_people_t		mPeople;  	signal_t			mChangedSignal;  }; diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp index b692093fb9..a71539266d 100644 --- a/indra/newview/llvoicechannel.cpp +++ b/indra/newview/llvoicechannel.cpp @@ -853,7 +853,7 @@ void LLVoiceChannelP2P::activate()  		}  		// Add the party to the list of people with which we've recently interacted. -		LLRecentPeople::instance().add(mOtherUserID); +		addToTheRecentPeopleList();  		//Default mic is ON on initiating/joining P2P calls  		if (!LLVoiceClient::getInstance()->getUserPTTState() && LLVoiceClient::getInstance()->getPTTIsToggle()) @@ -938,3 +938,25 @@ void LLVoiceChannelP2P::setState(EState state)  	LLVoiceChannel::setState(state);  } + +void LLVoiceChannelP2P::addToTheRecentPeopleList() +{ +	bool avaline_call = LLIMModel::getInstance()->findIMSession(mSessionID)->isAvalineSessionType(); +	 +	if (avaline_call) +	{ +		LLSD call_data; +		std::string call_number = LLVoiceChannel::getSessionName(); +		 +		call_data["avaline_call"]	= true; +		call_data["session_id"]		= mSessionID; +		call_data["call_number"]	= call_number; +		call_data["date"]			= LLDate::now(); +		 +		LLRecentPeople::instance().add(mOtherUserID, call_data); +	} +	else +	{ +		LLRecentPeople::instance().add(mOtherUserID); +	} +} diff --git a/indra/newview/llvoicechannel.h b/indra/newview/llvoicechannel.h index 7cef3c13d1..b8597ee5cb 100644 --- a/indra/newview/llvoicechannel.h +++ b/indra/newview/llvoicechannel.h @@ -191,6 +191,13 @@ protected:  	virtual void setState(EState state);  private: + +	/** +	* Add the caller to the list of people with which we've recently interacted +	* +	**/ +	void addToTheRecentPeopleList(); +  	std::string	mSessionHandle;  	LLUUID		mOtherUserID;  	BOOL		mReceivedCall; diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 937a97797d..acab7498fb 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -2078,7 +2078,7 @@ Only large parcels can be listed in search.               layout="topleft"               left_pad="10"               name="remove_allowed" -             right="-1" +             right="-10"               width="100" />               </panel>              <panel @@ -2128,7 +2128,7 @@ Only large parcels can be listed in search.               layout="topleft"               left_pad="10"               name="remove_banned" -             right="-1" +             right="-10"               width="100" />               </panel>          </panel> diff --git a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml index 0ea42f9757..a97c697b24 100644 --- a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml @@ -96,7 +96,7 @@       left="10"       max_val="2"       name="gamma" -     top_pad="7" +     top_pad="11"       width="262" />      <text       type="string" diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml index a028e3ab9f..82dfb445da 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml @@ -183,17 +183,17 @@       left="8"       name="bottom_panel"       top_pad="5" -     width="303"> +     width="315">       	 <layout_stack  		  follows="bottom|left|right"  		  height="23"  		  layout="topleft"  		  name="layout_stack1" -		  left="2" +		  left="0"  		  orientation="horizontal"  		  top_pad="0" -		  width="303"> +		  width="313">  		  	 <layout_panel  			  follows="bottom|left|right" @@ -223,7 +223,7 @@  			  name="layout_panel1"  		      user_resize="false"   		      auto_resize="true" -			  width="150"> +			  width="146">  		        <button  		         follows="bottom|left|right"  		         height="23" @@ -232,7 +232,7 @@  		         name="cancel_btn"  		         top="0"  		         left="1" -		        width="149" /> +		        width="145" />  			  </layout_panel>  	</layout_stack> diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml index 88c82313dd..26efe783f8 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml @@ -76,7 +76,7 @@  		         left="0"  		         orientation="horizontal"  		         top="0" -		         width="313">	 +		         width="308">	  			    <layout_panel  			         follows="bottom|left|right"  			         height="23" @@ -120,7 +120,7 @@                       name="wear_btn_lp"                       user_resize="false"                        auto_resize="true" -                     width="152"> +                     width="147">                      <button                           follows="bottom|left|right"                           height="23" @@ -129,7 +129,7 @@                           name="wear_btn"                           left="0"                           top="0" -                         width="152" /> +                         width="147" />  			    </layout_panel>  			</layout_stack>     </panel> diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml index d9c357f277..f423dbb91c 100644 --- a/indra/newview/skins/default/xui/en/panel_places.xml +++ b/indra/newview/skins/default/xui/en/panel_places.xml @@ -176,7 +176,7 @@ background_visible="true"  				left="0"  				orientation="horizontal"  				top="0" -				width="120"> +				width="113">  					<layout_panel  					follows="bottom|left|right" @@ -214,7 +214,10 @@ background_visible="true"  						<menu_button  				         follows="bottom|left|right"  				         height="23" -				         label="▼" +                         image_disabled="ComboButton_Off" +                         image_unselected="ComboButton_Off" +                         image_pressed="ComboButton_Off" +                         image_pressed_selected="ComboButton_Off"  				         layout="topleft"  						 mouse_opaque="false"  				         name="overflow_btn" @@ -236,7 +239,7 @@ background_visible="true"  				left="0"  				orientation="horizontal"  				top="0" -				width="120">		 +				width="110">		  					<layout_panel  					follows="bottom|left|right"  					height="23" @@ -246,7 +249,7 @@ background_visible="true"  					name="profile_btn_lp"  				    user_resize="false"   				    auto_resize="true" -					width="112"> +					width="102">  						<button  				         follows="bottom|left|right"  				         height="23" @@ -257,7 +260,7 @@ background_visible="true"  				         left="1"  				         tool_tip="Show place profile"  				         top="0" -				         width="111" />		 +				         width="101" />		  					</layout_panel>  				</layout_stack> @@ -272,7 +275,7 @@ background_visible="true"  				left="0"  				orientation="horizontal"  				top="0" -				width="120"> +				width="112">  					<layout_panel  					follows="bottom|left|right"  					height="23" @@ -283,7 +286,7 @@ background_visible="true"  					top="0"  				    user_resize="false"   				    auto_resize="true" -					width="61"> +					width="51">  						<button  				         follows="bottom|left|right"  				         height="23" @@ -293,7 +296,7 @@ background_visible="true"  				         name="close_btn"  				         left="1"  				         top="0" -				         width="60" />	 +				         width="50" />	  					</layout_panel>  				</layout_stack> diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml index f3c6895cee..8997c1a6d7 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml @@ -37,7 +37,7 @@  			 name="button_panel"  			 left="9"  			 top_pad="-2" -			 width="313"> +			 width="308">  			<layout_stack       	         follows="bottom|left|right"  		         height="23" @@ -47,7 +47,7 @@  		         left="0"  		         orientation="horizontal"  		         top="0" -		         width="313">	 +		         width="308">	  			    <layout_panel  			         follows="bottom|left|right"  			         height="23" @@ -57,7 +57,7 @@                       name="info_btn_lp"                       user_resize="false"                        auto_resize="true" -                     width="103"> +                     width="101">                      <button                           enabled="true"                           follows="bottom|left|right" @@ -68,62 +68,62 @@                           name="info_btn"                           tool_tip="Show object profile"                           top="0" -                         width="102" /> +                         width="100" />  			    </layout_panel>  			    <layout_panel                       follows="bottom|left|right"                       height="23"                       layout="bottomleft" -                     left_pad="3"			 +                     left_pad="1"			                       mouse_opaque="false"                       name="share_btn_lp"                       user_resize="false"                        auto_resize="true" -                     width="102"> +                     width="100">                      <button                           enabled="true"                           follows="bottom|left|right"                           height="23"                           label="Share"                           layout="topleft" -                         left="0" +                         left="1"                           name="share_btn"                           tool_tip="Share an inventory item"                           top="0" -                         width="102" /> +                         width="99" />  			    </layout_panel>  			    <layout_panel                       follows="bottom|left|right"                       height="23"                       layout="bottomleft" -                     left_pad="3"			 +                     left_pad="1"			                       mouse_opaque="false"                       name="shop_btn_lp"                       user_resize="false"                        auto_resize="true" -                     width="102"> +                     width="100">                      <button                           enabled="true"                           follows="bottom|left|right"                           height="23"                           label="Shop"                           layout="topleft" -                         left="0" +                         left="1"                           name="shop_btn"                           tool_tip="Open Marketplace webpage"                           top="0" -                         width="102" /> +                         width="99" />                      <button                           enabled="false"                           follows="bottom|left|right"                           height="23"                           label="Wear"                           layout="topleft" -                         left="0" +                         left="1"                           name="wear_btn"                           tool_tip="Wear seleceted outfit"                           top="0" -                         width="102" /> +                         width="99" />                      <button                           enabled="false"                           follows="bottom|left|right" @@ -131,20 +131,20 @@                           label="Play"                           layout="topleft"                           name="play_btn" -                         left="0" +                         left="1"                           top="0" -                         width="102" /> +                         width="99" />                      <button                           enabled="false"                           follows="bottom|left|right"                           height="23"                           label="Teleport"                           layout="topleft" -                         left="0" +                         left="1"                           name="teleport_btn"                           tool_tip="Teleport to the selected area"                           top="0" -                         width="102" /> +                         width="99" />  			    </layout_panel>  			</layout_stack>  		</panel> | 
