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" |