diff options
| author | Steven Bennetts <steve@lindenlab.com> | 2009-10-21 04:50:52 +0000 | 
|---|---|---|
| committer | Steven Bennetts <steve@lindenlab.com> | 2009-10-21 04:50:52 +0000 | 
| commit | 57fca109cae3105b6bc1319e9886c16631bc7374 (patch) | |
| tree | 618f923620d943f50de59f64391d1cdaae9f8ba5 | |
| parent | 2c1aacf814142b23049eff2a691a7cd2902bcf1d (diff) | |
Merging revisions 2107-2109 of https://svn.aws.productengine.com/secondlife/pe/stable-2 into P:\svn\viewer-2.0.0, respecting ancestry
* Bugs: EXT-1557
| -rw-r--r-- | indra/newview/llimpanel.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llimpanel.h | 2 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 65 | ||||
| -rw-r--r-- | indra/newview/llimview.h | 12 | ||||
| -rw-r--r-- | indra/newview/llpanelavatar.cpp | 4 | 
5 files changed, 49 insertions, 50 deletions
| diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index 0ff3bd24e9..ead74b72bf 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -951,7 +951,6 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& session_label,  	mSentTypingState(TRUE),  	mNumUnreadMessages(0),  	mShowSpeakersOnConnect(TRUE), -	mAutoConnect(FALSE),  	mTextIMPossible(TRUE),  	mProfileButtonEnabled(TRUE),  	mCallBackEnabled(TRUE), @@ -1179,12 +1178,6 @@ void LLFloaterIMPanel::draw()  		mInputEditor->setLabel(getString("default_text_label"));  	} -	if (mAutoConnect && enable_connect) -	{ -		onClickStartCall(this); -		mAutoConnect = FALSE; -	} -  	// show speakers window when voice first connects  	if (mShowSpeakersOnConnect && voice_channel->isActive())  	{ @@ -1525,7 +1518,7 @@ void LLFloaterIMPanel::onClickStartCall(void* userdata)  {  	LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata; -	LLIMModel::getInstance()->getVoiceChannel(self->mSessionUUID)->activate(); +	gIMMgr->startCall(self->mSessionUUID);  }  // static @@ -1533,7 +1526,7 @@ void LLFloaterIMPanel::onClickEndCall(void* userdata)  {  	LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata; -	LLIMModel::getInstance()->getVoiceChannel(self->mSessionUUID)->deactivate(); +	gIMMgr->endCall(self->mSessionUUID);  }  // static @@ -1712,11 +1705,6 @@ void LLFloaterIMPanel::sessionInitReplyReceived(const LLUUID& session_id)  	}  } -void LLFloaterIMPanel::requestAutoConnect() -{ -	mAutoConnect = TRUE; -} -  void LLFloaterIMPanel::setTyping(BOOL typing)  {  	LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionUUID); diff --git a/indra/newview/llimpanel.h b/indra/newview/llimpanel.h index 57379b2c0d..af50362f00 100644 --- a/indra/newview/llimpanel.h +++ b/indra/newview/llimpanel.h @@ -336,8 +336,6 @@ private:  	BOOL mShowSpeakersOnConnect; -	BOOL mAutoConnect; -	  	BOOL mTextIMPossible;  	BOOL mProfileButtonEnabled;  	BOOL mCallBackEnabled; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 6aa6c3f461..20b9cc1f8b 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -854,23 +854,18 @@ public:  				//in case of race conditions  				speaker_mgr->updateSpeakers(gIMMgr->getPendingAgentListUpdates(mSessionID));  			} -			 -			LLFloaterIMPanel* floaterp = -				gIMMgr->findFloaterBySession(mSessionID); -			if (floaterp) +			if (LLIMMgr::INVITATION_TYPE_VOICE == mInvitiationType)  			{ -				if ( mInvitiationType == LLIMMgr::INVITATION_TYPE_VOICE ) -				{ -					floaterp->requestAutoConnect(); -					LLFloaterIMPanel::onClickStartCall(floaterp); -					// always open IM window when connecting to voice -					LLFloaterReg::showInstance("communicate", LLSD(), TRUE); -				} -				else if ( mInvitiationType == LLIMMgr::INVITATION_TYPE_IMMEDIATE ) -				{ -					LLFloaterReg::showInstance("communicate", LLSD(), TRUE); -				} +				gIMMgr->startCall(mSessionID); +			} + +			if ((mInvitiationType == LLIMMgr::INVITATION_TYPE_VOICE  +				|| mInvitiationType == LLIMMgr::INVITATION_TYPE_IMMEDIATE) +				&& LLIMModel::getInstance()->findIMSession(mSessionID)) +			{ +				// always open IM window when connecting to voice +				LLIMFloater::show(mSessionID);  			}  			gIMMgr->clearPendingAgentListUpdates(mSessionID); @@ -1041,20 +1036,13 @@ void LLIncomingCallDialog::processCallResponse(S32 response)  			if (voice)  			{ -				LLFloaterIMPanel* im_floater = -					gIMMgr->findFloaterBySession( -						session_id); - -				if (im_floater) +				if (gIMMgr->startCall(session_id))  				{ -					im_floater->requestAutoConnect(); -					LLFloaterIMPanel::onClickStartCall(im_floater);		 +					// always open IM window when connecting to voice +					LLIMFloater::show(session_id);  				}  			} -			// always open IM window when connecting to voice -			LLFloaterReg::showInstance("communicate", session_id); -  			gIMMgr->clearPendingAgentListUpdates(session_id);  			gIMMgr->clearPendingInvitation(session_id);  		} @@ -1159,15 +1147,10 @@ bool inviteUserResponse(const LLSD& notification, const LLSD& response)  					payload["session_handle"].asString(),  					payload["session_uri"].asString()); -				LLFloaterIMPanel* im_floater = -					gIMMgr->findFloaterBySession( -						session_id); -				if (im_floater) +				if (gIMMgr->startCall(session_id))  				{ -					im_floater->requestAutoConnect(); -					LLFloaterIMPanel::onClickStartCall(im_floater);  					// always open IM window when connecting to voice -					LLFloaterReg::showInstance("communicate", session_id, TRUE); +					LLIMFloater::show(session_id);  				}  				gIMMgr->clearPendingAgentListUpdates(session_id); @@ -1905,6 +1888,24 @@ void LLIMMgr::removeSessionObserver(LLIMSessionObserver *observer)  	mSessionObservers.remove(observer);  } +bool LLIMMgr::startCall(const LLUUID& session_id) +{ +	LLVoiceChannel* voice_channel = LLIMModel::getInstance()->getVoiceChannel(session_id); +	if (!voice_channel) return false; +	 +	voice_channel->activate(); +	return true; +} + +bool LLIMMgr::endCall(const LLUUID& session_id) +{ +	LLVoiceChannel* voice_channel = LLIMModel::getInstance()->getVoiceChannel(session_id); +	if (!voice_channel) return false; + +	voice_channel->deactivate(); +	return true; +} +  // create a floater and update internal representation for  // consistency. Returns the pointer, caller (the class instance since  // it is a private method) is not responsible for deleting the diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 84646a9a6f..d98b5ca297 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -282,6 +282,18 @@ public:  	void addSessionObserver(LLIMSessionObserver *);  	void removeSessionObserver(LLIMSessionObserver *); +	/** +	 * Start call in a session +	 * @return false if voice channel doesn't exist +	 **/ +	bool startCall(const LLUUID& session_id); + +	/** +	 * End call in a session +	 * @return false if voice channel doesn't exist +	 **/ +	bool endCall(const LLUUID& session_id); +  private:  	// create a panel and update internal representation for  	// consistency. Returns the pointer, caller (the class instance diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 7670a5120c..1a2ef8e1bb 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -336,10 +336,10 @@ BOOL LLPanelAvatarProfile::postBuild()  	childSetCommitCallback("share",(boost::bind(&LLPanelAvatarProfile::onShareButtonClick,this)),NULL);  	LLTextureCtrl* pic = getChild<LLTextureCtrl>("2nd_life_pic"); -	pic->setFallbackImageName("default_land_picture.j2c"); +	pic->setFallbackImageName("default_profile_picture.j2c");  	pic = getChild<LLTextureCtrl>("real_world_pic"); -	pic->setFallbackImageName("default_land_picture.j2c"); +	pic->setFallbackImageName("default_profile_picture.j2c");  	resetControls();  	resetData(); | 
