diff options
| -rw-r--r-- | indra/newview/llimconversation.cpp | 42 | ||||
| -rw-r--r-- | indra/newview/llimconversation.h | 14 | ||||
| -rw-r--r-- | indra/newview/llimfloater.cpp | 39 | ||||
| -rw-r--r-- | indra/newview/llimfloater.h | 9 | ||||
| -rw-r--r-- | indra/newview/llnearbychat.cpp | 23 | ||||
| -rw-r--r-- | indra/newview/llnearbychat.h | 7 | 
6 files changed, 53 insertions, 81 deletions
| diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp index 5a5196fb7e..d8c81a7849 100644 --- a/indra/newview/llimconversation.cpp +++ b/indra/newview/llimconversation.cpp @@ -31,6 +31,8 @@  #include "llchatentry.h"  #include "llchathistory.h" +#include "llchiclet.h" +#include "llchicletbar.h"  #include "lldraghandle.h"  #include "llfloaterreg.h"  #include "llimfloater.h" @@ -53,6 +55,8 @@ LLIMConversation::LLIMConversation(const LLUUID& session_id)    , mInputEditorTopPad(0)    , mRefreshTimer(new LLTimer())  { +	mSession = LLIMModel::getInstance()->findIMSession(mSessionID); +  	mCommitCallbackRegistrar.add("IMSession.Menu.Action",  			boost::bind(&LLIMConversation::onIMSessionMenuItemClicked,  this, _2));  	mEnableCallbackRegistrar.add("IMSession.Menu.CompactExpandedModes.CheckItem", @@ -182,6 +186,44 @@ void LLIMConversation::draw()  	}  } +void LLIMConversation::enableDisableCallBtn() +{ +    getChildView("voice_call_btn")->setEnabled( +    		mSessionID.notNull() +    		&& mSession +    		&& mSession->mSessionInitialized +    		&& LLVoiceClient::getInstance()->voiceEnabled() +    		&& LLVoiceClient::getInstance()->isVoiceWorking() +    		&& mSession->mCallBackEnabled); +} + + +void LLIMConversation::onFocusReceived() +{ +	setBackgroundOpaque(true); + +	if (mSessionID.notNull()) +	{ +		LLChicletBar::getInstance()->getChicletPanel()->setChicletToggleState(mSessionID, true); + +		if (getVisible()) +		{ +			// suppress corresponding toast only if this floater is visible and have focus +			LLIMModel::getInstance()->setActiveSessionID(mSessionID); +			LLIMModel::instance().sendNoUnreadMessages(mSessionID); +		} +	} + +	LLTransientDockableFloater::onFocusReceived(); +} + +void LLIMConversation::onFocusLost() +{ +	setBackgroundOpaque(false); +	LLTransientDockableFloater::onFocusLost(); +} + +  void LLIMConversation::buildParticipantList()  {  	if (mIsNearbyChat) diff --git a/indra/newview/llimconversation.h b/indra/newview/llimconversation.h index 26151ad1be..50feb12aed 100644 --- a/indra/newview/llimconversation.h +++ b/indra/newview/llimconversation.h @@ -33,6 +33,7 @@  #include "lltransientdockablefloater.h"  #include "llviewercontrol.h"  #include "lleventtimer.h" +#include "llimview.h"  #include "llconversationmodel.h"  class LLPanelChatControlPanel; @@ -87,9 +88,6 @@ protected:  	// refresh a visual state of the Call button  	void updateCallBtnState(bool callIsActive); -	// set the enable/disable state for the Call button -	virtual void enableDisableCallBtn() = 0; -  	void buildParticipantList();  	void onSortMenuItemClicked(const LLSD& userdata); @@ -99,9 +97,18 @@ protected:  	/// Update floater header and toolbar buttons when hosted/torn off state is toggled.  	void updateHeaderAndToolbar(); +	// set the enable/disable state for the Call button +	virtual void enableDisableCallBtn(); + +	// process focus events to set a currently active session +	/* virtual */ void onFocusLost(); +	/* virtual */ void onFocusReceived(); +  	bool mIsNearbyChat;  	bool mIsP2PChat; +	LLIMModel::LLIMSession* mSession; +  	LLLayoutPanel* mParticipantListPanel;  	LLParticipantList* mParticipantList;  	LLUUID mSessionID; @@ -119,7 +126,6 @@ private:  	/// Refreshes the floater at a constant rate.  	virtual void refresh() = 0; -  	/**  	 * Adjusts chat history height to fit vertically with input chat field  	 * and avoid overlapping, since input chat field can be vertically expanded. diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index a601561c62..7b475c1e0b 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -92,24 +92,6 @@ LLIMFloater::LLIMFloater(const LLUUID& session_id)  	setDocked(true);  } -void LLIMFloater::onFocusLost() -{ -	LLIMModel::getInstance()->resetActiveSessionID(); -	 -	LLChicletBar::getInstance()->getChicletPanel()->setChicletToggleState(mSessionID, false); -} - -void LLIMFloater::onFocusReceived() -{ -	LLChicletBar::getInstance()->getChicletPanel()->setChicletToggleState(mSessionID, true); - -	if (getVisible()) -	{ -		// suppress corresponding toast only if this floater is visible and have focus -		LLIMModel::getInstance()->setActiveSessionID(mSessionID); -		LLIMModel::instance().sendNoUnreadMessages(mSessionID); -	} -}  // virtual  void LLIMFloater::refresh() @@ -513,27 +495,6 @@ void LLIMFloater::boundVoiceChannel()  	}  } -void LLIMFloater::enableDisableCallBtn() -{ -	bool voice_enabled = LLVoiceClient::getInstance()->voiceEnabled() -			&& LLVoiceClient::getInstance()->isVoiceWorking(); - -	if (mSession) -	{ -		bool session_initialized = mSession->mSessionInitialized; -		bool callback_enabled = mSession->mCallBackEnabled; - -		BOOL enable_connect = -				session_initialized && voice_enabled && callback_enabled; -		getChildView("voice_call_btn")->setEnabled(enable_connect); -	} -	else -	{ -		getChildView("voice_call_btn")->setEnabled(false); -	} -} - -  void LLIMFloater::onCallButtonClicked()  {  	LLVoiceChannel* voice_channel = LLIMModel::getInstance()->getVoiceChannel(mSessionID); diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h index 24a8f17feb..7b2c9e7aef 100644 --- a/indra/newview/llimfloater.h +++ b/indra/newview/llimfloater.h @@ -134,10 +134,6 @@ public:  private: -	// process focus events to set a currently active session -	/* virtual */ void onFocusLost(); -	/* virtual */ void onFocusReceived(); -  	/*virtual*/ void refresh();  	/*virtual*/ void onClickCloseBtn(); @@ -169,9 +165,6 @@ private:  	void onCallButtonClicked(); -	// set the enable/disable state for the Call button -	virtual void enableDisableCallBtn(); -  	void boundVoiceChannel();  	// Add the "User is typing..." indicator. @@ -184,8 +177,6 @@ private:  	static void confirmLeaveCallCallback(const LLSD& notification, const LLSD& response); - -	LLIMModel::LLIMSession* mSession;  	S32 mLastMessageIndex;  	EInstantMessage mDialog; diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 25bbc82fee..c2ad8cfda3 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -133,6 +133,7 @@ LLNearbyChat::LLNearbyChat(const LLSD& llsd)  	setIsChrome(TRUE);  	mKey = LLSD();  	mSpeakerMgr = LLLocalSpeakerMgr::getInstance(); +	mSessionID = LLUUID();  	setName("nearby_chat");  	setIsSingleInstance(TRUE);  } @@ -216,21 +217,6 @@ bool	LLNearbyChat::onNearbyChatCheckContextMenuItem(const LLSD& userdata)  	return false;  } -//////////////////////////////////////////////////////////////////////////////// -// -void LLNearbyChat::onFocusReceived() -{ -	setBackgroundOpaque(true); -	LLIMConversation::onFocusReceived(); -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLNearbyChat::onFocusLost() -{ -	setBackgroundOpaque(false); -	LLIMConversation::onFocusLost(); -}  BOOL	LLNearbyChat::handleMouseDown(S32 x, S32 y, MASK mask)  { @@ -326,13 +312,6 @@ void	LLNearbyChat::setVisible(BOOL visible)  } -void LLNearbyChat::enableDisableCallBtn() -{ -	// bool btn_enabled = LLAgent::isActionAllowed("speak"); - -	getChildView("voice_call_btn")->setEnabled(false /*btn_enabled*/); -} -  void LLNearbyChat::onTearOffClicked()  {  	LLIMConversation::onTearOffClicked(); diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h index 4fc5cb7f76..1db7afc01f 100644 --- a/indra/newview/llnearbychat.h +++ b/indra/newview/llnearbychat.h @@ -51,10 +51,6 @@ public:  	/*virtual*/ BOOL postBuild();  	/*virtual*/ void onOpen(const LLSD& key); -	// focus overrides -	/*virtual*/ void	onFocusLost(); -	/*virtual*/ void	onFocusReceived(); -  	/*virtual*/ void	setVisible(BOOL visible);  	void loadHistory(); @@ -102,9 +98,6 @@ protected:  	void displaySpeakingIndicator(); -	// set the enable/disable state for the Call button -	virtual void enableDisableCallBtn(); -  	// Which non-zero channel did we last chat on?  	static S32 sLastSpecialChatChannel; | 
