diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llvoicechannel.cpp | 31 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_outgoing_call.xml | 11 | 
2 files changed, 36 insertions, 6 deletions
| diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp index 21054dacd0..8f63df8c29 100644 --- a/indra/newview/llvoicechannel.cpp +++ b/indra/newview/llvoicechannel.cpp @@ -754,6 +754,8 @@ LLVoiceChannelP2P::LLVoiceChannelP2P(const LLUUID& session_id, const std::string  void LLVoiceChannelP2P::handleStatusChange(EStatusType type)  { +	llinfos << "P2P CALL CHANNEL STATUS CHANGE: incoming=" << int(mReceivedCall) << " newstatus=" << LLVoiceClientStatusObserver::status2string(type) << " (mState=" << mState << ")" << llendl; +  	// status updates  	switch(type)  	{ @@ -880,6 +882,8 @@ void LLVoiceChannelP2P::setState(EState state)  	// *HACK: Open/close the call window if needed.  	toggleCallWindowIfNeeded(state); +	llinfos << "P2P CALL STATE CHANGE: incoming=" << int(mReceivedCall) << " oldstate=" << mState << " newstate=" << state << llendl; +  	if (mReceivedCall) // incoming call  	{  		// you only "answer" voice invites in p2p mode @@ -896,7 +900,8 @@ void LLVoiceChannelP2P::setState(EState state)  		mCallDialogPayload["session_id"] = mSessionID;  		mCallDialogPayload["session_name"] = mSessionName;  		mCallDialogPayload["other_user_id"] = mOtherUserID; -		if (state == STATE_RINGING) +		if (state == STATE_RINGING || +		    state == STATE_CALL_STARTED)  		{  			// *HACK: open outgoing call floater if needed, might be better done elsewhere.  			// *TODO: should move this squirrelly ui-fudging crap into LLOutgoingCallDialog itself @@ -908,6 +913,7 @@ void LLVoiceChannelP2P::setState(EState state)  					ocd->getChild<LLTextBox>("calling")->setVisible(true);  					ocd->getChild<LLTextBox>("leaving")->setVisible(true);  					ocd->getChild<LLTextBox>("connecting")->setVisible(false); +					ocd->getChild<LLTextBox>("noanswer")->setVisible(false);  				}  			}  		} @@ -919,16 +925,29 @@ void LLVoiceChannelP2P::setState(EState state)  					ocd->getChild<LLTextBox>("calling")->setVisible(false);  					ocd->getChild<LLTextBox>("leaving")->setVisible(false);  					ocd->getChild<LLTextBox>("connecting")->setVisible(true); +					ocd->getChild<LLTextBox>("noanswer")->setVisible(false);  				}			  				}*/ +		else if (state == STATE_ERROR) +		{ +			LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE)); +			if (ocd) +			{ +				ocd->getChild<LLTextBox>("calling")->setVisible(false); +				ocd->getChild<LLTextBox>("leaving")->setVisible(false); +				ocd->getChild<LLTextBox>("connecting")->setVisible(false); +				ocd->getChild<LLTextBox>("noanswer")->setVisible(true); +			}			 +		}  		else if (state == STATE_HUNG_UP ||  			 state == STATE_CONNECTED)  		{ -				LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE)); -				if (ocd) -				{ -					ocd->closeFloater(); -				}			 +			// hide popup +			LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE)); +			if (ocd) +			{ +				ocd->closeFloater(); +			}			  		}  	} diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml index 82417de8a7..ae4d5042ef 100644 --- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml @@ -59,6 +59,17 @@ Connecting to [CALLEE_NAME]  Calling [CALLEE_NAME]      </text>      <text +     font="SansSerifLarge" +     height="20" +     layout="topleft" +     left="77" +     name="noanswer" +     top="27" +     width="315" +     word_wrap="true"> +No Answer.  Please try again later. +    </text> +    <text       font="SansSerif"       height="50"       layout="topleft" | 
