diff options
Diffstat (limited to 'indra')
26 files changed, 216 insertions, 51 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 0bed37b96a..2a0e23b1dc 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2688,6 +2688,17 @@        <key>Value</key>        <integer>0</integer>      </map> +    <key>DoubleClickTeleport</key> +    <map> +      <key>Comment</key> +      <string>Enable double-click to teleport where allowed</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>0</integer> +    </map>      <key>DragAndDropToolTipDelay</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index fe7e883d83..b202cb5098 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -167,6 +167,7 @@ LLAgent::LLAgent() :  	mbAlwaysRun(false),  	mbRunning(false), +	mbTeleportKeepsLookAt(false),  	mAgentAccess(gSavedSettings),  	mTeleportState( TELEPORT_NONE ), @@ -3249,7 +3250,11 @@ bool LLAgent::teleportCore(bool is_local)  	// local logic  	LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TELEPORT_COUNT); -	if (!is_local) +	if (is_local) +	{ +		gAgent.setTeleportState( LLAgent::TELEPORT_LOCAL ); +	} +	else  	{  		gTeleportDisplay = TRUE;  		gAgent.setTeleportState( LLAgent::TELEPORT_START ); @@ -3268,13 +3273,15 @@ bool LLAgent::teleportCore(bool is_local)  void LLAgent::teleportRequest(  	const U64& region_handle, -	const LLVector3& pos_local) +	const LLVector3& pos_local, +	bool look_at_from_camera)  {  	LLViewerRegion* regionp = getRegion(); -	if(regionp && teleportCore()) +	bool is_local = (region_handle == to_region_handle(getPositionGlobal())); +	if(regionp && teleportCore(is_local))  	{ -		llinfos << "TeleportRequest: '" << region_handle << "':" << pos_local -				<< llendl; +		LL_INFOS("") << "TeleportLocationRequest: '" << region_handle << "':" +					 << pos_local << LL_ENDL;  		LLMessageSystem* msg = gMessageSystem;  		msg->newMessage("TeleportLocationRequest");  		msg->nextBlockFast(_PREHASH_AgentData); @@ -3284,6 +3291,10 @@ void LLAgent::teleportRequest(  		msg->addU64("RegionHandle", region_handle);  		msg->addVector3("Position", pos_local);  		LLVector3 look_at(0,1,0); +		if (look_at_from_camera) +		{ +			look_at = LLViewerCamera::getInstance()->getAtAxis(); +		}  		msg->addVector3("LookAt", look_at);  		sendReliableMessage();  	} @@ -3395,6 +3406,16 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global)  	}  } +// Teleport to global position, but keep facing in the same direction  +void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global) +{ +	mbTeleportKeepsLookAt = true; +	gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE);	// detach camera form avatar, so it keeps direction +	U64 region_handle = to_region_handle(pos_global); +	LLVector3 pos_local = (LLVector3)(pos_global - from_region_handle(region_handle)); +	teleportRequest(region_handle, pos_local, getTeleportKeepsLookAt()); +} +  void LLAgent::setTeleportState(ETeleportState state)  {  	mTeleportState = state; @@ -3402,18 +3423,28 @@ void LLAgent::setTeleportState(ETeleportState state)  	{  		LLFloaterReg::hideInstance("snapshot");  	} -	if (mTeleportState == TELEPORT_MOVING) -	{ -		// We're outa here. Save "back" slurl. -		LLAgentUI::buildSLURL(mTeleportSourceSLURL); -	} -	else if(mTeleportState == TELEPORT_ARRIVING) + +	switch (mTeleportState)  	{ -		// First two position updates after a teleport tend to be weird -		LLViewerStats::getInstance()->mAgentPositionSnaps.mCountOfNextUpdatesToIgnore = 2; +		case TELEPORT_NONE: +			mbTeleportKeepsLookAt = false; +			break; + +		case TELEPORT_MOVING: +			// We're outa here. Save "back" slurl. +			LLAgentUI::buildSLURL(mTeleportSourceSLURL); +			break; -		// Let the interested parties know we've teleported. -		LLViewerParcelMgr::getInstance()->onTeleportFinished(false, getPositionGlobal()); +		case TELEPORT_ARRIVING: +			// First two position updates after a teleport tend to be weird +			LLViewerStats::getInstance()->mAgentPositionSnaps.mCountOfNextUpdatesToIgnore = 2; +			 +			// Let the interested parties know we've teleported. +			LLViewerParcelMgr::getInstance()->onTeleportFinished(false, getPositionGlobal()); +			break; + +		default: +			break;  	}  } diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index c643cef78f..30685461b9 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -339,6 +339,7 @@ public:  private:  	bool 			mbAlwaysRun; 			// Should the avatar run by default rather than walk?  	bool 			mbRunning;				// Is the avatar trying to run right now? +	bool			mbTeleportKeepsLookAt;	// Try to keep look-at after teleport is complete  	//--------------------------------------------------------------------  	// Sit and stand @@ -506,7 +507,8 @@ public:  		TELEPORT_REQUESTED = 2,		// Waiting for source simulator to respond  		TELEPORT_MOVING = 3,		// Viewer has received destination location from source simulator  		TELEPORT_START_ARRIVAL = 4,	// Transition to ARRIVING.  Viewer has received avatar update, etc., from destination simulator -		TELEPORT_ARRIVING = 5		// Make the user wait while content "pre-caches" +		TELEPORT_ARRIVING = 5,		// Make the user wait while content "pre-caches" +		TELEPORT_LOCAL = 6			// Teleporting in-sim without showing the progress screen  	};  public: @@ -524,12 +526,15 @@ private:  	//--------------------------------------------------------------------  public:  	void 			teleportRequest(const U64& region_handle, -									const LLVector3& pos_local);			// Go to a named location home +									const LLVector3& pos_local,				// Go to a named location home +									bool look_at_from_camera = false);  	void 			teleportViaLandmark(const LLUUID& landmark_id);			// Teleport to a landmark  	void 			teleportHome()	{ teleportViaLandmark(LLUUID::null); }	// Go home  	void 			teleportViaLure(const LLUUID& lure_id, BOOL godlike);	// To an invited location  	void 			teleportViaLocation(const LLVector3d& pos_global);		// To a global location - this will probably need to be deprecated +	void			teleportViaLocationLookAt(const LLVector3d& pos_global);// To a global location, preserving camera rotation  	void 			teleportCancel();										// May or may not be allowed by server +	bool			getTeleportKeepsLookAt() { return mbTeleportKeepsLookAt; } // Whether look-at reset after teleport  protected:  	bool 			teleportCore(bool is_local = false); 					// Stuff for all teleports; returns true if the teleport can proceed diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp index 7d82ec3a71..d251931eca 100644 --- a/indra/newview/llchatbar.cpp +++ b/indra/newview/llchatbar.cpp @@ -126,7 +126,7 @@ BOOL LLChatBar::postBuild()  	mInputEditor->setPassDelete(TRUE);  	mInputEditor->setReplaceNewlinesWithSpaces(FALSE); -	mInputEditor->setMaxTextLength(1023); +	mInputEditor->setMaxTextLength(DB_CHAT_MSG_STR_LEN);  	mInputEditor->setEnableLineHistory(TRUE);  	mIsBuilt = TRUE; @@ -569,8 +569,12 @@ void LLChatBar::sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL  	S32 channel = 0;  	LLWString out_text = stripChannelNumber(wtext, &channel);  	std::string utf8_out_text = wstring_to_utf8str(out_text); -	std::string utf8_text = wstring_to_utf8str(wtext); +	if (!utf8_out_text.empty()) +	{ +		utf8_out_text = utf8str_truncate(utf8_out_text, MAX_MSG_STR_LEN); +	} +	std::string utf8_text = wstring_to_utf8str(wtext);  	utf8_text = utf8str_trim(utf8_text);  	if (!utf8_text.empty())  	{ diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp index f0c2469977..5e10f60aba 100644 --- a/indra/newview/llexpandabletextbox.cpp +++ b/indra/newview/llexpandabletextbox.cpp @@ -121,7 +121,6 @@ LLExpandableTextBox::LLTextBoxEx::LLTextBoxEx(const Params& p)  void LLExpandableTextBox::LLTextBoxEx::reshape(S32 width, S32 height, BOOL called_from_parent)  { -	hideExpandText();  	LLTextEditor::reshape(width, height, called_from_parent);  	if (getTextPixelHeight() > getRect().getHeight()) diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index 5f7d1a2ffa..b3b0c93b99 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -168,7 +168,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& session_label,  	LLUICtrlFactory::getInstance()->buildFloater(this, xml_filename, NULL);  	setTitle(mSessionLabel); -	mInputEditor->setMaxTextLength(1023); +	mInputEditor->setMaxTextLength(DB_IM_MSG_STR_LEN);  	// enable line history support for instant message bar  	mInputEditor->setEnableLineHistory(TRUE); diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index d8be70e546..864de018e0 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -619,6 +619,25 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)  			return TRUE;  		}  	} +	else if (gSavedSettings.getBOOL("DoubleClickTeleport")) +	{ +		LLViewerObject* objp = mPick.getObject(); +		LLViewerObject* parentp = objp ? objp->getRootEdit() : NULL; + +		bool is_in_world = mPick.mObjectID.notNull() && objp && !objp->isHUDAttachment(); +		bool is_land = mPick.mPickType == LLPickInfo::PICK_LAND; +		bool pos_non_zero = !mPick.mPosGlobal.isExactlyZero(); +		bool has_touch_handler = (objp && objp->flagHandleTouch()) || (parentp && parentp->flagHandleTouch()); +		bool has_click_action = final_click_action(objp); + +		if (pos_non_zero && (is_land || (is_in_world && !has_touch_handler && !has_click_action))) +		{ +			LLVector3d pos = mPick.mPosGlobal; +			pos.mdV[VZ] += gAgentAvatarp->getPelvisToFoot(); +			gAgent.teleportViaLocationLookAt(pos); +			return TRUE; +		} +	}  	return FALSE;  } diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index d0ad918c58..916cbe2267 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -85,6 +85,7 @@ LLPointer<LLViewerTexture> gDisconnectedImagep = NULL;  // used to toggle renderer back on after teleport  const F32 TELEPORT_RENDER_DELAY = 20.f; // Max time a teleport is allowed to take before we raise the curtain  const F32 TELEPORT_ARRIVAL_DELAY = 2.f; // Time to preload the world before raising the curtain after we've actually already arrived. +const F32 TELEPORT_LOCAL_DELAY = 1.0f;  // Delay to prevent teleports after starting an in-sim teleport.  BOOL		 gTeleportDisplay = FALSE;  LLFrameTimer gTeleportDisplayTimer;  LLFrameTimer gTeleportArrivalTimer; @@ -406,6 +407,18 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)  			}  			break; +		case LLAgent::TELEPORT_LOCAL: +			// Short delay when teleporting in the same sim (progress screen active but not shown - did not +			// fall-through from TELEPORT_START) +			{ +				if( gTeleportDisplayTimer.getElapsedTimeF32() > TELEPORT_LOCAL_DELAY ) +				{ +					//LLFirstUse::useTeleport(); +					gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); +				} +			} +			break; +  		case LLAgent::TELEPORT_NONE:  			// No teleport in progress  			gViewerWindow->setShowProgress(FALSE); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index daeace0ec5..f62223a38d 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6573,6 +6573,16 @@ class LLToggleControl : public view_listener_t  		std::string control_name = userdata.asString();  		BOOL checked = gSavedSettings.getBOOL( control_name );  		gSavedSettings.setBOOL( control_name, !checked ); + +        // Doubleclick actions - there can be only one +        if ((control_name == "DoubleClickAutoPilot") && !checked) +        { +			gSavedSettings.setBOOL( "DoubleClickTeleport", FALSE ); +        } +        else if ((control_name == "DoubleClickTeleport") && !checked) +        { +			gSavedSettings.setBOOL( "DoubleClickAutoPilot", FALSE ); +        }  		return true;  	}  }; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 6d0cbbf8f2..c35173a7d4 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -82,6 +82,7 @@  #include "lluri.h"  #include "llviewergenericmessage.h"  #include "llviewermenu.h" +#include "llviewerjoystick.h"  #include "llviewerobjectlist.h"  #include "llviewerparcelmgr.h"  #include "llviewerstats.h" @@ -3189,6 +3190,8 @@ void process_teleport_start(LLMessageSystem *msg, void**)  	U32 teleport_flags = 0x0;  	msg->getU32("Info", "TeleportFlags", teleport_flags); +	LL_DEBUGS("Messaging") << "Got TeleportStart with TeleportFlags=" << teleport_flags << ". gTeleportDisplay: " << gTeleportDisplay << ", gAgent.mTeleportState: " << gAgent.getTeleportState() << LL_ENDL; +  	if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL)  	{  		gViewerWindow->setProgressCancelButtonVisible(FALSE); @@ -3207,6 +3210,7 @@ void process_teleport_start(LLMessageSystem *msg, void**)  		gAgent.setTeleportState( LLAgent::TELEPORT_START );  		make_ui_sound("UISndTeleportOut"); +		LL_INFOS("Messaging") << "Teleport initiated by remote TeleportStart message with TeleportFlags: " <<  teleport_flags << LL_ENDL;  		// Don't call LLFirstUse::useTeleport here because this could be  		// due to being killed, which would send you home, not to a Telehub  	} @@ -3548,6 +3552,12 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)  	if( is_teleport )  	{ +		if (gAgent.getTeleportKeepsLookAt()) +		{ +			// *NOTE: the LookAt data we get from the sim here doesn't +			// seem to be useful, so get it from the camera instead +			look_at = LLViewerCamera::getInstance()->getAtAxis(); +		}  		// Force the camera back onto the agent, don't animate.  		gAgentCamera.setFocusOnAvatar(TRUE, FALSE);  		gAgentCamera.slamLookAt(look_at); @@ -3594,7 +3604,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)  		{  			LLTracker::stopTracking(NULL);  		} -		else if ( is_teleport ) +		else if ( is_teleport && !gAgent.getTeleportKeepsLookAt() )  		{  			//look at the beacon  			LLVector3 global_agent_pos = agent_pos; @@ -5866,7 +5876,18 @@ void process_teleport_local(LLMessageSystem *msg,void**)  	if( gAgent.getTeleportState() != LLAgent::TELEPORT_NONE )  	{ -		gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); +		if( gAgent.getTeleportState() == LLAgent::TELEPORT_LOCAL ) +		{ +			// To prevent TeleportStart messages re-activating the progress screen right +			// after tp, keep the teleport state and let progress screen clear it after a short delay +			// (progress screen is active but not visible)  *TODO: remove when SVC-5290 is fixed +			gTeleportDisplayTimer.reset(); +			gTeleportDisplay = TRUE; +		} +		else +		{ +			gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); +		}  	}  	// Sim tells us whether the new position is off the ground @@ -5882,8 +5903,10 @@ void process_teleport_local(LLMessageSystem *msg,void**)  	gAgent.setPositionAgent(pos);  	gAgentCamera.slamLookAt(look_at); -	// likewise make sure the camera is behind the avatar -	gAgentCamera.resetView(TRUE, TRUE); +	if ( !(gAgent.getTeleportKeepsLookAt() && LLViewerJoystick::getInstance()->getOverrideCamera()) ) +	{ +		gAgentCamera.resetView(TRUE, TRUE); +	}  	// send camera update to new region  	gAgentCamera.updateCamera(); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index cab6fbdc93..46d8f65d23 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -176,7 +176,7 @@ const F32 TIME_BEFORE_MESH_CLEANUP = 5.f; // seconds  const S32 AVATAR_RELEASE_THRESHOLD = 10; // number of avatar instances before releasing memory  const F32 FOOT_GROUND_COLLISION_TOLERANCE = 0.25f;  const F32 AVATAR_LOD_TWEAK_RANGE = 0.7f; -const S32 MAX_BUBBLE_CHAT_LENGTH = 1023; +const S32 MAX_BUBBLE_CHAT_LENGTH = DB_CHAT_MSG_STR_LEN;  const S32 MAX_BUBBLE_CHAT_UTTERANCES = 12;  const F32 CHAT_FADE_TIME = 8.0;  const F32 BUBBLE_CHAT_TIME = CHAT_FADE_TIME * 3.f; diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 2e003dd2b8..e674fec053 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -386,7 +386,7 @@ LLVivoxVoiceClient::~LLVivoxVoiceClient()  {  } -//---------------------------------------------- +//---------------------------------------------------  void LLVivoxVoiceClient::init(LLPumpIO *pump)  { @@ -400,7 +400,8 @@ void LLVivoxVoiceClient::terminate()  	{  		logout();  		connectorShutdown(); -		closeSocket();		// Need to do this now -- bad things happen if the destructor does it later.	 +		closeSocket();		// Need to do this now -- bad things happen if the destructor does it later. +		cleanUp();  	}  	else  	{ @@ -408,6 +409,18 @@ void LLVivoxVoiceClient::terminate()  	}  } +//--------------------------------------------------- + +void LLVivoxVoiceClient::cleanUp() +{ +	deleteAllSessions(); +	deleteAllBuddies(); +	deleteAllVoiceFonts(); +	deleteVoiceFontTemplates(); +} + +//--------------------------------------------------- +  const LLVoiceVersionInfo& LLVivoxVoiceClient::getVersion()  {  	return mVoiceVersion; @@ -776,14 +789,10 @@ void LLVivoxVoiceClient::stateMachine()  	{  		//MARK: stateDisableCleanup  		case stateDisableCleanup: -			// Clean up and reset everything.  +			// Clean up and reset everything.  			closeSocket(); -			deleteAllSessions(); -			deleteAllBuddies(); -			deleteAllVoiceFonts(); -			deleteVoiceFontTemplates(); +			cleanUp(); -			mConnectorHandle.clear();  			mAccountHandle.clear();  			mAccountPassword.clear();  			mVoiceAccountServerURI.clear(); @@ -1675,12 +1684,9 @@ void LLVivoxVoiceClient::stateMachine()  		//MARK: stateLoggedOut  		case stateLoggedOut:			// logout response received -			// Once we're logged out, all these things are invalid. +			// Once we're logged out, these things are invalid.  			mAccountHandle.clear(); -			deleteAllSessions(); -			deleteAllBuddies(); -			deleteAllVoiceFonts(); -			deleteVoiceFontTemplates(); +			cleanUp();  			if(mVoiceEnabled && !mRelogRequested)  			{ @@ -1778,6 +1784,8 @@ void LLVivoxVoiceClient::closeSocket(void)  {  	mSocket.reset();  	mConnected = false;	 +	mConnectorHandle.clear(); +	mAccountHandle.clear();  }  void LLVivoxVoiceClient::loginSendMessage() @@ -2370,8 +2378,7 @@ void LLVivoxVoiceClient::giveUp()  {  	// All has failed.  Clean up and stop trying.  	closeSocket(); -	deleteAllSessions(); -	deleteAllBuddies(); +	cleanUp();  	setState(stateJail);  } diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index d10a562616..08f2f75a39 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -668,7 +668,10 @@ protected:  private:  	LLVoiceVersionInfo mVoiceVersion; -		 + +	/// Clean up objects created during a voice session. +	void cleanUp(); +  	state mState;  	bool mSessionTerminateRequested;  	bool mRelogRequested; diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h index 0ac6b9117b..6b3e7873a1 100644 --- a/indra/newview/llvosky.h +++ b/indra/newview/llvosky.h @@ -139,10 +139,10 @@ protected:  	~LLSkyTex(); -	static S32 getResolution()						{ return sResolution; } +	static S32 getResolution()					{ return sResolution; }  	static S32 getCurrent()						{ return sCurrent; } -	static S32 stepCurrent()					{ return (sCurrent = (sCurrent + 1) % 2); } -	static S32 getNext()						{ return ((sCurrent+1) % 2); } +	static S32 stepCurrent()					{ sCurrent++; sCurrent &= 1; return sCurrent; } +	static S32 getNext()						{ return ((sCurrent+1) & 1); }  	static S32 getWhich(const BOOL curr)		{ return curr ? sCurrent : getNext(); }  	void initEmpty(const S32 tex); diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml index 3152661fd4..712f6f8b50 100644 --- a/indra/newview/skins/default/xui/da/strings.xml +++ b/indra/newview/skins/default/xui/da/strings.xml @@ -1117,6 +1117,9 @@  	<string name="InvFolder Favorite">  		Favoritter  	</string> +	<string name="InvFolder favorite"> +		Favoritter +	</string>  	<string name="InvFolder Current Outfit">  		Nuværende sæt  	</string> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index bf7d2ef3b3..1adc4e3db1 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -1147,6 +1147,9 @@  	<string name="InvFolder Favorite">  		Favoriten  	</string> +	<string name="InvFolder favorite"> +		Favoriten +	</string>  	<string name="InvFolder Current Outfit">  		Aktuelles Outfit  	</string> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index c79a484ef6..19707c1bc9 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1669,8 +1669,8 @@              </menu_item_call>              <menu_item_separator               visible="false"/> -            <!-- Made invisible to avoid a dissonance: menu item toggle menu where it is located. EXT-8069. -              Can't be removed to keep sortcut workable. +            <!-- Made invisible to avoid a dissonance: menu item toggles the menu where it is located. EXT-8069. +              Can't be removed, to keep shortcut workable.              -->              <menu_item_check               label="Show Advanced Menu" @@ -2629,8 +2629,8 @@                   function="Advanced.PrintTextureMemoryStats" />              </menu_item_call>              <menu_item_check -             label="Double-ClickAuto-Pilot" -             name="Double-ClickAuto-Pilot"> +             label="Double-Click Auto-Pilot" +             name="Double-Click Auto-Pilot">                  <menu_item_check.on_check                   function="CheckControl"                   parameter="DoubleClickAutoPilot" /> @@ -2638,6 +2638,16 @@                   function="ToggleControl"                   parameter="DoubleClickAutoPilot" />              </menu_item_check> +            <menu_item_check +             label="Double-Click Teleport" +             name="DoubleClick Teleport"> +                <menu_item_check.on_check +                 function="CheckControl" +                 parameter="DoubleClickTeleport" /> +                <menu_item_check.on_click +                 function="ToggleControl" +                 parameter="DoubleClickTeleport" /> +            </menu_item_check>              <menu_item_separator /> diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml index 8715a3a7a8..903dcd4c24 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml @@ -320,7 +320,7 @@           left="10"           name="partner_edit_link"           value="[[URL] Edit]" -         width="50" /> +         width="70" />      </panel>      </panel>      </scroll_container> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 72639f08ee..3fa5c7afec 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2225,7 +2225,7 @@ Clears (deletes) the media and all params from the given face.    <!-- panel picks -->    <string name="NoPicksClassifiedsText">You haven't created any Picks or Classifieds. Click the Plus button below to create a Pick or Classified.</string> -  <string name="NoAvatarPicksClassifiedsText">User has no picks or classfields</string> +  <string name="NoAvatarPicksClassifiedsText">User has no picks or classifieds</string>    <string name="PicksClassifiedsLoadingText">Loading...</string>  	<!-- Multi Preview Floater --> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index 9f5f1f99e7..971b725d39 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -1120,6 +1120,9 @@  	<string name="InvFolder Favorite">  		Favoritos  	</string> +	<string name="InvFolder favorite"> +		Favoritos +	</string>  	<string name="InvFolder Current Outfit">  		Vestuario actual  	</string> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index f221e42e9a..159281f97f 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -1147,6 +1147,9 @@  	<string name="InvFolder Favorite">  		Favoris  	</string> +	<string name="InvFolder favorite"> +		Favoris +	</string>  	<string name="InvFolder Current Outfit">  		Tenue actuelle  	</string> diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index fb479b4653..fa465ee9c2 100644 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -1126,6 +1126,9 @@  	<string name="InvFolder Favorite">  		Preferiti  	</string> +	<string name="InvFolder favorite"> +		Preferiti +	</string>  	<string name="InvFolder Current Outfit">  		Abbigliamento attuale  	</string> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index b68b68a4f8..dd59065a9d 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -1147,6 +1147,9 @@  	<string name="InvFolder Favorite">  		お気に入り  	</string> +	<string name="InvFolder favorite"> +		お気に入り +	</string>  	<string name="InvFolder Current Outfit">  		着用中のアウトフィット  	</string> diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml index 25071b5460..1ee26c3f24 100644 --- a/indra/newview/skins/default/xui/nl/strings.xml +++ b/indra/newview/skins/default/xui/nl/strings.xml @@ -912,6 +912,9 @@  	<string name="InvFolder Favorite">  		Favoriten  	</string> +	<string name="InvFolder favorite"> +		Favoriten +	</string>  	<string name="InvFolder Current Outfit">  		Huidige Uitrusting  	</string> diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml index e2689720bf..f90e357373 100644 --- a/indra/newview/skins/default/xui/pl/strings.xml +++ b/indra/newview/skins/default/xui/pl/strings.xml @@ -1114,6 +1114,12 @@  	<string name="InvFolder Gestures">  		Gesturki  	</string> +	<string name="InvFolder Favorite"> +		Ulubione +	</string> +	<string name="InvFolder favorite"> +		Ulubione +	</string>  	<string name="InvFolder Current Outfit">  		Obecny strój  	</string> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index 4bf2bda248..b6ecc9347b 100644 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -1120,6 +1120,9 @@  	<string name="InvFolder Favorite">  		Favoritos  	</string> +	<string name="InvFolder favorite"> +		Favoritos +	</string>  	<string name="InvFolder Current Outfit">  		Look atual  	</string> | 
