diff options
| -rw-r--r-- | indra/newview/llfloaterimcontainer.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsessiontab.cpp | 38 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsessiontab.h | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/textures/icons/nearby_chat_icon.png | bin | 399 -> 1035 bytes | |||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_im_session.xml | 32 | 
5 files changed, 82 insertions, 2 deletions
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index 21420b122b..540d2366a9 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -304,12 +304,15 @@ void LLFloaterIMContainer::addFloater(LLFloater* floaterp,  	LLIconCtrl* icon = 0; +	bool is_in_group = gAgent.isInGroup(session_id, TRUE); +	LLUUID icon_id; -	if(gAgent.isInGroup(session_id, TRUE)) +	if (is_in_group)  	{  		LLGroupIconCtrl::Params icon_params;  		icon_params.group_id = session_id;  		icon = LLUICtrlFactory::instance().create<LLGroupIconCtrl>(icon_params); +		icon_id = session_id;  		mSessions[session_id] = floaterp;  		floaterp->mCloseSignal.connect(boost::bind(&LLFloaterIMContainer::onCloseFloater, this, session_id)); @@ -321,11 +324,18 @@ void LLFloaterIMContainer::addFloater(LLFloater* floaterp,  		LLAvatarIconCtrl::Params icon_params;  		icon_params.avatar_id = avatar_id;  		icon = LLUICtrlFactory::instance().create<LLAvatarIconCtrl>(icon_params); +		icon_id = avatar_id;  		mSessions[session_id] = floaterp;  		floaterp->mCloseSignal.connect(boost::bind(&LLFloaterIMContainer::onCloseFloater, this, session_id));  	} +	LLFloaterIMSessionTab* floater = LLFloaterIMSessionTab::getConversation(session_id); +	if (floater) +	{ +		floater->updateChatIcon(icon_id); +	} +  	// forced resize of the floater  	LLRect wrapper_rect = this->mTabContainer->getLocalRect();  	floaterp->setRect(wrapper_rect); diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp index 3aee08482b..c75109db36 100644 --- a/indra/newview/llfloaterimsessiontab.cpp +++ b/indra/newview/llfloaterimsessiontab.cpp @@ -32,6 +32,8 @@  #include "llagent.h"  #include "llagentcamera.h"  #include "llavataractions.h" +#include "llavatariconctrl.h" +#include "llgroupiconctrl.h"  #include "llchatentry.h"  #include "llchathistory.h"  #include "llchiclet.h" @@ -45,6 +47,9 @@  #include "llfloaterimnearbychat.h"  const F32 REFRESH_INTERVAL = 1.0f; +const std::string ICN_GROUP("group_chat_icon"); +const std::string ICN_NEARBY("nearby_chat_icon"); +const std::string ICN_AVATAR("avatar_icon");  void cb_group_do_nothing()  { @@ -693,6 +698,39 @@ void LLFloaterIMSessionTab::updateSessionName(const std::string& name)  	mInputEditor->setLabel(LLTrans::getString("IM_to_label") + " " + name);  } +void LLFloaterIMSessionTab::updateChatIcon(const LLUUID& id) +{ +	if (mSession) +	{ +		if (mSession->isP2PSessionType()) +		{ +			LLAvatarIconCtrl* icon = getChild<LLAvatarIconCtrl>(ICN_AVATAR); +			icon->setVisible(true); +			icon->setValue(id); +		} +		if (mSession->isAdHocSessionType()) +		{ +			LLGroupIconCtrl* icon = getChild<LLGroupIconCtrl>(ICN_GROUP); +			icon->setVisible(true); +		} +		if (mSession->isGroupSessionType()) +		{ +			LLGroupIconCtrl* icon = getChild<LLGroupIconCtrl>(ICN_GROUP); +			icon->setVisible(true); +			icon->setValue(id); +		} +	} +	else +	{ +		if (mIsNearbyChat) +		{ +			LLIconCtrl* icon = getChild<LLIconCtrl>(ICN_NEARBY); +			icon->setVisible(true); +		} +	} + +} +  void LLFloaterIMSessionTab::hideAllStandardButtons()  {  	for (S32 i = 0; i < BUTTON_COUNT; i++) diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h index 1b4922fd73..169eb1cf7f 100644 --- a/indra/newview/llfloaterimsessiontab.h +++ b/indra/newview/llfloaterimsessiontab.h @@ -103,6 +103,8 @@ public:  	void restoreFloater();  	void saveCollapsedState(); +	void updateChatIcon(const LLUUID& id); +  	LLView* getChatHistory();  protected: diff --git a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png b/indra/newview/skins/default/textures/icons/nearby_chat_icon.png Binary files differindex 5ac4258b9d..2cb577776d 100644 --- a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png +++ b/indra/newview/skins/default/textures/icons/nearby_chat_icon.png diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml index c64ee5565a..15f02ab9c3 100644 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -267,6 +267,36 @@                   right="-1">                      <layout_panel                       name="input_editor_layout_panel"> +                        <avatar_icon +                         follows="left|bottom" +                         name="avatar_icon" +                         height="20" +                         default_icon_name="Generic_Person" +                         layout="topleft" +                         left="3" +                         bottom="-9" +                         visible="false" +                         width="20" /> +                        <group_icon +                         follows="left|bottom" +                         name="group_chat_icon" +                         height="20" +                         default_icon_name="Generic_Group" +                         layout="topleft" +                         left="3" +                         bottom="-9" +                         visible="false" +                         width="20" /> +                        <icon +                         follows="left|bottom" +                         height="20" +                         image_name="Nearby_chat_icon" +                         layout="topleft" +                         left="3" +                         bottom="-9" +                         name="nearby_chat_icon" +                         visible="false" +                         width="20"/>                          <chat_editor                           layout="topleft"                           expand_lines_count="5" @@ -280,7 +310,7 @@                           spellcheck="true"                           tab_group="3"                           bottom="-8" -                         left="5" +                         left_pad="5"                           right="-5"                           wrap="true" />                      </layout_panel>  | 
