diff options
| author | Jon Wolk <jwolk@lindenlab.com> | 2008-07-15 00:41:08 +0000 | 
|---|---|---|
| committer | Jon Wolk <jwolk@lindenlab.com> | 2008-07-15 00:41:08 +0000 | 
| commit | ae464867e6714816cd5bdaeecdd1d3c0a0817e58 (patch) | |
| tree | 02830da2f640dab402a7e7222b4f0aa6eca930b2 | |
| parent | 40d2bb564d35809d7735d2ec06ba988db7327020 (diff) | |
svn merge -r 90938:92097 svn+ssh://svn.lindenlab.com/svn/linden/branches/qar-730/qar-730-merge -> release.  This is for QAR-730: Combination merge of QAR-432 and QAR-601
| -rw-r--r-- | indra/llcommon/llsdutil.cpp | 5 | ||||
| -rw-r--r-- | indra/llcommon/llsdutil.h | 4 | ||||
| -rw-r--r-- | indra/llcommon/lluuid.cpp | 2 | ||||
| -rw-r--r-- | indra/llcommon/roles_constants.h | 10 | ||||
| -rw-r--r-- | indra/llinventory/llparcel.cpp | 6 | ||||
| -rw-r--r-- | indra/llinventory/llparcel.h | 4 | ||||
| -rw-r--r-- | indra/llui/lllineeditor.cpp | 22 | ||||
| -rw-r--r-- | indra/newview/llimpanel.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llpanellandmedia.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llstatusbar.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llvoiceclient.cpp | 15 | 
11 files changed, 56 insertions, 20 deletions
| diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp index 137539cc04..f62c8093d6 100644 --- a/indra/llcommon/llsdutil.cpp +++ b/indra/llcommon/llsdutil.cpp @@ -184,8 +184,9 @@ char* ll_pretty_print_sd(const LLSD& sd)  }  //compares the structure of an LLSD to a template LLSD and stores the -//"valid" values in a 3rd LLSD.  Default values are stored in the template -// +//"valid" values in a 3rd LLSD.  Default values pulled from the template +//if the tested LLSD does not contain the key/value pair. +//Excess values in the test LLSD are ignored in the resultant_llsd.  //If the llsd to test has a specific key to a map and the values  //are not of the same type, false is returned or if the LLSDs are not  //of the same value.  Ordering of arrays matters diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h index 7098fa8252..818566fc03 100644 --- a/indra/llcommon/llsdutil.h +++ b/indra/llcommon/llsdutil.h @@ -92,9 +92,11 @@ char* ll_pretty_print_sd(const LLSD& sd);  //compares the structure of an LLSD to a template LLSD and stores the  //"valid" values in a 3rd LLSD. Default values -//are pulled from the template.  Ordering of arrays matters +//are pulled from the template.  Extra keys/values in the test +//are ignored in the resultant LLSD.  Ordering of arrays matters  //Returns false if the test is of same type but values differ in type  //Otherwise, returns true +  BOOL compare_llsd_with_template(  	const LLSD& llsd_to_test,  	const LLSD& template_llsd, diff --git a/indra/llcommon/lluuid.cpp b/indra/llcommon/lluuid.cpp index 51e27e0708..1098d1bd3c 100644 --- a/indra/llcommon/lluuid.cpp +++ b/indra/llcommon/lluuid.cpp @@ -184,7 +184,7 @@ void LLUUID::toCompressedString(std::string& out) const  	char bytes[UUID_BYTES+1];  	memcpy(bytes, mData, UUID_BYTES);		/* Flawfinder: ignore */  	bytes[UUID_BYTES] = '\0'; -	out = bytes; +	out.assign(bytes, UUID_BYTES);  }  // *TODO: deprecate diff --git a/indra/llcommon/roles_constants.h b/indra/llcommon/roles_constants.h index 23ebcf34d6..7773b43f4a 100644 --- a/indra/llcommon/roles_constants.h +++ b/indra/llcommon/roles_constants.h @@ -143,11 +143,18 @@ const U64 GP_NOTICES_RECEIVE		= 0x1LL << 43;	// Receive Notices and View Notice  const U64 GP_PROPOSAL_START		= 0x1LL << 44;	// Start Proposal  const U64 GP_PROPOSAL_VOTE		= 0x1LL << 45;	// Vote on Proposal +// Group chat moderation related +const U64 GP_SESSION_JOIN = 0x1LL << 16; //can join session +const U64 GP_SESSION_VOICE = 0x1LL << 27; //can hear/talk +const U64 GP_SESSION_MODERATOR = 0x1LL << 37; //can mute people's session +  const U64 GP_DEFAULT_MEMBER = GP_ACCOUNTING_ACCOUNTABLE  								| GP_LAND_ALLOW_SET_HOME  								| GP_NOTICES_RECEIVE  								| GP_PROPOSAL_START  								| GP_PROPOSAL_VOTE +                                | GP_SESSION_JOIN +								| GP_SESSION_VOICE  								;  const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE @@ -188,5 +195,8 @@ const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE  								| GP_PROPOSAL_VOTE  								| GP_ROLE_ASSIGN_MEMBER_LIMITED  								| GP_ROLE_PROPERTIES +								| GP_SESSION_MODERATOR +								| GP_SESSION_JOIN +								| GP_SESSION_VOICE  								;  #endif diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index ecf013f042..489798910d 100644 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -1190,8 +1190,10 @@ BOOL LLParcel::exportStream(std::ostream& output_stream)  	output_stream << "\t\t sound_local	   " << (getSoundLocal() ? 1 : 0)  << "\n";  	output_stream << "\t\t allow_scripts    " << (getAllowOtherScripts()  ? 1 : 0)  << "\n";  	output_stream << "\t\t allow_group_scripts    " << (getAllowGroupScripts()  ? 1 : 0)  << "\n"; -	output_stream << "\t\t allow_voice_chat    " << (getVoiceEnabled() ? 1 : 0) << "\n"; -	output_stream << "\t\t use_estate_voice_chan   " << (getVoiceUseEstateChannel() ? 1 : 0) << "\n"; +	output_stream << "\t\t use_estate_voice_chan		 " << (getParcelFlagUseEstateVoiceChannel() ? 1 : 0) << "\n"; + +	output_stream << "\t\t allow_voice_chat    " << (getParcelFlagAllowVoice() ? 1 : 0) << "\n"; +	output_stream << "\t\t use_estate_voice_chan   " << (getParcelFlagUseEstateVoiceChannel() ? 1 : 0) << "\n";  	output_stream << "\t\t for_sale         " << (getForSale()       ? 1 : 0)  << "\n";  	output_stream << "\t\t sell_w_objects   " << (getSellWithObjects()	? 1 : 0)  << "\n";  	output_stream << "\t\t draw_distance    " << mDrawDistance  << "\n"; diff --git a/indra/llinventory/llparcel.h b/indra/llinventory/llparcel.h index 716802b2dc..2a0ddc4ba8 100644 --- a/indra/llinventory/llparcel.h +++ b/indra/llinventory/llparcel.h @@ -444,9 +444,9 @@ public:  					{ return (mParcelFlags & PF_FOR_SALE) ? TRUE : FALSE; }  	BOOL	getSoundLocal() const  					{ return (mParcelFlags & PF_SOUND_LOCAL) ? TRUE : FALSE; } -	BOOL	getVoiceEnabled() const +	BOOL	getParcelFlagAllowVoice() const  					{ return (mParcelFlags & PF_ALLOW_VOICE_CHAT) ? TRUE : FALSE; } -	BOOL	getVoiceUseEstateChannel() const +	BOOL	getParcelFlagUseEstateVoiceChannel() const  					{ return (mParcelFlags & PF_USE_ESTATE_VOICE_CHAN) ? TRUE : FALSE; }  	BOOL	getAllowPublish() const  					{ return (mParcelFlags & PF_ALLOW_PUBLISH) ? TRUE : FALSE; } diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index 2655918169..666e807a8d 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -1622,6 +1622,23 @@ void LLLineEditor::draw()  			}  		} +		//draw label if no text is provided +		//but we should draw it in a different color +		//to give indication that it is not text you typed in +		if (0 == mText.length() && mReadOnly) +		{ +			mGLFont->render(mLabel.getWString(), 0, +							mMinHPixels, (F32)text_bottom, +							label_color, +							LLFontGL::LEFT, +							LLFontGL::BOTTOM, +							LLFontGL::NORMAL, +							S32_MAX, +							mMaxHPixels - llround(rendered_pixels_right), +							&rendered_pixels_right, FALSE); +		} + +  		// Draw children (border)  		//mBorder->setVisible(TRUE);  		mBorder->setKeyboardFocusHighlight( TRUE ); @@ -1634,10 +1651,11 @@ void LLLineEditor::draw()  		// draw label if no text provided  		if (0 == mText.length())  		{ -			mGLFont->render(mLabel.getWString(), 0,  +			mGLFont->render(mLabel.getWString(), 0,  							mMinHPixels, (F32)text_bottom,  							label_color, -							LLFontGL::LEFT, LLFontGL::BOTTOM, +							LLFontGL::LEFT, +							LLFontGL::BOTTOM,  							LLFontGL::NORMAL,  							S32_MAX,  							mMaxHPixels - llround(rendered_pixels_right), diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index 754935edc6..9d8641eb2f 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -2225,7 +2225,7 @@ void LLFloaterIMPanel::showSessionForceClose(  		"ForceCloseChatterBoxSession",  		args,  		LLFloaterIMPanel::onConfirmForceCloseError, -		this); +		new LLUUID(mSessionUUID));  } diff --git a/indra/newview/llpanellandmedia.cpp b/indra/newview/llpanellandmedia.cpp index 34a4ad3954..3d38421ed4 100644 --- a/indra/newview/llpanellandmedia.cpp +++ b/indra/newview/llpanellandmedia.cpp @@ -150,9 +150,9 @@ void LLPanelLandMedia::refresh()  		mCheckSoundLocal->set( parcel->getSoundLocal() );  		mCheckSoundLocal->setEnabled( can_change_media ); -		if(parcel->getVoiceEnabled()) +		if(parcel->getParcelFlagAllowVoice())  		{ -			if(parcel->getVoiceUseEstateChannel()) +			if(parcel->getParcelFlagUseEstateVoiceChannel())  				mRadioVoiceChat->setSelectedIndex(kRadioVoiceChatEstate);  			else  				mRadioVoiceChat->setSelectedIndex(kRadioVoiceChatPrivate); diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index a7314548ca..ac80f1b669 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -429,7 +429,7 @@ void LLStatusBar::refresh()  		childSetVisible("restrictpush", FALSE);  	} -	BOOL have_voice = parcel && parcel->getVoiceEnabled();  +	BOOL have_voice = parcel && parcel->getParcelFlagAllowVoice();   	if (have_voice)  	{  		childSetVisible("status_no_voice", FALSE); diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 222ce45d9d..445e553c23 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -3426,16 +3426,13 @@ std::string LLVoiceClient::nameFromAvatar(LLVOAvatar *avatar)  std::string LLVoiceClient::nameFromID(const LLUUID &uuid)  {  	std::string result; -	std::string rawuuid; -	uuid.toCompressedString(rawuuid); -	  	// Prepending this apparently prevents conflicts with reserved names inside the vivox and diamondware code.  	result = "x";  	// Base64 encode and replace the pieces of base64 that are less compatible   	// with e-mail local-parts.  	// See RFC-4648 "Base 64 Encoding with URL and Filename Safe Alphabet" -	result += LLBase64::encode((const U8*)rawuuid.c_str(), UUID_BYTES); +	result += LLBase64::encode(uuid.mData, UUID_BYTES);  	LLStringUtil::replaceChar(result, '+', '-');  	LLStringUtil::replaceChar(result, '/', '_'); @@ -3467,8 +3464,6 @@ bool LLVoiceClient::IDFromName(const std::string name, LLUUID &uuid)  		if(len == UUID_BYTES)  		{  			// The decode succeeded.  Stuff the bits into the result's UUID -			// MBW -- XXX -- there's no analogue of LLUUID::toCompressedString that allows you to set a UUID from binary data. -			// The data field is public, so we cheat thusly:  			memcpy(uuid.mData, rawuuid, UUID_BYTES);  			result = true;  		} @@ -4076,6 +4071,9 @@ class LLViewerParcelVoiceInfo : public LLHTTPNode  		//the parcel you are in has changed something about its  		//voice information +		//this is a misnomer, as it can also be when you are not in +		//a parcel at all.  Should really be something like +		//LLViewerVoiceInfoChanged.....  		if ( input.has("body") )  		{  			LLSD body = input["body"]; @@ -4085,6 +4083,11 @@ class LLViewerParcelVoiceInfo : public LLHTTPNode  			//body["voice_credentials"] has "channel_uri" (str),  			//body["voice_credentials"] has "channel_credentials" (str) + +			//if we really wanted to be extra careful, +			//we'd check the supplied +			//local parcel id to make sure it's for the same parcel +			//we believe we're in  			if ( body.has("voice_credentials") )  			{  				LLSD voice_credentials = body["voice_credentials"]; | 
