diff options
19 files changed, 114 insertions, 46 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt index 274632a804..4bcbd6326d 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -159,6 +159,7 @@ Alissa Sabre  	VWR-12620  	VWR-12789  	SNOW-322 +    STORM-1723  Alliez Mysterio  Angus Boyd  	VWR-592 @@ -583,6 +584,7 @@ Jonathan Yap  	STORM-976  	STORM-1639  	STORM-910 +	STORM-1653  	STORM-1642  	STORM-591  	STORM-1105 @@ -595,6 +597,9 @@ Jonathan Yap  	STORM-1719  	STORM-1712  	STORM-1728 +	STORM-1736 +	STORM-1731 +	STORM-1733  Kadah Coba  	STORM-1060  Jondan Lundquist diff --git a/indra/llrender/llfontgl.cpp b/indra/llrender/llfontgl.cpp index 607473d416..82e8227ffe 100644 --- a/indra/llrender/llfontgl.cpp +++ b/indra/llrender/llfontgl.cpp @@ -304,6 +304,18 @@ S32 LLFontGL::render(const LLWString &wstr, S32 begin_offset, F32 x, F32 y, cons  		S32 next_bitmap_num = fgi->mBitmapNum;  		if (next_bitmap_num != bitmap_num)  		{ +			// Actually draw the queued glyphs before switching their texture; +			// otherwise the queued glyphs will be taken from wrong textures. +			if (glyph_count > 0) +			{ +				gGL.begin(LLRender::QUADS); +				{ +					gGL.vertexBatchPreTransformed(vertices, uvs, colors, glyph_count * 4); +				} +				gGL.end(); +				glyph_count = 0; +			} +  			bitmap_num = next_bitmap_num;  			LLImageGL *font_image = font_bitmap_cache->getImageGL(bitmap_num);  			gGL.getTexUnit(0)->bind(font_image); diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index ed4bb727cd..a856bd0bdc 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -2403,15 +2403,6 @@ void LLIMMgr::addMessage(  	bool link_name) // If this is true, then we insert the name and link it to a profile  {  	LLUUID other_participant_id = target_id; - -	// don't process muted IMs -	if (LLMuteList::getInstance()->isMuted( -			other_participant_id, -			LLMute::flagTextChat) && !LLMuteList::getInstance()->isLinden(from)) -	{ -		return; -	} -  	LLUUID new_session_id = session_id;  	if (new_session_id.isNull())  	{ @@ -2452,10 +2443,25 @@ void LLIMMgr::addMessage(  			LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, bonus_info.str());  		} +		// Logically it would make more sense to reject the session sooner, in another area of the +		// code, but the session has to be established inside the server before it can be left. +		if (LLMuteList::getInstance()->isMuted(other_participant_id) && !LLMuteList::getInstance()->isLinden(from)) +		{ +			llwarns << "Leaving IM session from initiating muted resident " << from << llendl; +			if(!gIMMgr->leaveSession(new_session_id)) +			{ +				llinfos << "Session " << new_session_id << " does not exist." << llendl; +			} +			return; +		} +  		make_ui_sound("UISndNewIncomingIMSession");  	} -	LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, msg); +	if (!LLMuteList::getInstance()->isMuted(other_participant_id, LLMute::flagTextChat)) +	{ +		LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, msg); +	}  }  void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& message_name, const LLSD& args) @@ -2661,18 +2667,15 @@ void LLIMMgr::inviteToSession(  	const std::string& session_handle,  	const std::string& session_uri)  { -	//ignore invites from muted residents -	if (LLMuteList::getInstance()->isMuted(caller_id)) -	{ -		return; -	} -  	std::string notify_box_type;  	// voice invite question is different from default only for group call (EXT-7118)  	std::string question_type = "VoiceInviteQuestionDefault";  	BOOL ad_hoc_invite = FALSE;  	BOOL voice_invite = FALSE; +	bool is_linden = LLMuteList::getInstance()->isLinden(caller_name); + +  	if(type == IM_SESSION_P2P_INVITE)  	{  		//P2P is different...they only have voice invitations @@ -2711,7 +2714,18 @@ void LLIMMgr::inviteToSession(  	payload["session_uri"] = session_uri;  	payload["notify_box_type"] = notify_box_type;  	payload["question_type"] = question_type; -	 + +	//ignore invites from muted residents +	if (LLMuteList::getInstance()->isMuted(caller_id) && !is_linden) +	{ +		if (voice_invite && "VoiceInviteQuestionDefault" == question_type) +		{ +			llinfos << "Rejecting voice call from initiating muted resident " << caller_name << llendl; +			LLIncomingCallDialog::processCallResponse(1, payload); +		} +		return; +	} +  	LLVoiceChannel* channelp = LLVoiceChannel::getChannelByID(session_id);  	if (channelp && channelp->callStarted())  	{ @@ -3234,7 +3248,7 @@ public:  			chat.mFromID = from_id;  			chat.mFromName = name; -			if (!is_linden && (is_busy || is_muted)) +			if (!is_linden && is_busy)  			{  				return;  			} @@ -3266,6 +3280,11 @@ public:  				ll_vector3_from_sd(message_params["position"]),  				true); +			if (LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat)) +			{ +				return; +			} +  			//K now we want to accept the invitation  			std::string url = gAgent.getRegion()->getCapability(  				"ChatSessionRequest"); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ad333a71ff..d7c50ad9a4 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2235,6 +2235,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  	{          name = LLTrans::getString("Unnamed");  	} + +	// Preserve the unaltered name for use in group notice mute checking. +	std::string original_name = name; +  	// IDEVO convert new-style "Resident" names for display  	name = clean_name_from_im(name, dialog); @@ -2441,6 +2445,26 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  				break;  			} +			// The group notice packet does not have an AgentID.  Obtain one from the name cache. +			// If last name is "Resident" strip it out so the cache name lookup works. +			U32 index = original_name.find(" Resident"); +			if (index != std::string::npos) +			{ +				original_name = original_name.substr(0, index); +			} +			std::string legacy_name = gCacheName->buildLegacyName(original_name); +			LLUUID agent_id; +			gCacheName->getUUID(legacy_name, agent_id); + +			if (agent_id.isNull()) +			{ +				LL_WARNS("Messaging") << "buildLegacyName returned null while processing " << original_name << LL_ENDL; +			} +			else if (LLMuteList::getInstance()->isMuted(agent_id)) +			{ +				break; +			} +  			notice_bin_bucket = (struct notice_bucket_full_t*) &binary_bucket[0];  			U8 has_inventory = notice_bin_bucket->header.has_inventory;  			U8 asset_type = notice_bin_bucket->header.asset_type; diff --git a/indra/newview/skins/default/xui/da/menu_viewer.xml b/indra/newview/skins/default/xui/da/menu_viewer.xml index c2f7d26dc9..ba18306686 100644 --- a/indra/newview/skins/default/xui/da/menu_viewer.xml +++ b/indra/newview/skins/default/xui/da/menu_viewer.xml @@ -121,6 +121,7 @@  			<menu_item_call label="Model..." name="Upload Model"/>  			<menu_item_call label="Model Wizard..." name="Upload Model Wizard"/>  			<menu_item_call label="Mange (L$[COST] pr. fil)..." name="Bulk Upload"/> +			<menu_item_call label="Sæt standardværdier for upload rettigheder" name="perm prefs"/>  		</menu>  		<menu_item_call label="Fortyd" name="Undo"/>  		<menu_item_call label="Gendan" name="Redo"/> diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index e6135aa100..90b2cfbc41 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -140,6 +140,7 @@  			<menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>  			<menu_item_call label="Modell..." name="Upload Model"/>  			<menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/> +			<menu_item_call label="Hochlade-Berechtigungen (Standard) festlegen" name="perm prefs"/>  		</menu>  		<menu_item_call label="Rückgängig" name="Undo"/>  		<menu_item_call label="Wiederholen" name="Redo"/> 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 5fe8f3c114..a2739a8339 100644 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -3,7 +3,7 @@   legacy_header_height="18"   background_visible="true"   default_tab_group="1" - height="350" + height="355"   help_topic="floater_im_box"   layout="topleft"   name="panel_im" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 1834be2d48..0aa5c72f2a 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1713,7 +1713,17 @@               function="ToggleControl"               parameter="MouseSmooth" />          </menu_item_check> - +            <menu_item_call +             enabled="false" +             label="Release Keys" +             name="Release Keys"> +                <menu_item_call.on_click +                 function="Tools.ReleaseKeys" +                 parameter="" /> +                <menu_item_call.on_enable +                 function="Tools.EnableReleaseKeys" +                 parameter="" /> +            </menu_item_call>          <menu_item_separator/>          <menu @@ -1743,17 +1753,7 @@               function="Floater.Toggle"               parameter="search" />              </menu_item_check> -            <menu_item_call -             enabled="false" -             label="Release Keys" -             name="Release Keys"> -                <menu_item_call.on_click -                 function="Tools.ReleaseKeys" -                 parameter="" /> -                <menu_item_call.on_enable -                 function="Tools.EnableReleaseKeys" -                 parameter="" /> -            </menu_item_call> +              <!-- This second, alternative shortcut for Show Advanced Menu is for backward compatibility.  The main shortcut has been changed so it's Linux-friendly, where the old shortcut is typically eaten by the window manager. -->              <menu_item_check                 label="Show Advanced Menu - legacy shortcut" diff --git a/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml index e70abc0975..93cafd4a53 100644 --- a/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml @@ -58,7 +58,7 @@               label="Call"               name="call_btn"               width="130" -             top="5" /> +             top="0" />          </layout_panel>          <layout_panel           auto_resize="false" @@ -75,7 +75,7 @@               height="20"               label="Leave Call"               name="end_call_btn" -             top="5"/> +             top="0"/>          </layout_panel>          <layout_panel           auto_resize="false" @@ -92,7 +92,7 @@               height="20"               label="Voice Controls"               name="voice_ctrls_btn" -             top="5" +             top="0"               use_ellipses="true" />          </layout_panel>      </layout_stack> diff --git a/indra/newview/skins/default/xui/es/floater_buy_land.xml b/indra/newview/skins/default/xui/es/floater_buy_land.xml index 9d33b69de9..005fe90318 100644 --- a/indra/newview/skins/default/xui/es/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/es/floater_buy_land.xml @@ -160,7 +160,7 @@ para cubrir esta parcela.  		Podrá o no unirse o dividirse.  	</text>  	<text name="covenant_text"> -		Debes aceptar el Contrato del Estado: +		Debes aceptar el Contrato del estado:  	</text>  	<text left="470" name="covenant_timestamp_text"/>  	<text_editor name="covenant_editor"> diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml index 0714e7f2c6..f5cc2b9389 100644 --- a/indra/newview/skins/default/xui/es/menu_viewer.xml +++ b/indra/newview/skins/default/xui/es/menu_viewer.xml @@ -140,6 +140,7 @@  			<menu_item_call label="Animación ([COST] L$)..." name="Upload Animation"/>  			<menu_item_call label="Modelo..." name="Upload Model"/>  			<menu_item_call label="Masivo ([COST] L$ por archivo)..." name="Bulk Upload"/> +			<menu_item_call label="Configurar los permisos por defecto de subida" name="perm prefs"/>  		</menu>  		<menu_item_call label="Deshacer" name="Undo"/>  		<menu_item_call label="Rehacer" name="Redo"/> diff --git a/indra/newview/skins/default/xui/es/panel_region_estate.xml b/indra/newview/skins/default/xui/es/panel_region_estate.xml index c51c3815d1..3d0de4f083 100644 --- a/indra/newview/skins/default/xui/es/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/es/panel_region_estate.xml @@ -10,7 +10,7 @@  		(desconocido)  	</text>  	<text name="owner_text"> -		Propietario del Estado: +		Propietario del estado:  	</text>  	<text name="estate_owner">  		(desconocido) @@ -39,7 +39,7 @@  	</string>  	<button label="?" name="abuse_email_address_help"/>  	<button label="Aplicar" name="apply_btn"/> -	<button label="Expulsar a un Residente del Estado..." name="kick_user_from_estate_btn"/> +	<button label="Expulsar a un Residente del estado..." name="kick_user_from_estate_btn"/>  	<button label="Enviar un mensaje al estado..." name="message_estate_btn"/>  	<text name="estate_manager_label">  		Administradores del estado: diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml index e2cb1f999d..d3b48639e0 100644 --- a/indra/newview/skins/default/xui/fr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml @@ -140,6 +140,7 @@  			<menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>  			<menu_item_call label="Modèle..." name="Upload Model"/>  			<menu_item_call label="Lot ([COST] L$ par fichier)..." name="Bulk Upload"/> +			<menu_item_call label="Définir les droits de chargement par défaut" name="perm prefs"/>  		</menu>  		<menu_item_call label="Annuler" name="Undo"/>  		<menu_item_call label="Refaire" name="Redo"/> diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml index 815f6f58ed..8792a0fc19 100644 --- a/indra/newview/skins/default/xui/it/menu_viewer.xml +++ b/indra/newview/skins/default/xui/it/menu_viewer.xml @@ -140,6 +140,7 @@  			<menu_item_call label="Animazione ([COST] L$)..." name="Upload Animation"/>  			<menu_item_call label="Modella..." name="Upload Model"/>  			<menu_item_call label="In blocco ([COST] L$ per file)..." name="Bulk Upload"/> +			<menu_item_call label="Definisci diritti di caricamento predefiniti" name="perm prefs"/>  		</menu>  		<menu_item_call label="Annulla" name="Undo"/>  		<menu_item_call label="Ripeti" name="Redo"/> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index b9dbb81c0a..125e9bb226 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -140,6 +140,7 @@  			<menu_item_call label="アニメーション(L$[COST])..." name="Upload Animation"/>  			<menu_item_call label="モデル" name="Upload Model"/>  			<menu_item_call label="一括 (ファイルにつきL$[COST])..." name="Bulk Upload"/> +			<menu_item_call label="デフォルトのアップロード権限を設定" name="perm prefs"/>  		</menu>  		<menu_item_call label="元に戻す" name="Undo"/>  		<menu_item_call label="やり直し" name="Redo"/> diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml index fe4662c5a2..c072ea9b5a 100644 --- a/indra/newview/skins/default/xui/pl/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml @@ -119,6 +119,7 @@  			<menu_item_call label="dźwięk (L$[COST])..." name="Upload Sound"/>  			<menu_item_call label="animację (L$[COST])..." name="Upload Animation"/>  			<menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/> +			<menu_item_call label="Ustaw domyślne pozwolenia ładowania" name="perm prefs"/>  		</menu>  		<menu_item_call label="Cofnij" name="Undo"/>  		<menu_item_call label="Ponów" name="Redo"/> diff --git a/indra/newview/skins/default/xui/pt/inspect_avatar.xml b/indra/newview/skins/default/xui/pt/inspect_avatar.xml index a199c58c15..19244d9b27 100644 --- a/indra/newview/skins/default/xui/pt/inspect_avatar.xml +++ b/indra/newview/skins/default/xui/pt/inspect_avatar.xml @@ -5,10 +5,10 @@  -->  <floater name="inspect_avatar">  	<string name="Subtitle"> -		[IDADE] +		[AGE]  	</string>  	<string name="Details"> -		[PERFIL_SL] +		[SL_PROFILE]  	</string>  	<text name="user_details">  		This is my second life description and I really think it is great. But for some reason my description is super extra long because I like to talk a whole lot diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml index 9b5711d402..5ff2d49ac1 100644 --- a/indra/newview/skins/default/xui/pt/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml @@ -96,7 +96,7 @@  		</menu>  		<menu_item_call label="Link" name="Link"/>  		<menu_item_call label="Desconectar links" name="Unlink"/> -		<menu_item_check label="Edit Linked Parts" name="Edit Linked Parts"/> +		<menu_item_check label="Editar partes linkadas" name="Edit Linked Parts"/>  		<menu label="Selecionar partes conectadas" name="Select Linked Parts">  			<menu_item_call label="Selecionar próxima parte" name="Select Next Part"/>  			<menu_item_call label="Selecionar parte anterior" name="Select Previous Part"/> @@ -110,7 +110,7 @@  			<menu_item_call label="Pegar" name="Menu Object Take"/>  			<menu_item_call label="Pegar uma cópia" name="Take Copy"/>  			<menu_item_call label="Salvar no meu inventário" name="Save Object Back to My Inventory"/> -			<menu_item_call label="Save Back to Object Contents" name="Save Object Back to Object Contents"/> +			<menu_item_call label="Salvar objeto de volta aos conteúdos do objeto" name="Save Object Back to Object Contents"/>  			<menu_item_call label="Devolver objeto" name="Return Object back to Owner"/>  		</menu>  		<menu label="Scripts" name="Scripts"> @@ -140,6 +140,7 @@  			<menu_item_call label="Animação (L$[COST])..." name="Upload Animation"/>  			<menu_item_call label="Modelar..." name="Upload Model"/>  			<menu_item_call label="Volume (L$[COST] por arquivo)..." name="Bulk Upload"/> +			<menu_item_call label="Autorizações de upload padrão" name="perm prefs"/>  		</menu>  		<menu_item_call label="Desfazer" name="Undo"/>  		<menu_item_call label="Repetir" name="Redo"/> @@ -165,7 +166,7 @@  		</menu>  		<menu label="Realces e visibilidade" name="Highlighting and Visibility">  			<menu_item_check label="Efeito baliza piscando" name="Cheesy Beacon"/> -			<menu_item_check label="Hide Particles" name="Hide Particles"/> +			<menu_item_check label="Esconder partículas" name="Hide Particles"/>  			<menu_item_check label="Ocultar seleções" name="Hide Selected"/>  			<menu_item_check label="Realçar transparentes" name="Highlight Transparent"/>  			<menu_item_check label="Mostrar anexos HUD" name="Show HUD Attachments"/> @@ -183,7 +184,7 @@  			<menu_item_check label="Volume" name="Volume"/>  			<menu_item_check label="Grama" name="Grass"/>  			<menu_item_check label="Nuvens" name="Clouds"/> -			<menu_item_check label="Particles" name="Particles"/> +			<menu_item_check label="Partículas" name="Particles"/>  			<menu_item_check label="Elevação" name="Bump"/>  		</menu>  		<menu label="Recursos de renderização" name="Rendering Features"> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index 4535c7aaeb..6b4835e819 100644 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -3886,16 +3886,16 @@ If you continue to receive this message, contact the [SUPPORT_SITE].  		[NAME] lhe pagou L$ [AMOUNT]  	</string>  	<string name="you_paid_ldollars"> -		You pagou L$[AMOUNT] por [REASON] a [NAME]. +		Você pagou L$[AMOUNT] por [REASON] a [NAME].  	</string>  	<string name="you_paid_ldollars_no_info">  		Você acaba de pagar L$[AMOUNT].  	</string>  	<string name="you_paid_ldollars_no_reason"> -		You pagou L$[AMOUNT] a [NAME]. +		Você pagou L$[AMOUNT] a [NAME].  	</string>  	<string name="you_paid_ldollars_no_name"> -		You pagou L$[AMOUNT] por [REASON]. +		Você pagou L$[AMOUNT] por [REASON].  	</string>  	<string name="for item">  		por [ITEM]  | 
