diff options
| author | William Todd Stinson <stinson@lindenlab.com> | 2012-12-14 17:49:25 -0800 | 
|---|---|---|
| committer | William Todd Stinson <stinson@lindenlab.com> | 2012-12-14 17:49:25 -0800 | 
| commit | e8bff548ff7374c263c2bc38a337e8841bc2761f (patch) | |
| tree | 7f2e6705d79a504925fc7c3e799cd81d85ee4240 /indra | |
| parent | fa822a2ae50f8d070da19c64b3b3c03643d7c8b2 (diff) | |
| parent | ba8d9afe17a5eb75b7c89b6a1400e412bb473379 (diff) | |
Pull and merge from ssh://stinson@hg.lindenlab.com/richard/viewer-chui.
Diffstat (limited to 'indra')
28 files changed, 635 insertions, 191 deletions
diff --git a/indra/llcommon/llavatarname.h b/indra/llcommon/llavatarname.h index 2f8c534974..4827353018 100644 --- a/indra/llcommon/llavatarname.h +++ b/indra/llcommon/llavatarname.h @@ -74,6 +74,9 @@ public:  	// Also used for backwards compatibility with systems like voice and muting  	std::string getUserName() const; +	// Returns "james.linden" or the legacy name for very old names +	std::string getAccountName() const { return mUsername; } +  	// Debug print of the object  	void dump() const; diff --git a/indra/llui/llfolderview.h b/indra/llui/llfolderview.h index 525efe425a..d4a1434c73 100644 --- a/indra/llui/llfolderview.h +++ b/indra/llui/llfolderview.h @@ -341,16 +341,28 @@ public:  	virtual void doItem(LLFolderViewItem* item) = 0;  }; +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLSelectFirstFilteredItem +// +// This will select the first *item* found in the hierarchy. If no item can be +// selected, the first matching folder will. +// Since doFolder() is done first but we prioritize item selection, we let the  +// first filtered folder set the selection and raise a folder flag. +// The selection might be overridden by the first filtered item in doItem()   +// which checks an item flag. Since doFolder() checks the item flag too, the first +// item will still be selected if items were to be done first and folders second. +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  class LLSelectFirstFilteredItem : public LLFolderViewFunctor  {  public: -	LLSelectFirstFilteredItem() : mItemSelected(FALSE) {} +	LLSelectFirstFilteredItem() : mItemSelected(FALSE), mFolderSelected(FALSE) {}  	virtual ~LLSelectFirstFilteredItem() {}  	virtual void doFolder(LLFolderViewFolder* folder);  	virtual void doItem(LLFolderViewItem* item); -	BOOL wasItemSelected() { return mItemSelected; } +	BOOL wasItemSelected() { return mItemSelected || mFolderSelected; }  protected:  	BOOL mItemSelected; +	BOOL mFolderSelected;  };  class LLOpenFilteredFolders : public LLFolderViewFunctor diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 7ed7042aff..2bd2294ea2 100644 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -580,6 +580,15 @@ BOOL LLScrollListCtrl::addItem( LLScrollListItem* item, EAddPosition pos, BOOL r  			addColumn(col_params);  		} +		S32 num_cols = item->getNumColumns(); +		S32 i = 0; +		for (LLScrollListCell* cell = item->getColumn(i); i < num_cols; cell = item->getColumn(++i)) +		{ +			if (i >= (S32)mColumnsIndexed.size()) break; + +			cell->setWidth(mColumnsIndexed[i]->getWidth()); +		} +  		updateLineHeightInsert(item);  		updateLayout(); diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index e877e15053..4030324ecb 100644 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -97,6 +97,9 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0 @@ -126,13 +129,16 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// Mid Graphics Settings +// Medium Low Graphics Settings  // -list Mid +list LowMid  RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0.5 @@ -153,11 +159,74 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// High Graphics Settings (purty) +// Medium Graphics Settings (standard) +// +list Mid +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// Medium High Graphics Settings (deferred enabled) +// +list MidHigh +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Graphics Settings (deferred + SSAO)  //  list High  RenderAnisotropic			1	1 @@ -180,9 +249,43 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Ultra Graphics Settings (deferred + SSAO + shadows) +// +list HighUltra +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	2  WLSkyDetail					1	48  RenderFSAASamples			1	2 +  //  // Ultra graphics (REALLY PURTY!)  // @@ -227,57 +330,36 @@ RenderDeferredSSAO			1	0  //  list Class0  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  //  // Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  // -// Class 3 Hardware (deferred enabled) +// Class 3 Hardware  //  list Class3  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	0  // -// Class 4 Hardware (deferred + SSAO) +// Class 4 Hardware  //  list Class4  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1  // -// Class 5 Hardware (deferred + SSAO + shadows) +// Class 5 Hardware  //  list Class5  RenderVBOEnable				1	1 -RenderShadowDetail			1	2 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1 -  //  // VRAM > 512MB diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt index 5699bd9c8a..6d5284c602 100644 --- a/indra/newview/featuretable_linux.txt +++ b/indra/newview/featuretable_linux.txt @@ -94,6 +94,9 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0 @@ -122,13 +125,16 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// Mid Graphics Settings +// Medium Low Graphics Settings  // -list Mid +list LowMid  RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0.5 @@ -137,9 +143,9 @@ RenderAvatarVP				1	1  RenderFarClip				1	96  RenderFlexTimeFactor		1	1.0  RenderGlowResolutionPow		1	8 -RenderLocalLights			1	1  RenderMaxPartCount			1	2048  RenderObjectBump			1	1 +RenderLocalLights			1	1  RenderReflectionDetail		1	0  RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	1.0 @@ -149,11 +155,74 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// High Graphics Settings (purty) +// Medium Graphics Settings (standard) +// +list Mid +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// Medium High Graphics Settings (deferred enabled) +// +list MidHigh +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Graphics Settings (deferred + SSAO)  //  list High  RenderAnisotropic			1	1 @@ -164,9 +233,39 @@ RenderAvatarVP				1	1  RenderFarClip				1	128  RenderFlexTimeFactor		1	1.0  RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1  RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Ultra Graphics Settings (deferred + SSAO + shadows) +// +list HighUltra +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9  RenderMaxPartCount			1	4096  RenderObjectBump			1	1 +RenderLocalLights			1	1  RenderReflectionDetail		1	0  RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0 @@ -176,6 +275,9 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	2  WLSkyDetail					1	48  RenderFSAASamples			1	2 @@ -223,56 +325,37 @@ RenderDeferredSSAO			1	0  //  list Class0  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  //  // Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  // -// Class 3 Hardware (deferred enabled) +// Class 3 Hardware  //  list Class3  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	0  // -// Class 4 Hardware (deferred + SSAO) +// Class 4 Hardware   //  list Class4  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1  // -// Class 5 Hardware (deferred + SSAO + shadows) +// Class 5 Hardware   //  list Class5  RenderVBOEnable				1	1 -RenderShadowDetail			1	2 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1 +  //  // VRAM > 512MB  // diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index 3a91f19c58..1c0d45c11b 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -1,4 +1,4 @@ -version 34 +version 35  // The version number above should be implemented IF AND ONLY IF some  // change has been made that is sufficiently important to justify  // resetting the graphics preferences of all users to the recommended @@ -96,6 +96,9 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0 @@ -124,13 +127,16 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// Mid Graphics Settings +// Medium Low Graphics Settings  // -list Mid +list LowMid  RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0.5 @@ -139,9 +145,9 @@ RenderAvatarVP				1	1  RenderFarClip				1	96  RenderFlexTimeFactor		1	1.0  RenderGlowResolutionPow		1	8 -RenderLocalLights			1	1  RenderMaxPartCount			1	2048  RenderObjectBump			1	1 +RenderLocalLights			1	1  RenderReflectionDetail		1	0  RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	1.0 @@ -151,11 +157,74 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// High Graphics Settings (purty) +// Medium Graphics Settings (standard) +// +list Mid +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// Medium High Graphics Settings (deferred enabled) +// +list MidHigh +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Graphics Settings (deferred + SSAO)  //  list High  RenderAnisotropic			1	1 @@ -166,9 +235,39 @@ RenderAvatarVP				1	1  RenderFarClip				1	128  RenderFlexTimeFactor		1	1.0  RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1  RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Ultra Graphics Settings (deferred + SSAO + shadows) +// +list HighUltra +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9  RenderMaxPartCount			1	4096  RenderObjectBump			1	1 +RenderLocalLights			1	1  RenderReflectionDetail		1	0  RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0 @@ -178,9 +277,13 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	2  WLSkyDetail					1	48  RenderFSAASamples			1	2 +  //  // Ultra graphics (REALLY PURTY!)  // @@ -216,65 +319,41 @@ RenderFSAASamples			1	2  //  list Unknown  RenderVBOEnable				1	0 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0  //  // Class 0 Hardware (just old)  //  list Class0  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  //  // Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  // -// Class 3 Hardware (deferred enabled) +// Class 3 Hardware  //  list Class3  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	0 -  // -// Class 4 Hardware (deferred + SSAO) +// Class 4 Hardware  //  list Class4  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1  // -// Class 5 Hardware (deferred + SSAO + shadows) +// Class 5 Hardware  //  list Class5  RenderVBOEnable				1	1 -RenderShadowDetail			1	2 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1  //  // No Pixel Shaders available diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt index ad16e2533b..68e09d010e 100644 --- a/indra/newview/featuretable_xp.txt +++ b/indra/newview/featuretable_xp.txt @@ -96,6 +96,9 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0 @@ -124,13 +127,16 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// Mid Graphics Settings +// Medium Low Graphics Settings  // -list Mid +list LowMid  RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0.5 @@ -139,9 +145,9 @@ RenderAvatarVP				1	1  RenderFarClip				1	96  RenderFlexTimeFactor		1	1.0  RenderGlowResolutionPow		1	8 -RenderLocalLights			1	1  RenderMaxPartCount			1	2048  RenderObjectBump			1	1 +RenderLocalLights			1	1  RenderReflectionDetail		1	0  RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	1.0 @@ -151,11 +157,74 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0  // -// High Graphics Settings (purty) +// Medium Graphics Settings (standard) +// +list Mid +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// Medium High Graphics Settings (deferred enabled) +// +list MidHigh +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1 +RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Graphics Settings (deferred + SSAO)  //  list High  RenderAnisotropic			1	1 @@ -166,9 +235,39 @@ RenderAvatarVP				1	1  RenderFarClip				1	128  RenderFlexTimeFactor		1	1.0  RenderGlowResolutionPow		1	9 +RenderMaxPartCount			1	4096 +RenderObjectBump			1	1  RenderLocalLights			1	1 +RenderReflectionDetail		1	0 +RenderTerrainDetail			1	1 +RenderTerrainLODFactor		1	2.0 +RenderTransparentWater		1	1 +RenderTreeLODFactor			1	0.5 +RenderUseImpostors			1	1 +RenderVolumeLODFactor		1	1.125 +VertexShaderEnable			1	1 +WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	0 +WLSkyDetail					1	48 +RenderFSAASamples			1	2 + +// +// High Ultra Graphics Settings (deferred + SSAO + shadows) +// +list HighUltra +RenderAnisotropic			1	1 +RenderAvatarCloth			1	0 +RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0 +RenderAvatarVP				1	1 +RenderFarClip				1	128 +RenderFlexTimeFactor		1	1.0 +RenderGlowResolutionPow		1	9  RenderMaxPartCount			1	4096  RenderObjectBump			1	1 +RenderLocalLights			1	1  RenderReflectionDetail		1	0  RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0 @@ -178,6 +277,9 @@ RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	2  WLSkyDetail					1	48  RenderFSAASamples			1	2 @@ -216,65 +318,42 @@ RenderFSAASamples			1	2  //  list Unknown  RenderVBOEnable				1	0 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0  //  // Class 0 Hardware (just old)  //  list Class0  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  //  // Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -  // -// Class 3 Hardware (deferred enabled) +// Class 3 Hardware  //  list Class3  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	0  //  // Class 4 Hardware (deferred + SSAO)  //  list Class4  RenderVBOEnable				1	1 -RenderShadowDetail			1	0 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1  // -// Class 5 Hardware (deferred + SSAO + shadows) +// Class 5 Hardware  //  list Class5  RenderVBOEnable				1	1 -RenderShadowDetail			1	2 -RenderDeferred				1	1 -RenderDeferredSSAO			1	1  //  // VRAM > 512MB diff --git a/indra/newview/llautoreplace.cpp b/indra/newview/llautoreplace.cpp index 0f1ce2bcd0..d71cf290d6 100644 --- a/indra/newview/llautoreplace.cpp +++ b/indra/newview/llautoreplace.cpp @@ -536,6 +536,46 @@ LLAutoReplaceSettings::AddListResult LLAutoReplaceSettings::addList(const LLSD&  	return result;  } +LLAutoReplaceSettings::AddListResult LLAutoReplaceSettings::replaceList(const LLSD& newList) +{ +	AddListResult result = AddListInvalidList; +	if ( listIsValid( newList ) ) +	{ +		std::string listName = newList[AUTOREPLACE_LIST_NAME].asString(); +		bool listFound = false; +		S32 search_index; +		LLSD targetList; +		// The following is working around the fact that LLSD arrays containing maps also seem to have undefined entries... see LLSD-30 +		for ( search_index = 0, targetList = mLists[0]; +			  !listFound && search_index < mLists.size(); +			  search_index += 1, targetList = mLists[search_index] +			 ) +		{ +			if ( targetList.isMap() ) +			{ +				if ( listNameMatches( targetList, listName) ) +				{ +					LL_DEBUGS("AutoReplace")<<"list to replace found at "<<search_index<<LL_ENDL; +					mLists.erase(search_index); +					mLists.insert(search_index, newList); +					listFound = true; +					result = AddListOk; +				} +			} +		} +		 +		if ( ! listFound ) +		{ +			LL_WARNS("AutoReplace") << "attempt to replace unconfigured list" << LL_ENDL; +		} +	} +	else +	{ +		LL_WARNS("AutoReplace") << "attempt to add invalid list" << LL_ENDL; +	} +	return result; +} +  bool LLAutoReplaceSettings::removeReplacementList(std::string listName)  {  	bool found = false; diff --git a/indra/newview/llautoreplace.h b/indra/newview/llautoreplace.h index 30b1fd2c65..f720cc4eda 100644 --- a/indra/newview/llautoreplace.h +++ b/indra/newview/llautoreplace.h @@ -67,6 +67,9 @@ class LLAutoReplaceSettings  	/// Inserts a new list at the end of the priority order  	AddListResult addList(const LLSD& newList); +	/// Inserts a list in place of an existing list of the same name +	AddListResult replaceList(const LLSD& newList); +  	/// Removes the named list, @returns false if not found  	bool removeReplacementList(std::string listName); diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 59b862503c..23d528901a 100755 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -315,15 +315,11 @@ static const char* get_profile_floater_name(const LLUUID& avatar_id)  static void on_avatar_name_show_profile(const LLUUID& agent_id, const LLAvatarName& av_name)  { -	std::string username = av_name.getUserName(); -	 -	llinfos << "opening web profile for " << username << llendl;		 -	std::string url = getProfileURL(username); +	std::string url = getProfileURL(av_name.getAccountName());  	// PROFILES: open in webkit window  	LLFloaterWebContent::Params p; -	p.url(url). -		id(agent_id.asString()); +	p.url(url).id(agent_id.asString());  	LLFloaterReg::showInstance(get_profile_floater_name(agent_id), p);  } diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp index 527c0ad233..71d668d047 100755 --- a/indra/newview/llconversationview.cpp +++ b/indra/newview/llconversationview.cpp @@ -341,14 +341,6 @@ void LLConversationViewSession::onCurrentVoiceSessionChanged(const LLUUID& sessi  	if (vmi)  	{  		bool is_active = vmi->getUUID() == session_id; -		bool is_nearby = vmi->getType() == LLConversationItem::CONV_SESSION_NEARBY; - -		if (is_nearby) -		{ -			mSpeakingIndicator->setSpeakerId(is_active ? gAgentID : LLUUID::null); -		} - -		mSpeakingIndicator->switchIndicator(is_active);  		mCallIconLayoutPanel->setVisible(is_active);  	}  } @@ -409,7 +401,6 @@ BOOL LLConversationViewParticipant::postBuild()  	mInfoBtn->setClickedCallback(boost::bind(&LLConversationViewParticipant::onInfoBtnClick, this));  	mInfoBtn->setVisible(false); -	mActiveVoiceChannelConnection = LLVoiceChannel::setCurrentVoiceChannelChangedCallback(boost::bind(&LLConversationViewParticipant::onCurrentVoiceSessionChanged, this, _1));  	mSpeakingIndicator = getChild<LLOutputMonitorCtrl>("speaking_indicator");      if (!sStaticInitialized) @@ -479,21 +470,6 @@ S32 LLConversationViewParticipant::arrange(S32* width, S32* height)      return arranged;  } -void LLConversationViewParticipant::onCurrentVoiceSessionChanged(const LLUUID& session_id) -{ -	LLConversationItemParticipant* participant_model = dynamic_cast<LLConversationItemParticipant*>(getViewModelItem()); -	 -	if (participant_model) -	{ -		LLConversationItemSession* parent_session = participant_model->getParentSession(); -		if (parent_session) -		{ -			bool is_active = (parent_session->getUUID() == session_id); -			mSpeakingIndicator->switchIndicator(is_active); -		} -	} -} -  void LLConversationViewParticipant::refresh()  {  	// Refresh the participant view from its model data diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h index fb2834f26a..a9333020e9 100755 --- a/indra/newview/llconversationview.h +++ b/indra/newview/llconversationview.h @@ -146,7 +146,6 @@ protected:  	void onInfoBtnClick();  private: -	void onCurrentVoiceSessionChanged(const LLUUID& session_id);      LLAvatarIconCtrl* mAvatarIcon;  	LLButton * mInfoBtn; diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index 730ad1a364..0e15f474c9 100644 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -1630,6 +1630,7 @@ void LLDrawPoolAvatar::renderRiggedAlpha(LLVOAvatar* avatar)  						LLRender::BF_ONE_MINUS_SOURCE_ALPHA);  		renderRigged(avatar, RIGGED_ALPHA); +		gGL.setColorMask(true, false);  	}  } @@ -1646,6 +1647,7 @@ void LLDrawPoolAvatar::renderRiggedFullbrightAlpha(LLVOAvatar* avatar)  						LLRender::BF_ONE_MINUS_SOURCE_ALPHA);  		renderRigged(avatar, RIGGED_FULLBRIGHT_ALPHA); +		gGL.setColorMask(true, false);  	}  } diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index 24a27c5146..2b39b771e7 100644 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -499,6 +499,10 @@ void LLFeatureManager::parseGPUTable(std::string filename)  	{  		LL_WARNS("RenderInit") << "GPU '" << rawRenderer << "' not recognized" << LL_ENDL;  	} + +#if LL_DARWIN // never go over "Mid" settings by default on OS X +	mGPUClass = llmin(mGPUClass, GPU_CLASS_2); +#endif  }  // responder saves table into file @@ -708,34 +712,27 @@ void LLFeatureManager::setGraphicsLevel(S32 level, bool skipFeatures)  			{ //same as low, but with "Basic Shaders" enabled  				maskFeatures("Low");  			} -			maskFeatures("Class0");  			break;  		case 1: -			maskFeatures("Mid"); -			maskFeatures("Class1"); +			maskFeatures("LowMid");  			break;  		case 2: -			maskFeatures("High"); -			maskFeatures("Class2"); +			maskFeatures("Mid");  			break;  		case 3: -			maskFeatures("High"); -			maskFeatures("Class3"); +			maskFeatures("MidHigh");  			break;  		case 4:  			maskFeatures("High"); -			maskFeatures("Class4");  			break;  		case 5: -			maskFeatures("High"); -			maskFeatures("Class5"); +			maskFeatures("HighUltra");  			break;  		case 6:  			maskFeatures("Ultra");  			break;  		default:  			maskFeatures("Low"); -			maskFeatures("Class0");  			break;  	} diff --git a/indra/newview/llfloaterautoreplacesettings.cpp b/indra/newview/llfloaterautoreplacesettings.cpp index 7d1bcba978..6e56e929df 100644 --- a/indra/newview/llfloaterautoreplacesettings.cpp +++ b/indra/newview/llfloaterautoreplacesettings.cpp @@ -478,14 +478,25 @@ bool LLFloaterAutoReplaceSettings::callbackNewListName(const LLSD& notification,  bool LLFloaterAutoReplaceSettings::callbackListNameConflict(const LLSD& notification, const LLSD& response)  {  	LLSD newList = notification["payload"]["list"]; - +	std::string listName = LLAutoReplaceSettings::getListName(newList); +	  	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);  	switch ( option )  	{  	case 0:  		// Replace current list -		LL_INFOS("AutoReplace")<<"option 'replace current list' selected"<<LL_ENDL; -		 +		if ( LLAutoReplaceSettings::AddListOk == mSettings.replaceList(newList) ) +		{ +			LL_INFOS("AutoReplace") << "replaced list '"<<listName<<"'"<<LL_ENDL; +			mSelectedListName = listName; +			updateListNames(); +			updateListNamesControls(); +			updateReplacementsList(); +		} +		else +		{ +			LL_WARNS("AutoReplace")<<"failed to replace list '"<<listName<<"'"<<LL_ENDL; +		}  		break;  	case 1: @@ -503,14 +514,27 @@ bool LLFloaterAutoReplaceSettings::callbackListNameConflict(const LLSD& notifica  void LLFloaterAutoReplaceSettings::onDeleteList()  { -	std::string listName= mListNames->getFirstSelected()->getColumn(0)->getValue().asString(); -	mSettings.removeReplacementList(listName); // remove from the copy of settings -	mReplacementsList->deleteSelectedItems();   // remove from the scrolling list - -	mSelectedListName.clear(); -	updateListNames(); -	updateListNamesControls(); -	updateReplacementsList(); +	std::string listName = mListNames->getSelectedValue().asString(); +	if ( ! listName.empty() ) +	{ +		if ( mSettings.removeReplacementList(listName) ) +		{ +			LL_INFOS("AutoReplace")<<"deleted list '"<<listName<<"'"<<LL_ENDL; +			mReplacementsList->deleteSelectedItems();   // remove from the scrolling list +			mSelectedListName.clear(); +			updateListNames(); +			updateListNamesControls(); +			updateReplacementsList(); +		} +		else +		{ +			LL_WARNS("AutoReplace")<<"failed to delete list '"<<listName<<"'"<<LL_ENDL; +		} +	} +	else +	{ +		LL_DEBUGS("AutoReplace")<<"no list selected for delete"<<LL_ENDL; +	}  }  void LLFloaterAutoReplaceSettings::onExportList() diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index 3a5f2ae854..54cfe88140 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -1476,7 +1476,7 @@ LLConversationViewParticipant* LLFloaterIMContainer::createConversationViewParti  	params.rect = LLRect (0, 24, panel_rect.getWidth(), 0);  	params.tool_tip = params.name;  	params.participant_id = item->getUUID(); -    params.folder_indentation = 42; +    params.folder_indentation = 27;  	return LLUICtrlFactory::create<LLConversationViewParticipant>(params);  } diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index 3001029968..a0ca7286f1 100644 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -102,6 +102,24 @@ void LLFloaterIMSession::refresh()  }  // virtual +void LLFloaterIMSession::onTearOffClicked() +{ +    LLFloaterIMSessionTab::onTearOffClicked(); + +    if(mIsP2PChat) +    { +        if(isTornOff()) +        { +            mSpeakingIndicator->setSpeakerId(mOtherParticipantUUID, mSessionID); +        } +        else +        { +            mSpeakingIndicator->setSpeakerId(LLUUID::null); +        } +    } +} + +// virtual  void LLFloaterIMSession::onClickCloseBtn()  {  	LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(mSessionID); diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h index 72a320041f..1d8957b1d9 100644 --- a/indra/newview/llfloaterimsession.h +++ b/indra/newview/llfloaterimsession.h @@ -135,6 +135,7 @@ private:  	/*virtual*/ void refresh(); +    /*virtual*/ void onTearOffClicked();  	/*virtual*/ void onClickCloseBtn();  	// Update the window title and input field help text diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp index 0eb0289f49..ea99a1c5bf 100644 --- a/indra/newview/llfloaterimsessiontab.cpp +++ b/indra/newview/llfloaterimsessiontab.cpp @@ -54,6 +54,7 @@ LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)    ,  mSessionID(session_id.asUUID())    , mConversationsRoot(NULL)    , mScroller(NULL) +  , mSpeakingIndicator(NULL)    , mChatHistory(NULL)    , mInputEditor(NULL)    , mInputEditorTopPad(0) @@ -167,7 +168,7 @@ void LLFloaterIMSessionTab::addToHost(const LLUUID& session_id)  			if (!conversp->isNearbyChat()  					|| gSavedSettings.getBOOL("NearbyChatIsNotTornOff"))  			{ -				floater_container->addFloater(conversp, !floater_container->getVisible(), LLTabContainer::RIGHT_OF_CURRENT); +				floater_container->addFloater(conversp, false, LLTabContainer::RIGHT_OF_CURRENT);  			}  			else  			{ @@ -206,6 +207,8 @@ BOOL LLFloaterIMSessionTab::postBuild()  	mScroller = LLUICtrlFactory::create<LLFolderViewScrollContainer>(scroller_params);  	mScroller->setFollowsAll(); +    mSpeakingIndicator = getChild<LLOutputMonitorCtrl>("speaking_indicator"); +  	// Insert that scroller into the panel widgets hierarchy  	mParticipantListPanel->addChild(mScroller);	 diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h index 4851904074..cd0bcd481c 100644 --- a/indra/newview/llfloaterimsessiontab.h +++ b/indra/newview/llfloaterimsessiontab.h @@ -149,6 +149,7 @@ protected:  	LLFolderView* mConversationsRoot;  	LLScrollContainer* mScroller; +    LLOutputMonitorCtrl* mSpeakingIndicator;  	LLChatHistory* mChatHistory;  	LLChatEntry* mInputEditor;  	int mInputEditorTopPad; // padding between input field and chat history diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 1426567196..6474d56414 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -1031,14 +1031,12 @@ void LLSelectFirstFilteredItem::doItem(LLFolderViewItem *item)  void LLSelectFirstFilteredItem::doFolder(LLFolderViewFolder* folder)  { -	if (folder->LLFolderViewItem::passedFilter() && !mItemSelected) +	// Skip if folder or item already found, if not filtered or if no parent (root folder is not selectable) +	if (!mFolderSelected && !mItemSelected && folder->LLFolderViewItem::passedFilter() && folder->getParentFolder())  	{  		folder->getRoot()->setSelection(folder, FALSE, FALSE); -		if (folder->getParentFolder()) -		{ -			folder->getParentFolder()->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_UP); -		} -		mItemSelected = TRUE; +		folder->getParentFolder()->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_UP); +		mFolderSelected = TRUE;  	}  } diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index ba0a590910..92ac435f08 100755 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -361,7 +361,20 @@ public:  		mModelData(model_data),  		mObserverHandle(observer_handle)  	{ +		if (mThread) +		{ +			mThread->startRequest(); +		} +	} + +	~LLWholeModelFeeResponder() +	{ +		if (mThread) +		{ +			mThread->stopRequest(); +		}  	} +  	virtual void completed(U32 status,  						   const std::string& reason,  						   const LLSD& content) @@ -372,7 +385,6 @@ public:  			cc = llsd_from_file("fake_upload_error.xml");  		} -		mThread->mPendingUploads--;  		dump_llsd_to_file(cc,make_dump_name("whole_model_fee_response_",dump_num));  		LLWholeModelFeeObserver* observer = mObserverHandle.get(); @@ -415,7 +427,20 @@ public:  		mModelData(model_data),  		mObserverHandle(observer_handle)  	{ +		if (mThread) +		{ +			mThread->startRequest(); +		} +	} + +	~LLWholeModelUploadResponder() +	{ +		if (mThread) +		{ +			mThread->stopRequest(); +		}  	} +  	virtual void completed(U32 status,  						   const std::string& reason,  						   const LLSD& content) @@ -426,7 +451,6 @@ public:  			cc = llsd_from_file("fake_upload_error.xml");  		} -		mThread->mPendingUploads--;  		dump_llsd_to_file(cc,make_dump_name("whole_model_upload_response_",dump_num));  		LLWholeModelUploadObserver* observer = mObserverHandle.get(); @@ -1622,7 +1646,7 @@ void LLMeshUploadThread::doWholeModelUpload()  			mCurlRequest->process();  			//sleep for 10ms to prevent eating a whole core  			apr_sleep(10000); -		} while (!LLAppViewer::isQuitting() && mCurlRequest->getQueued() > 0); +		} while (!LLAppViewer::isQuitting() && mPendingUploads > 0);  	}  	delete mCurlRequest; @@ -1644,7 +1668,6 @@ void LLMeshUploadThread::requestWholeModelFee()  	wholeModelToLLSD(model_data,false);  	dump_llsd_to_file(model_data,make_dump_name("whole_model_fee_request_",dump_num)); -	mPendingUploads++;  	LLCurlRequest::headers_t headers;  	{ @@ -1661,7 +1684,7 @@ void LLMeshUploadThread::requestWholeModelFee()  		mCurlRequest->process();  		//sleep for 10ms to prevent eating a whole core  		apr_sleep(10000); -	} while (!LLApp::isQuitting() && mCurlRequest->getQueued() > 0); +	} while (!LLApp::isQuitting() && mPendingUploads > 0);  	delete mCurlRequest;  	mCurlRequest = NULL; diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h index da81bb057b..6e301c26a2 100644 --- a/indra/newview/llmeshrepository.h +++ b/indra/newview/llmeshrepository.h @@ -405,6 +405,9 @@ public:  					   LLHandle<LLWholeModelFeeObserver> fee_observer= (LLHandle<LLWholeModelFeeObserver>()), LLHandle<LLWholeModelUploadObserver> upload_observer = (LLHandle<LLWholeModelUploadObserver>()));  	~LLMeshUploadThread(); +	void startRequest() { ++mPendingUploads; } +	void stopRequest() { --mPendingUploads; } +  	bool finished() { return mFinished; }  	virtual void run();  	void preStart(); diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp index 02841e9831..f6e3c0cac0 100644 --- a/indra/newview/lloutputmonitorctrl.cpp +++ b/indra/newview/lloutputmonitorctrl.cpp @@ -260,6 +260,8 @@ void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id, const LLUUID& s  	if (speaker_id.isNull() && mSpeakerId.notNull())  	{  		LLSpeakingIndicatorManager::unregisterSpeakingIndicator(mSpeakerId, this); +        switchIndicator(false); +        mSpeakerId = speaker_id;  	}  	if (speaker_id.isNull() || (speaker_id == mSpeakerId)) diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 5d1c335078..538911e9b8 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -1483,7 +1483,7 @@ BOOL LLVOVolume::genBBoxes(BOOL force_global)  	updateRadius();  	mDrawable->movePartition(); -			 +				  	return res;  } @@ -3583,7 +3583,6 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e  		if (LLFloater::isVisible(gFloaterTools) && getAvatar()->isSelf())  		{  			updateRiggedVolume(); -			genBBoxes(FALSE);  			volume = mRiggedVolume;  			transform = false;  		} 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 faf54774f6..e4b127b7b9 100644 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -106,6 +106,18 @@                   name="voice_call_btn"                   tool_tip="Open voice connection"                   width="31"/> +              <output_monitor +                  auto_update="true" +                  follows="top|left" +                  draw_border="false" +                  height="16" +                  layout="topleft" +                  top="10" +                  left_pad="10" +                  mouse_opaque="true" +                  name="speaking_indicator" +                  visible="false" +                  width="20" />                      <button                   follows="right|top"                   height="25" diff --git a/indra/newview/skins/default/xui/en/floater_people.xml b/indra/newview/skins/default/xui/en/floater_people.xml index 8e143623ab..701233ba4a 100644 --- a/indra/newview/skins/default/xui/en/floater_people.xml +++ b/indra/newview/skins/default/xui/en/floater_people.xml @@ -6,21 +6,21 @@    can_resize="true"    height="570"    help_topic="sidebar_people" -  min_height="440" -  min_width="390" +  min_height="220" +  min_width="260"    layout="topleft"    name="floater_people"    save_rect="true"    single_instance="true"    reuse_instance="true"    title="PEOPLE" -  width="390"> +  width="370">      <panel_container        default_panel_name="panel_people"        follows="all"        height="570"        name="main_panel" -      width="390"> +      width="370">        <panel          class="panel_people"          name="panel_people" diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index 7433ad828d..7ce2627be9 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -229,7 +229,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M           bg_opaque_color="DkGray"           bottom="-1"           follows="all" -         label="MY FRIENDS" +         label="FRIENDS"           layout="topleft"           left="0"           help_topic="people_friends_tab" @@ -385,7 +385,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M           bg_opaque_color="DkGray"           bottom="-1"           follows="all" -         label="MY GROUPS" +         label="GROUPS"           layout="topleft"           left="0"           help_topic="people_groups_tab"  | 
