diff options
| author | Yuri Chebotarev <ychebotarev@productengine.com> | 2009-11-27 11:43:48 +0200 | 
|---|---|---|
| committer | Yuri Chebotarev <ychebotarev@productengine.com> | 2009-11-27 11:43:48 +0200 | 
| commit | bc57c73814db2297f17e2c6497a3ae8562bf845c (patch) | |
| tree | a8ef0bc4f8cd19a7978f04e867476d210a439b5c | |
| parent | e8421572d01640f1fac0d8a0f04c85db35fe3b51 (diff) | |
| parent | 4441b83e3304baad458be13a36a4f676269c9ded (diff) | |
merge
--HG--
branch : product-engine
| -rw-r--r-- | indra/newview/llavatarlist.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llavatarlist.h | 2 | ||||
| -rw-r--r-- | indra/newview/llcallfloater.cpp | 25 | ||||
| -rw-r--r-- | indra/newview/llcallfloater.h | 1 | ||||
| -rw-r--r-- | indra/newview/llpanelavatar.cpp | 23 | ||||
| -rw-r--r-- | indra/newview/llpanelavatar.h | 4 | ||||
| -rw-r--r-- | indra/newview/llpanelimcontrolpanel.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llpanelpicks.h | 4 | ||||
| -rw-r--r-- | indra/newview/llparticipantlist.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_voice_controls.xml | 6 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_group_control_panel.xml | 1 | 
11 files changed, 70 insertions, 8 deletions
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 7f3f869e5d..202fbdebd4 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -153,6 +153,13 @@ void LLAvatarList::draw()  	}  } +//virtual +void LLAvatarList::clear() +{ +	getIDs().clear(); +	setDirty(true); +} +  void LLAvatarList::setNameFilter(const std::string& filter)  {  	if (mNameFilter != filter) diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h index 490f93e501..9058fec540 100644 --- a/indra/newview/llavatarlist.h +++ b/indra/newview/llavatarlist.h @@ -70,6 +70,8 @@ public:  	virtual void draw(); // from LLView +	virtual void clear(); +  	void setNameFilter(const std::string& filter);  	void setDirty(bool val = true)						{ mDirty = val; }  	uuid_vector_t& getIDs() 							{ return mIDs; } diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index f566806b29..4a24b558c9 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -62,8 +62,6 @@ BOOL LLCallFloater::postBuild()  	LLDockableFloater::postBuild();  	mAvatarList = getChild<LLAvatarList>("speakers_list"); -	mSpeakerManager = LLLocalSpeakerMgr::getInstance(); -	mPaticipants = new LLParticipantList(mSpeakerManager, mAvatarList, false);  	LLView *anchor_panel = LLBottomTray::getInstance()->getChild<LLView>("speak_panel"); @@ -73,4 +71,27 @@ BOOL LLCallFloater::postBuild()  	return TRUE;  } + +// virtual +void LLCallFloater::onOpen(const LLSD& key) +{ +	// by default let show nearby chat participants +	mSpeakerManager = LLLocalSpeakerMgr::getInstance(); + +	const LLUUID& session_id = key.asUUID(); +	LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(session_id); +	if (im_session) +	{ +		mSpeakerManager = LLIMModel::getInstance()->getSpeakerManager(session_id); +	} + +	delete mPaticipants; +	mAvatarList->clear(); +	mPaticipants = new LLParticipantList(mSpeakerManager, mAvatarList, false); +} + +////////////////////////////////////////////////////////////////////////// +/// PRIVATE SECTION +////////////////////////////////////////////////////////////////////////// +  //EOF diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h index 8c4a204943..0b86a6ee92 100644 --- a/indra/newview/llcallfloater.h +++ b/indra/newview/llcallfloater.h @@ -58,6 +58,7 @@ public:  	~LLCallFloater();  	/*virtual*/ BOOL postBuild(); +	/*virtual*/ void onOpen(const LLSD& key);  private: diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 6f753b6176..87f1ac1f9f 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -48,6 +48,8 @@  #include "llscrollcontainer.h"  #include "llavatariconctrl.h"  #include "llweb.h" +#include "llfloaterworldmap.h" +#include "llfloaterreg.h"  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // Class LLDropTarget @@ -150,6 +152,8 @@ BOOL LLPanelAvatarNotes::postBuild()  	childSetCommitCallback("call", boost::bind(&LLPanelAvatarNotes::onCallButtonClick, this), NULL);  	childSetCommitCallback("teleport", boost::bind(&LLPanelAvatarNotes::onTeleportButtonClick, this), NULL);  	childSetCommitCallback("share", boost::bind(&LLPanelAvatarNotes::onShareButtonClick, this), NULL); +	childSetCommitCallback("show_on_map_btn", (boost::bind( +				&LLPanelAvatarNotes::onMapButtonClick, this)), NULL);  	LLTextEditor* te = getChild<LLTextEditor>("notes_edit");  	te->setCommitCallback(boost::bind(&LLPanelAvatarNotes::onCommitNotes,this)); @@ -311,6 +315,7 @@ void LLPanelProfileTab::onOpen(const LLSD& key)  	// Update data even if we are viewing same avatar profile as some data might been changed.  	setAvatarId(key.asUUID());  	updateData(); +	updateButtons();  }  void LLPanelProfileTab::scrollToTop() @@ -320,6 +325,22 @@ void LLPanelProfileTab::scrollToTop()  		scrollContainer->goToTop();  } +void LLPanelProfileTab::onMapButtonClick() +{ +	std::string name; +	gCacheName->getFullName(getAvatarId(), name); +	gFloaterWorldMap->trackAvatar(getAvatarId(), name); +	LLFloaterReg::showInstance("world_map"); +} + +void LLPanelProfileTab::updateButtons() +{ +	bool enable_map_btn = LLAvatarTracker::instance().isBuddyOnline(getAvatarId()) +					&& gAgent.isGodlike() || is_agent_mappable(getAvatarId()); + +	childSetEnabled("show_on_map_btn", enable_map_btn); +} +  //////////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////////  ////////////////////////////////////////////////////////////////////////// @@ -338,6 +359,8 @@ BOOL LLPanelAvatarProfile::postBuild()  	childSetCommitCallback("teleport",(boost::bind(&LLPanelAvatarProfile::onTeleportButtonClick,this)),NULL);  	childSetCommitCallback("overflow_btn", boost::bind(&LLPanelAvatarProfile::onOverflowButtonClicked, this), NULL);  	childSetCommitCallback("share",(boost::bind(&LLPanelAvatarProfile::onShareButtonClick,this)),NULL); +	childSetCommitCallback("show_on_map_btn", (boost::bind( +			&LLPanelAvatarProfile::onMapButtonClick, this)), NULL);  	LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;  	registrar.add("Profile.Pay",  boost::bind(&LLPanelAvatarProfile::pay, this)); diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h index 527e1c0d34..dc94ff02ca 100644 --- a/indra/newview/llpanelavatar.h +++ b/indra/newview/llpanelavatar.h @@ -106,6 +106,10 @@ protected:  	 */  	void scrollToTop(); +	virtual void onMapButtonClick(); + +	virtual void updateButtons(); +  private:  	LLUUID mAvatarId; diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp index 78b4d29b16..741f42f9d5 100644 --- a/indra/newview/llpanelimcontrolpanel.cpp +++ b/indra/newview/llpanelimcontrolpanel.cpp @@ -32,6 +32,8 @@  #include "llviewerprecompiledheaders.h" +#include "llfloaterreg.h" +  #include "llpanelimcontrolpanel.h"  #include "llagent.h" @@ -58,7 +60,7 @@ void LLPanelChatControlPanel::onEndCallButtonClicked()  void LLPanelChatControlPanel::onOpenVoiceControlsClicked()  { -	// TODO: implement Voice Control Panel opening +	LLFloaterReg::showInstance("voice_controls", getSessionId());  }  void LLPanelChatControlPanel::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state) diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h index b17b6d6fe9..b21b1c64b1 100644 --- a/indra/newview/llpanelpicks.h +++ b/indra/newview/llpanelpicks.h @@ -86,6 +86,9 @@ public:  	// parent panels failed to work (picks related code was in my profile panel)  	void setProfilePanel(LLPanelProfile* profile_panel); +protected: +	/*virtual*/void updateButtons(); +  private:  	void onClickDelete();  	void onClickTeleport(); @@ -125,7 +128,6 @@ private:  	bool callbackDeleteClassified(const LLSD& notification, const LLSD& response);  	bool callbackTeleport(const LLSD& notification, const LLSD& response); -	void updateButtons();  	virtual void onDoubleClickPickItem(LLUICtrl* item);  	virtual void onDoubleClickClassifiedItem(LLUICtrl* item); diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index a5440c3687..7cf5302e40 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -89,6 +89,7 @@ LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source, LLAvatarList* av  			mModeratorList.insert(speakerp->mID);  		}  	} +	mAvatarList->setDirty(true);  	sort();  } diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml index 2f13b51a9f..4434fe7403 100644 --- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml @@ -25,13 +25,13 @@              <avatar_icon               enabled="false"               follows="left|top" -             height="20" -             image_name="icon_avatar_online.tga" +             height="18" +             image_name="Generic_Person"               layout="topleft"               left="0"               name="user_icon"               top="0" -             width="20" /> +             width="18" />              <text               follows="top|left"               font="SansSerifSmallBold" diff --git a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml index 41b210557e..889f29fc53 100644 --- a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml @@ -61,7 +61,6 @@           width="125"/>          <button -         enabled="false"           bottom="10"           follows="all"            height="20"  | 
