summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorYuri Chebotarev <ychebotarev@productengine.com>2009-11-27 11:43:48 +0200
committerYuri Chebotarev <ychebotarev@productengine.com>2009-11-27 11:43:48 +0200
commitbc57c73814db2297f17e2c6497a3ae8562bf845c (patch)
treea8ef0bc4f8cd19a7978f04e867476d210a439b5c /indra
parente8421572d01640f1fac0d8a0f04c85db35fe3b51 (diff)
parent4441b83e3304baad458be13a36a4f676269c9ded (diff)
merge
--HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llavatarlist.cpp7
-rw-r--r--indra/newview/llavatarlist.h2
-rw-r--r--indra/newview/llcallfloater.cpp25
-rw-r--r--indra/newview/llcallfloater.h1
-rw-r--r--indra/newview/llpanelavatar.cpp23
-rw-r--r--indra/newview/llpanelavatar.h4
-rw-r--r--indra/newview/llpanelimcontrolpanel.cpp4
-rw-r--r--indra/newview/llpanelpicks.h4
-rw-r--r--indra/newview/llparticipantlist.cpp1
-rw-r--r--indra/newview/skins/default/xui/en/floater_voice_controls.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_control_panel.xml1
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"